web_PYTHON = \
src/web/__init__.py \
+ src/web/base.py \
src/web/handlers.py \
src/web/handlers_api.py \
src/web/handlers_auth.py \
- src/web/handlers_base.py \
src/web/handlers_builders.py \
src/web/handlers_builds.py \
src/web/handlers_distro.py \
#!/usr/bin/python
-import pakfire
-
-import datetime
import httplib
import pytz
import time
@property
def mirrors(self):
- return self.pakfire.mirrors
\ No newline at end of file
+ return self.pakfire.mirrors
+
+
+class ApiBaseHandler(BaseHandler):
+ pass
import random
import tornado.web
+from . import base
+
from .handlers_auth import *
-from .handlers_base import *
from .handlers_builds import *
from .handlers_builders import *
from .handlers_distro import *
from .handlers_updates import *
from .handlers_users import *
-class IndexHandler(BaseHandler):
+class IndexHandler(base.BaseHandler):
def get(self):
jobs = self.pakfire.jobs.get_active()
jobs += self.pakfire.jobs.get_latest(age="24 hours", limit=5)
self.render("index.html", jobs=jobs, updates=updates)
-class Error404Handler(BaseHandler):
+class Error404Handler(base.BaseHandler):
def get(self):
raise tornado.web.HTTPError(404)
-class UploadsHandler(BaseHandler):
+class UploadsHandler(base.BaseHandler):
@tornado.web.authenticated
def get(self):
if not self.current_user.is_admin():
self.render("uploads-list.html", uploads=self.backend.uploads)
-class DocsIndexHandler(BaseHandler):
+class DocsIndexHandler(base.BaseHandler):
def get(self):
self.render("docs-index.html")
-class DocsBuildsHandler(BaseHandler):
+class DocsBuildsHandler(base.BaseHandler):
def get(self):
self.render("docs-build.html")
-class DocsUsersHandler(BaseHandler):
+class DocsUsersHandler(base.BaseHandler):
def get(self):
self.render("docs-users.html")
-class DocsWhatsthisHandler(BaseHandler):
+class DocsWhatsthisHandler(base.BaseHandler):
def get(self):
self.render("docs-whatsthis.html")
-class FileDetailHandler(BaseHandler):
+class FileDetailHandler(base.BaseHandler):
def get(self, uuid):
pkg, file = self.pakfire.packages.get_with_file_by_uuid(uuid)
self.render("file-detail.html", pkg=pkg, file=file)
-class LogHandler(BaseHandler):
+class LogHandler(base.BaseHandler):
def get(self):
self.render("log.html", log=self.pakfire.log)
-class SessionsHandler(BaseHandler):
+class SessionsHandler(base.BaseHandler):
def prepare(self):
# This is only accessible for administrators.
if not self.current_user.is_admin():
self.render("sessions/index.html", sessions=sessions)
-class RepositoryDetailHandler(BaseHandler):
+class RepositoryDetailHandler(base.BaseHandler):
def get(self, distro, repo):
distro = self.pakfire.distros.get_by_name(distro)
if not distro:
obsolete_builds=obsolete_builds, build_times=build_times)
-class RepositoryEditHandler(BaseHandler):
+class RepositoryEditHandler(base.BaseHandler):
@tornado.web.authenticated
def get(self, distro, repo):
distro = self.pakfire.distros.get_by_name(distro)
self.render("repository-edit.html", distro=distro, repo=repo)
-class RepositoryConfHandler(BaseHandler):
+class RepositoryConfHandler(base.BaseHandler):
def get(self, distro, repo):
distro = self.pakfire.distros.get_by_name(distro)
if not distro:
self.finish()
-class RepositoryMirrorlistHandler(BaseHandler):
+class RepositoryMirrorlistHandler(base.BaseHandler):
def get(self, distro, repo):
distro = self.pakfire.distros.get_by_name(distro)
if not distro:
self.finish(ret)
-class RepoActionHandler(BaseHandler):
+class RepoActionHandler(base.BaseHandler):
@tornado.web.authenticated
def post(self, type):
assert type in ("run", "remove")
import tornado.web
-from handlers_base import *
+from . import base
-class ApiBaseHandler(BaseHandler):
- pass
-
-
-class ApiPackagesAutocomplete(BaseHandler):
+class ApiPackagesAutocomplete(base.ApiBaseHandler):
def get(self):
query = self.get_argument("q")
if not query:
import tornado.web
-from .handlers_base import *
+from . import base
-class LoginHandler(BaseHandler):
+class LoginHandler(base.BaseHandler):
def get(self):
# If the user is already logged in, we just send him back
# to the start page.
self.redirect(next)
-class RegisterHandler(BaseHandler):
+class RegisterHandler(base.BaseHandler):
def get(self):
# If the user is already logged in, we just send him back
# to the start page.
self.render("register-success.html", user=user)
-class ActivationHandler(BaseHandler):
+class ActivationHandler(base.BaseHandler):
def get(self, _user):
user = self.pakfire.users.get_by_name(_user)
if not user:
self.render("register-activation-fail.html")
-class PasswordRecoveryHandler(BaseHandler):
+class PasswordRecoveryHandler(base.BaseHandler):
def get(self):
return self.render("user-forgot-password.html")
# XXX TODO
-class LogoutHandler(BaseHandler):
+class LogoutHandler(base.BaseHandler):
@tornado.web.authenticated
def get(self):
# Destroy the user's session.
from .. import builders
-from .handlers_base import *
+from . import base
-class BuilderListHandler(BaseHandler):
+class BuilderListHandler(base.BaseHandler):
def get(self):
self.render("builders/list.html", builders=self.backend.builders)
-class BuilderDetailHandler(BaseHandler):
+class BuilderDetailHandler(base.BaseHandler):
def get(self, hostname):
builder = self.pakfire.builders.get_by_name(hostname)
self.redirect("/builder/%s" % builder.hostname)
-class BuilderNewHandler(BaseHandler):
+class BuilderNewHandler(base.BaseHandler):
def get(self):
self.render("builders/new.html")
passphrase=passphrase)
-class BuilderEditHandler(BaseHandler):
+class BuilderEditHandler(base.BaseHandler):
@tornado.web.authenticated
def get(self, hostname):
builder = self.pakfire.builders.get_by_name(hostname)
self.redirect("/builder/%s" % builder.hostname)
-class BuilderRenewPassphraseHandler(BaseHandler):
+class BuilderRenewPassphraseHandler(base.BaseHandler):
@tornado.web.authenticated
def get(self, name):
builder = self.pakfire.builders.get_by_name(name)
passphrase=passphrase)
-class BuilderDeleteHandler(BaseHandler):
+class BuilderDeleteHandler(base.BaseHandler):
@tornado.web.authenticated
def get(self, name):
builder = self.pakfire.builders.get_by_name(name)
self.render("builders/delete.html", builder=builder)
-class BuilderStatusChangeHandler(BaseHandler):
+class BuilderStatusChangeHandler(base.BaseHandler):
enabled = None
@tornado.web.authenticated
import tornado.web
-from .handlers_base import BaseHandler
+from . import base
-class BuildsHandler(BaseHandler):
+class BuildsHandler(base.BaseHandler):
def get(self):
limit = self.get_argument("limit", None)
try:
self.render("build-index.html", builds=builds)
-class BuildBaseHandler(BaseHandler):
+class BuildBaseHandler(base.BaseHandler):
def get_build(self, uuid):
build = self.pakfire.builds.get_by_uuid(uuid)
if not build:
self.render("build-delete.html", build=build)
-class BuildBugsHandler(BaseHandler):
+class BuildBugsHandler(base.BaseHandler):
@tornado.web.authenticated
def get(self, uuid):
build = self.pakfire.builds.get_by_uuid(uuid)
self.redirect("/build/%s/bugs" % build.uuid)
-class BuildsCommentsHandler(BaseHandler):
+class BuildsCommentsHandler(base.BaseHandler):
def get(self, user_name=None):
user = None
if user_name:
offset=offset + limit, user=user, have_prev=have_prev, have_next=have_next)
-class BuildStateHandler(BaseHandler):
+class BuildStateHandler(base.BaseHandler):
def get(self, uuid):
build = self.pakfire.builds.get_by_uuid(uuid)
if not build:
self.redirect("/build/%s" % build.uuid)
-class BuildQueueHandler(BaseHandler):
+class BuildQueueHandler(base.BaseHandler):
def get(self):
self.render("build-queue.html", jobs=self.backend.jobqueue,
average_waiting_time=self.backend.jobqueue.average_waiting_time)
-class BuildDetailCommentHandler(BaseHandler):
+class BuildDetailCommentHandler(base.BaseHandler):
@tornado.web.authenticated
def post(self, uuid):
build = self.pakfire.builds.get_by_uuid(uuid)
self.redirect("/build/%s" % build.uuid)
-class BuildManageHandler(BaseHandler):
+class BuildManageHandler(base.BaseHandler):
@tornado.web.authenticated
def get(self, uuid):
build = self.pakfire.builds.get_by_uuid(uuid)
self.redirect("/build/%s" % build.uuid)
-class BuildPriorityHandler(BaseHandler):
+class BuildPriorityHandler(base.BaseHandler):
@tornado.web.authenticated
def get(self, uuid):
build = self.pakfire.builds.get_by_uuid(uuid)
self.redirect("/build/%s" % build.uuid)
-class BuildWatchersHandler(BaseHandler):
+class BuildWatchersHandler(base.BaseHandler):
def get(self, uuid):
build = self.pakfire.builds.get_by_uuid(uuid)
self.render("builds-watchers-list.html", build=build, watchers=watchers)
-class BuildWatchersAddHandler(BaseHandler):
+class BuildWatchersAddHandler(base.BaseHandler):
@tornado.web.authenticated
def get(self, uuid, error_msg=None):
build = self.pakfire.builds.get_by_uuid(uuid)
self.redirect("/build/%s" % build.uuid)
-class BuildListHandler(BaseHandler):
+class BuildListHandler(base.BaseHandler):
def get(self):
builder = self.get_argument("builder", None)
state = self.get_argument("state", None)
self.render("build-list.html", builds=builds)
-class BuildFilterHandler(BaseHandler):
+class BuildFilterHandler(base.BaseHandler):
def get(self):
builders = self.pakfire.builders.get_all()
distros = self.pakfire.distros.get_all()
#!/usr/bin/python
-from .handlers_base import *
+import tornado.web
-class DistributionListHandler(BaseHandler):
+from . import base
+
+class DistributionListHandler(base.BaseHandler):
def get(self):
self.render("distro-list.html", distros=self.backend.distros)
-class DistributionDetailHandler(BaseHandler):
+class DistributionDetailHandler(base.BaseHandler):
def get(self, name):
distro = self.pakfire.distros.get_by_name(name)
if not distro:
self.render("distro-detail.html", distro=distro)
-class DistributionEditHandler(BaseHandler):
+class DistributionEditHandler(base.BaseHandler):
def prepare(self):
self.sources = self.pakfire.sources.get_all()
self.redirect("/distribution/%s" % distro.sname)
-class DistroSourceDetailHandler(BaseHandler):
+class DistroSourceDetailHandler(base.BaseHandler):
def get(self, distro_ident, source_ident):
distro = self.pakfire.distros.get_by_name(distro_ident)
if not distro:
commits=commits)
-class DistroSourceCommitsHandler(BaseHandler):
+class DistroSourceCommitsHandler(base.BaseHandler):
def get(self, distro_ident, source_ident):
distro = self.pakfire.distros.get_by_name(distro_ident)
if not distro:
commits=commits, limit=limit, offset=offset, number=50)
-class DistroSourceCommitDetailHandler(BaseHandler):
+class DistroSourceCommitDetailHandler(base.BaseHandler):
def get(self, distro_ident, source_ident, commit_ident):
distro = self.pakfire.distros.get_by_name(distro_ident)
if not distro:
source=source, commit=commit)
-class DistroSourceCommitResetHandler(BaseHandler):
+class DistroSourceCommitResetHandler(base.BaseHandler):
@tornado.web.authenticated
def get(self, distro_ident, source_ident, commit_ident):
distro = self.pakfire.distros.get_by_name(distro_ident)
source=source, commit=commit)
-class DistroUpdateCreateHandler(BaseHandler):
+class DistroUpdateCreateHandler(base.BaseHandler):
def get(self, distro_ident):
distro = self.pakfire.distros.get_by_name(distro_ident)
if not distro:
distro=distro, builds=builds)
-class DistroUpdateDetailHandler(BaseHandler):
+class DistroUpdateDetailHandler(base.BaseHandler):
def get(self, distro_ident, year, num):
distro = self.pakfire.distros.get_by_name(distro_ident)
if not distro:
update=update, repo=update.repo, user=update.user)
# XXX currently unused
-class SourceListHandler(BaseHandler):
+class SourceListHandler(base.BaseHandler):
def get(self):
sources = self.pakfire.sources.get_all()
self.render("source-list.html", sources=sources)
-class SourceDetailHandler(BaseHandler):
+class SourceDetailHandler(base.BaseHandler):
def get(self, id):
source = self.pakfire.sources.get_by_id(id)
import tornado.web
-from .handlers_base import BaseHandler
+from . import base
-class JobsIndexHandler(BaseHandler):
+class JobsIndexHandler(base.BaseHandler):
def get(self):
# Filter for a certain arch.
arch = self.get_argument("arch", None)
date=date)
-class JobsFilterHandler(BaseHandler):
+class JobsFilterHandler(base.BaseHandler):
def get(self):
builders = self.pakfire.builders.get_all()
self.render("jobs-filter.html", arches=self.backend.arches, builders=builders)
-class JobDetailHandler(BaseHandler):
+class JobDetailHandler(base.BaseHandler):
def get(self, uuid):
job = self.pakfire.jobs.get_by_uuid(uuid)
if not job:
self.render("jobs-detail.html", job=job, build=job.build, log=log)
-class JobBuildrootHandler(BaseHandler):
+class JobBuildrootHandler(base.BaseHandler):
def get(self, uuid):
job = self.pakfire.jobs.get_by_uuid(uuid)
if not job:
buildroot_size=buildroot_size)
-class JobScheduleHandler(BaseHandler):
+class JobScheduleHandler(base.BaseHandler):
allowed_types = ("test", "rebuild",)
@tornado.web.authenticated
self.redirect("/job/%s" % job.uuid)
-class JobAbortHandler(BaseHandler):
+class JobAbortHandler(base.BaseHandler):
def get_job(self, uuid):
job = self.pakfire.jobs.get_by_uuid(uuid)
if not job:
import tornado.web
-from .handlers_base import BaseHandler
+from . import base
-class KeysActionHandler(BaseHandler):
+class KeysActionHandler(base.BaseHandler):
def prepare(self):
if not self.current_user.has_perm("manage_keys"):
raise tornado.web.HTTPError(403)
self.render("keys-delete.html", key=key)
-class KeysListHandler(BaseHandler):
+class KeysListHandler(base.BaseHandler):
def get(self):
keys = self.pakfire.keys.get_all()
self.render("keys-list.html", keys=keys)
-class KeysDownloadHandler(BaseHandler):
+class KeysDownloadHandler(base.BaseHandler):
def get(self, fingerprint):
key = self.pakfire.keys.get_by_fpr(fingerprint)
if not key:
import os.path
import tornado.web
-from .handlers_base import BaseHandler
+from . import base
from ..constants import BUFFER_SIZE
-class PackageIDDetailHandler(BaseHandler):
+class PackageIDDetailHandler(base.BaseHandler):
def get(self, id):
package = self.packages.get_by_id(id)
if not package:
self.render("package-detail.html", package=package)
-class PackageListHandler(BaseHandler):
+class PackageListHandler(base.BaseHandler):
def get(self):
packages = {}
self.render("packages-list.html", packages=packages)
-class PackageNameHandler(BaseHandler):
+class PackageNameHandler(base.BaseHandler):
def get(self, name):
builds = self.pakfire.builds.get_active_builds(name)
if not builds:
latest_build=latest_build, pkg=latest_build.pkg, bugs=bugs)
-class PackageScratchBuildsHandler(BaseHandler):
+class PackageScratchBuildsHandler(base.BaseHandler):
def get(self, name):
offset = self.get_argument("offset", 0)
limit = self.get_argument("limit", 10)
pkg=latest_build.pkg)
-class PackageChangelogHandler(BaseHandler):
+class PackageChangelogHandler(base.BaseHandler):
def get(self, name):
limit = self.get_argument("limit", 10)
try:
limit=limit, offset=offset, have_prev=have_prev, have_next=have_next)
-class PackageDetailHandler(BaseHandler):
+class PackageDetailHandler(base.BaseHandler):
def get(self, uuid):
pkg = self.pakfire.packages.get_by_uuid(uuid)
if not pkg:
self.render("package-detail.html", pkg=pkg)
-class PackagePropertiesHandler(BaseHandler):
+class PackagePropertiesHandler(base.BaseHandler):
@tornado.web.authenticated
def get(self, name):
build = self.pakfire.builds.get_latest_by_name(name)
build.pkg.update_property("critical_path", critical_path)
-class PackageFileDownloadHandler(BaseHandler):
+class PackageFileDownloadHandler(base.BaseHandler):
def get_file(self, pkg_uuid, filename):
# Fetch package.
pkg = self.pakfire.packages.get_by_uuid(pkg_uuid)
mimetype=mimetype, content=content, filesize=f.size)
-class PackageBuildsTimesHandler(BaseHandler):
+class PackageBuildsTimesHandler(base.BaseHandler):
def get(self, name):
latest_build = self.pakfire.builds.get_latest_by_name(name)
import re
-from .handlers_base import *
+from . import base
-class SearchHandler(BaseHandler):
+class SearchHandler(base.BaseHandler):
def get(self):
pattern = self.get_argument("q", "")
if not pattern:
import tornado.web
-from .handlers_base import BaseHandler
+from . import base
-class UpdatesHandler(BaseHandler):
+class UpdatesHandler(base.BaseHandler):
def get(self):
self.render("updates-index.html")
import tornado.locale
import tornado.web
-from .handlers_base import *
+from . import base
-class UserHandler(BaseHandler):
+class UserHandler(base.BaseHandler):
@tornado.web.authenticated
def get(self, name=None):
user = self.current_user
self.render("user-profile.html", user=user)
-class UserImpersonateHandler(BaseHandler):
+class UserImpersonateHandler(base.BaseHandler):
@tornado.web.authenticated
def get(self, username):
# You must be an admin to do this.
self.redirect("/")
-class UserActionHandler(BaseHandler):
+class UserActionHandler(base.BaseHandler):
def get_user(self, name):
user = self.pakfire.users.get_by_name(name)
if not user:
return user
-class UserDeleteHandler(BaseHandler):
+class UserDeleteHandler(base.BaseHandler):
@tornado.web.authenticated
def get(self, name):
user = self.get_user(name)
self.render("user-profile-passwd-ok.html", user=user)
-class UserEditHandler(BaseHandler):
+class UserEditHandler(base.BaseHandler):
@tornado.web.authenticated
def get(self, name):
user = self.pakfire.users.get_by_name(name)
self.redirect("/user/%s" % user.name)
-class UsersHandler(BaseHandler):
+class UsersHandler(base.BaseHandler):
@tornado.web.authenticated
def get(self):
self.render("user-list.html", users=self.backend.users)
-class UsersBuildsHandler(BaseHandler):
+class UsersBuildsHandler(base.BaseHandler):
def get(self, name=None):
if name is None:
user = self.current_user
from .. import mirrors
-from .handlers_base import BaseHandler
+from . import base
-class MirrorListHandler(BaseHandler):
+class MirrorListHandler(base.BaseHandler):
def get(self):
self.render("mirrors/list.html", mirrors=self.backend.mirrors,
log=self.backend.mirrors.get_history(limit=5))
-class MirrorDetailHandler(BaseHandler):
+class MirrorDetailHandler(base.BaseHandler):
def get(self, hostname):
mirror = self.backend.mirrors.get_by_hostname(hostname)
if not mirror:
self.render("mirrors/detail.html", mirror=mirror, log=log)
-class MirrorActionHandler(BaseHandler):
+class MirrorActionHandler(base.BaseHandler):
"""
A handler that makes sure if the user has got sufficent rights to
do actions.