Merge branch 'main' into avm99963-monorail
Merged commit cd4b3b336f1f14afa02990fdc2eec5d9467a827e
GitOrigin-RevId: e67bbf185d5538e1472bb42e0abb2a141f88bac1
diff --git a/flaskregisterpages.py b/flaskregisterpages.py
index 1f0a949..af73a7f 100644
--- a/flaskregisterpages.py
+++ b/flaskregisterpages.py
@@ -5,11 +5,82 @@
"""This file sets up all the urls for monorail pages."""
import logging
-from framework import excessiveactivity
import settings
-from flask import Flask
+import flask
+
+from features import banspammer
+from features import inboundemail
+from features import hotlistcreate
+from features import savedqueries
+from features import userhotlists
+from framework import banned
+from framework import clientmon
+from framework import warmup
+from framework import reap
+from framework import deleteusers
+from framework import excessiveactivity
+from framework import ts_mon_js
+from framework import trimvisitedpages
+from project import peopledetail
+from project import peoplelist
+from project import projectadmin
+from project import projectadminadvanced
+from project import projectexport
+from project import projectsummary
+from project import projectupdates
from project import project_constants
+from project import redirects
+from services import cachemanager_svc
+from services import client_config_svc
+from sitewide import custom_404
+from sitewide import hostinghome
+from sitewide import moved
+from sitewide import userclearbouncing
+from sitewide import userupdates
+from sitewide import userprofile
+from sitewide import projectcreate
+from sitewide import usersettings
+from sitewide import groupadmin
+from sitewide import groupcreate
+from sitewide import groupdetail
+from sitewide import grouplist
+from features import rerankhotlist
+from features import hotlistdetails
+from features import hotlistissues
+from features import hotlistissuescsv
+from features import hotlistpeople
+from features import dateaction
+from features import filterrules
+from features import pubsub
+from features import notify
+from features import hotlistcreate
+from features import savedqueries
+from features import userhotlists
+from features import banspammer
+from search import backendnonviewable
+from search import backendsearch
+from tracker import componentcreate
+from tracker import fltconversion
+from tracker import fieldcreate
+from tracker import fielddetail
+from tracker import templatecreate
+from tracker import templatedetail
+from tracker import issueadmin
+from tracker import issueadvsearch
+from tracker import issueattachment
+from tracker import issueattachmenttext
+from tracker import issuebulkedit
+from tracker import issuedetailezt
+from tracker import issueentry
+from tracker import issueentryafterlogin
+from tracker import issueexport
+from tracker import issueoriginal
+from tracker import issuereindex
+from tracker import issuetips
+from tracker import issueimport
+
+from tracker import webcomponentspage
class ServletRegistry(object):
@@ -50,10 +121,796 @@
"""Register all the monorail request handlers."""
return self.routes
- def RegisterExcesiveActivity(self, service):
- flaskapp_excessive_activity = Flask(__name__)
- flaskapp_excessive_activity.add_url_rule(
- '/',
- view_func=excessiveactivity.ExcessiveActivity(services=service).handler,
- methods=['GET'])
- return flaskapp_excessive_activity
+ def _AddFlaskUrlRules(self, flask_instance, rule_tuple):
+ """Add url rules to a given Flask instance.
+
+ Args:
+ flask_instance: The Flask app to add URLs to.
+ rule_tuple: List of tuple of path, module and method to call, HTTP method
+
+ Returns:
+ The Flask instance.
+ """
+ for rule in rule_tuple:
+ flask_instance.add_url_rule(rule[0], view_func=rule[1], methods=rule[2])
+ return flask_instance
+
+ # pylint: disable=unused-argument
+ def RegisterGroupUrls(self, services):
+ flaskapp_group = flask.Flask(__name__)
+ _GROUP_URL = [
+ # ('/', grouplist.GroupList(services=services).GetGroupList, ['GET']),
+ # (
+ # '/<string:viewed_username>/',
+ # groupdetail.GroupDetail(services=services).GetGroupDetail,
+ # ['GET']),
+ # (
+ # '/<string:viewed_username>/edit.do',
+ # groupdetail.GroupDetail(services=services).PostGroupDetail,
+ # ['POST']),
+ # (
+ # '/<string:viewed_username>/groupadmin',
+ # groupadmin.GroupAdmin(services=services).GetGroupAdmin, ['GET']),
+ # (
+ # '/<string:viewed_username>/groupadmin.do',
+ # groupadmin.GroupAdmin(services=services).PostGroupAdmin,
+ # ['POST']),
+ ]
+
+ return self._AddFlaskUrlRules(flaskapp_group, _GROUP_URL)
+
+ # pylint: disable=unused-argument
+ def RegisterHostingUrl(self, service):
+ flaskapp_hosting = flask.Flask(__name__)
+ _HOSTING_URL = [
+ # (
+ # '/excessiveActivity',
+ # excessiveactivity.ExcessiveActivity(
+ # services=service).GetExcessiveActivity, ['GET']),
+ # (
+ # '/settings',
+ # usersettings.UserSettings(services=service).GetUserSetting, ['GET'
+ # ]),
+ # (
+ # '/settings.do',
+ # usersettings.UserSettings(services=service).PostUserSetting,
+ # ['POST']),
+ # ('/noAccess', banned.Banned(services=service).GetNoAccessPage,
+ # ['GET']),
+ # (
+ # '/moved', moved.ProjectMoved(services=service).GetProjectMoved,
+ # ['GET']),
+ # (
+ # '/createProject',
+ # projectcreate.ProjectCreate(services=service).GetCreateProject,
+ # ['GET']),
+ # (
+ # '/createProject.do',
+ # projectcreate.ProjectCreate(services=service).PostCreateProject,
+ # ['POST']),
+ # (
+ # '/createHotlist',
+ # hotlistcreate.HotlistCreate(services=service).GetCreateHotlist,
+ # ['GET']),
+ # (
+ # '/createHotlist.do',
+ # hotlistcreate.HotlistCreate(services=service).PostCreateHotlist,
+ # ['POST']),
+ # (
+ # '/createGroup',
+ # groupcreate.GroupCreate(services=service).GetGroupCreate,
+ # ['GET']),
+ # (
+ # '/createGroup.do',
+ # groupcreate.GroupCreate(services=service).PostGroupCreate,
+ # ['POST']),
+ # (
+ # '/deleteGroup',
+ # grouplist.GroupDelete(services=service).GetGroupDelete,
+ # ['GET']),
+ # (
+ # '/deleteGroup.do',
+ # grouplist.GroupDelete(services=service).PostGroupDelete,
+ # ['POST']),
+ ]
+
+ flaskapp_hosting = self._AddFlaskUrlRules(flaskapp_hosting, _HOSTING_URL)
+
+ # pylint: disable=unused-variable
+ # for url /hosting/
+ @flaskapp_hosting.route('/')
+ def DefaultToMainPage():
+ url = flask.request.host_url
+ return flask.redirect(url)
+
+ return flaskapp_hosting
+
+ def RegisterOldHostUrl(self, service):
+ flaskapp_hosting_old = flask.Flask(__name__)
+
+ # pylint: disable=unused-variable
+ @flaskapp_hosting_old.route('/')
+ def GetHostingOld():
+ return hostinghome.HostingHome(services=service).GetOldHostingHome()
+
+ return flaskapp_hosting_old
+
+ def RegisterRedirectProjectUrl(self):
+ flaskapp_project_redirect = flask.Flask(__name__)
+
+ # pylint: disable=unused-variable
+ @flaskapp_project_redirect.route('/')
+ def GetRedirectProject():
+ url = flask.request.host_url
+ return flask.redirect(url)
+
+ return flaskapp_project_redirect
+
+ def RegisterProjectUrls(self, service):
+ flaskapp_project = flask.Flask(__name__)
+ _PROJECT_URLS = [
+ # (
+ # '/<string:project_name>/<string:unrecognized>',
+ # custom_404.ErrorPage(services=service).Get404Page,
+ # ['GET'],
+ # ),
+ # (
+ # '/<string:project_name>/adminComponents',
+ # issueadmin.AdminComponents(
+ # services=service).GetAdminComponentsPage, ['GET']),
+ # (
+ # '/<string:project_name>/adminComponents.do',
+ # issueadmin.AdminComponents(
+ # services=service).PostAdminComponentsPage, ['POST']),
+ # (
+ # '/<string:project_name>/adminIntro',
+ # projectsummary.ProjectSummary(
+ # services=service).GetProjectSummaryPage, ['GET']),
+ # (
+ # '/<string:project_name>/adminLabels',
+ # issueadmin.AdminLabels(services=service).GetAdminLabelsPage,
+ # ['GET']),
+ # (
+ # '/<string:project_name>/adminLabels.do',
+ # issueadmin.AdminLabels(services=service).PostAdminLabelsPage,
+ # ['POST']),
+ # (
+ # '/<string:project_name>/adminRules',
+ # issueadmin.AdminRules(services=service).GetAdminRulesPage,
+ # ['GET']),
+ # (
+ # '/<string:project_name>/adminRules.do',
+ # issueadmin.AdminRules(services=service).PostAdminRulesPage,
+ # ['POST']),
+ # (
+ # '/<string:project_name>/adminStatuses',
+ # issueadmin.AdminStatuses(services=service).GetAdminStatusesPage,
+ # ['GET']),
+ # (
+ # '/<string:project_name>/adminStatuses.do',
+ # issueadmin.AdminStatuses(services=service).PostAdminStatusesPage,
+ # ['POST']),
+ # (
+ # '/<string:project_name>/adminTemplates',
+ # issueadmin.AdminTemplates(services=service).GetAdminTemplatesPage,
+ # ['GET']),
+ # (
+ # '/<string:project_name>/adminTemplates.do',
+ # issueadmin.AdminTemplates(
+ # services=service).PostAdminTemplatesPage, ['POST']),
+ # (
+ # '/<string:project_name>/adminViews',
+ # issueadmin.AdminViews(services=service).GetAdminViewsPage,
+ # ['GET']),
+ # (
+ # '/<string:project_name>/adminViews.do',
+ # issueadmin.AdminViews(services=service).PostAdminViewsPage,
+ # ['POST']),
+ # (
+ # '/<string:project_name>/admin',
+ # projectadmin.ProjectAdmin(services=service).GetProjectAdminPage,
+ # ['GET']),
+ # (
+ # '/<string:project_name>/admin.do',
+ # projectadmin.ProjectAdmin(services=service).PostProjectAdminPage,
+ # ['POST']),
+ # (
+ # '/<string:project_name>/adminAdvanced',
+ # projectadminadvanced.ProjectAdminAdvanced(
+ # services=service).GetProjectAdminAdvancedPage, ['GET']),
+ # (
+ # '/<string:project_name>/adminAdvanced.do',
+ # projectadminadvanced.ProjectAdminAdvanced(
+ # services=service).PostProjectAdminAdvancedPage, ['POST']),
+ # (
+ # '/<string:project_name>/components/create',
+ # componentcreate.ComponentCreate(
+ # services=service).GetComponentCreatePage, ['GET']),
+ # (
+ # '/<string:project_name>/components/create.do',
+ # componentcreate.ComponentCreate(
+ # services=service).PostComponentCreatePage, ['POST']),
+ # (
+ # '/<string:project_name>/fields/create',
+ # fieldcreate.FieldCreate(
+ # services=service).GetFieldCreate, ['GET']),
+ # (
+ # '/<string:project_name>/fields/create.do',
+ # fieldcreate.FieldCreate(
+ # services=service).PostFieldCreate, ['POST']),
+ # (
+ # '/<string:project_name>/fields/detail',
+ # fielddetail.FieldDetail(
+ # services=service).GetFieldDetail, ['GET']),
+ # (
+ # '/<string:project_name>/fields/detail.do',
+ # fielddetail.FieldDetail(
+ # services=service).PostFieldDetail, ['POST']),
+ # (
+ # '/<string:project_name>/issues/advsearch',
+ # issueadvsearch.IssueAdvancedSearch(
+ # services=service).GetIssueAdvSearchPage, ['GET']),
+ # (
+ # '/<string:project_name>/issues/advsearch.do',
+ # issueadvsearch.IssueAdvancedSearch(
+ # services=service).PostIssueAdvSearchPage, ['POST']),
+ # (
+ # '/<string:project_name>/issues/detail',
+ # webcomponentspage.WebComponentsPage(
+ # services=service).GetWebComponentsIssueDetail, ['GET']),
+ # (
+ # '/<string:project_name>/issues/export',
+ # issueexport.IssueExport(services=service).GetIssueExport,
+ # ['GET']),
+ # (
+ # '/<string:project_name>/issues/export/json',
+ # issueexport.IssueExportJSON(services=service).GetIssueExportJSON,
+ # ['GET']),
+ # (
+ # '/<string:project_name>/issues/export/json.do',
+ # issueexport.IssueExportJSON(services=service).PostIssueExportJSON,
+ # ['POST']),
+ # (
+ # '/<string:project_name>/issues/import',
+ # issueimport.IssueImport(services=service).GetIssueImport,
+ # ['GET']),
+ # (
+ # '/<string:project_name>/issues/import.do',
+ # issueimport.IssueImport(services=service).PostIssueImport, ['POST'
+ # ]),
+ # (
+ # '/<string:project_name>/issues/original',
+ # issueoriginal.IssueOriginal(services=service).GetIssueOriginal,
+ # ['GET']),
+ # (
+ # '/<string:project_name>/issues/entry',
+ # issueentry.IssueEntry(
+ # services=service).GetIssueEntry, ['GET']),
+ # (
+ # '/<string:project_name>/issues/entry.do',
+ # issueentry.IssueEntry(
+ # services=service).PostIssueEntry, ['POST']),
+ # (
+ # '/<string:project_name>/issues/entry_new',
+ # webcomponentspage.WebComponentsPage(
+ # services=service).GetWebComponentsIssueNewEntry, ['GET']),
+ # (
+ # '/<string:project_name>/issues/list',
+ # webcomponentspage.WebComponentsPage(
+ # services=service).GetWebComponentsIssueList, ['GET']),
+ # (
+ # '/<string:project_name>/issues/reindex',
+ # issuereindex.IssueReindex(
+ # services=service).GetIssueReindex, ['GET']),
+ # (
+ # '/<string:project_name>/issues/reindex.do',
+ # issuereindex.IssueReindex(
+ # services=service).PostIssueReindex, ['POST']),
+ # (
+ # '/<string:project_name>/issues/detail/list',
+ # issuedetailezt.FlipperList(
+ # services=service).GetFlipperList, ['GET']),
+ # (
+ # '/<string:project_name>/issues/detail/flipper',
+ # issuedetailezt.FlipperIndex(
+ # services=service).GetFlipperIndex, ['GET']),
+ # (
+ # '/<string:project_name>/issues/detail/flipper.do',
+ # issuedetailezt.FlipperIndex(
+ # services=service).PostFlipperIndex, ['POST']),
+ # (
+ # '/<string:project_name>/issues/wizard',
+ # webcomponentspage.WebComponentsPage(
+ # services=service).GetWebComponentsIssueWizard, ['GET']),
+ # (
+ # '/<string:project_name>/templates/create',
+ # templatecreate.TemplateCreate(
+ # services=service).GetTemplateCreate, ['GET']),
+ # (
+ # '/<string:project_name>/templates/create.do',
+ # templatecreate.TemplateCreate(
+ # services=service).PostTemplateCreate, ['POST']),
+ # (
+ # '/<string:project_name>/templates/detail',
+ # templatedetail.TemplateDetail(
+ # services=service).GetTemplateDetail, ['GET']),
+ # (
+ # '/<string:project_name>/templates/detail.do',
+ # templatedetail.TemplateDetail(
+ # services=service).PostTemplateDetail, ['POST']),
+ # (
+ # '/<string:project_name>/people/list',
+ # peoplelist.PeopleList(services=service).GetPeopleListPage,
+ # ['GET']),
+ # (
+ # '/<string:project_name>/people/list.do',
+ # peoplelist.PeopleList(services=service).PostPeopleListPage,
+ # ['POST']),
+ # (
+ # '/<string:project_name>/people/detail',
+ # peopledetail.PeopleDetail(services=service).GetPeopleDetailPage,
+ # ['GET']),
+ # (
+ # '/<string:project_name>/people/detail.do',
+ # peopledetail.PeopleDetail(services=service).PostPeopleDetailPage,
+ # ['POST']),
+ # (
+ # '/<string:project_name>/projectExport',
+ # projectexport.ProjectExport(
+ # services=service).GetProjectExportPage, ['GET']),
+ # (
+ # '/<string:project_name>/projectExport/json',
+ # projectexport.ProjectExportJSON(
+ # services=service).GetProjectExportJSONPage, ['GET']),
+ # (
+ # '/<string:project_name>/projectExport/json.do',
+ # projectexport.ProjectExportJSON(
+ # services=service).PostProjectExportJSONPage, ['POST']),
+ # (
+ # '/<string:project_name>/updates/list',
+ # projectupdates.ProjectUpdates(
+ # services=service).GetProjectUpdatesPage, ['GET']),
+ # (
+ # '/<string:project_name>/w/list',
+ # redirects.WikiRedirect(
+ # services=service).GetWikiListRedirect, ['GET']),
+ # (
+ # '/<string:project_name>/wiki/<string:wiki_page>',
+ # redirects.WikiRedirect(
+ # services=service).GetWikiRedirect, ['GET']),
+ # (
+ # '/<string:project_name>/source/<string:source_page>',
+ # redirects.SourceRedirect(
+ # services=service).GetSourceRedirect, ['GET']),
+ # '/<string:project_name>/issues/entryafterlogin',
+ # issueentryafterlogin.IssueEntryAfterLogin(
+ # services=service).GetIssueEntryAfterLogin,
+ # ['GET'],
+ # ),
+ # (
+ # '/<string:project_name>/issues/searchtips',
+ # issuetips.IssueSearchTips(services=service).GetIssueSearchTips,
+ # ['GET'],
+ # ),
+ # (
+ # '/<string:project_name>/issues/attachment',
+ # issueattachment.AttachmentPage(services=service).GetAttachmentPage,
+ # ['GET'],
+ # ),
+ # (
+ # '/<string:project_name>/issues/attachmentText',
+ # issueattachmenttext.AttachmentText(
+ # services=service).GetAttachmentText,
+ # ['GET'],
+ # ),
+ # (
+ # '/<string:project_name>/issues/bulkedit',
+ # issuebulkedit.IssueBulkEdit(
+ # services=service).GetIssueBulkEdit, ['GET']),
+ # (
+ # '/<string:project_name>/issues/bulkedit.do',
+ # issuebulkedit.IssueBulkEdit(
+ # services=service).PostIssueBulkEdit, ['POST']),
+ # (
+ # '/<string:project_name>/issues/detail/next',
+ # issuedetailezt.FlipperNext(
+ # services=service).GetFlipperNextRedirectPage, ['GET']),
+ # (
+ # '/<string:project_name>/issues/detail/previous',
+ # issuedetailezt.FlipperPrev(
+ # services=service).GetFlipperPrevRedirectPage, ['GET']),
+ ]
+ flaskapp_project = self._AddFlaskUrlRules(flaskapp_project, _PROJECT_URLS)
+
+ # pylint: disable=unused-variable
+ @flaskapp_project.route('/<string:project_name>/issues/approval')
+ @flaskapp_project.route('/<string:project_name>/issues/detail_ezt')
+ def ProjectRedirectToIssueDetail(project_name):
+ host_url = flask.request.host_url
+ url = host_url + 'p/' + project_name + '/issues/detail'
+ query_string = flask.request.query_string
+ if query_string:
+ url = '%s?%s' % (url, query_string)
+ return flask.redirect(url)
+
+ # pylint: disable=unused-variable
+ @flaskapp_project.route('/<string:project_name>/issues/list_new')
+ @flaskapp_project.route('/<string:project_name>/')
+ @flaskapp_project.route('/<string:project_name>/issues/')
+ def ProjectRedirectToIssueList(project_name):
+ host_url = flask.request.host_url
+ url = host_url + 'p/' + project_name + '/issues/list'
+ query_string = flask.request.query_string
+ if query_string:
+ url = '%s?%s' % (url, query_string)
+ return flask.redirect(url)
+
+ # pylint: disable=unused-variable
+ @flaskapp_project.route('/')
+ def ProjectRedirectToMainPage():
+ url = flask.request.host_url
+ return flask.redirect(url)
+
+ # pylint: disable=unused-variable
+ @flaskapp_project.route('/<string:project_name>/people/')
+ def ProjectRedirectToPeopleList(project_name):
+ host_url = flask.request.host_url
+ url = host_url + 'p/' + project_name + '/people/list'
+ return flask.redirect(url)
+
+ return flaskapp_project
+
+ def RegisterUserUrls(self, service):
+ flaskapp_user = flask.Flask(__name__)
+ _USER_URLS = [
+ # (
+ # '/<string:viewed_username>/queries',
+ # savedqueries.SavedQueries(services=service).GetSavedQueriesPage,
+ # ['GET']),
+ # (
+ # '/<string:viewed_username>/queries.do',
+ # savedqueries.SavedQueries(services=service).PostSavedQueriesPage,
+ # ['Post']),
+ # (
+ # '/<string:viewed_username>/hotlists',
+ # userhotlists.UserHotlists(services=service).GetUserHotlistsPage,
+ # ['GET']),
+ # (
+ # '/<string:viewed_username>/hotlists.do',
+ # userhotlists.UserHotlists(services=service).PostUserHotlistsPage,
+ # ['Post']),
+ # (
+ # '/<string:viewed_username>/',
+ # userprofile.UserProfile(services=service).GetUserProfilePage,
+ # ['GET']),
+ # (
+ # '/<string:viewed_username>/edit.do',
+ # userprofile.UserProfile(services=service).PostUserProfilePage,
+ # ['POST']),
+ # (
+ # '/<string:viewed_username>/ban.do',
+ # userprofile.BanUser(services=service).PostBanUserPage,
+ # ['POST']),
+ # (
+ # '/<string:viewed_username>/banSpammer.do',
+ # banspammer.BanSpammer(services=service).PostBanSpammerPage,
+ # ['POST']),
+ # (
+ # '/<string:viewed_username>/clearBouncing',
+ # userclearbouncing.UserClearBouncing(
+ # services=service).GetUserClearBouncingPage, ['GET']),
+ # (
+ # '/<string:viewed_username>/clearBouncing.do',
+ # userclearbouncing.UserClearBouncing(
+ # services=service).PostUserClearBouncingPage, ['Post']),
+ # (
+ # '/<string:viewed_username>/updates/projects',
+ # userupdates.UserUpdatesProjects(
+ # services=service).GetUserUpdatesProjectsPage, ['GET']),
+ # (
+ # '/<string:viewed_username>/updates/developers',
+ # userupdates.UserUpdatesDevelopers(
+ # services=service).GetUserUpdatesDevelopersPage, ['GET']),
+ # (
+ # '/<string:viewed_username>/updates',
+ # userupdates.UserUpdatesIndividual(
+ # services=service).GetUserUpdatesPage, ['GET']),
+ # (
+ # '/<string:viewed_username>/hotlists/<string:hotlist_id>',
+ # hotlistissues.HotlistIssues(services=service).GetHotlistIssuesPage,
+ # ['GET']),
+ # (
+ # '/<string:viewed_username>/hotlists/<string:hotlist_id>.do',
+ # hotlistissues.HotlistIssues(services=service).PostHotlistIssuesPage,
+ # ['POST']),
+ # (
+ # '/<string:viewed_username>/hotlists/<string:hotlist_id>/csv',
+ # hotlistissuescsv.HotlistIssuesCsv(
+ # services=service).GetHotlistIssuesCsvPage, ['GET']),
+ # (
+ # '/<string:viewed_username>/hotlists/<string:hotlist_id>/people',
+ # hotlistpeople.HotlistPeopleList(
+ # services=service).GetHotlistPeoplePage, ['GET']),
+ # (
+ # '/<string:viewed_username>/hotlists/<string:hotlist_id>/people.do',
+ # hotlistpeople.HotlistPeopleList(
+ # services=service).PostHotlistPeoplePage, ['POST']),
+ # (
+ # '/<string:viewed_username>/hotlists/<string:hotlist_id>/details',
+ # hotlistdetails.HotlistDetails(
+ # services=service).GetHotlistDetailsPage, ['GET']),
+ # (
+ # '/<string:viewed_username>/hotlists/<string:hotlist_id>/details.do',
+ # hotlistdetails.HotlistDetails(
+ # services=service).PostHotlistDetailsPage, ['POST']),
+ # (
+ # '/<string:viewed_username>/hotlists/<string:hotlist_id>/rerank',
+ # rerankhotlist.RerankHotlistIssue(
+ # services=service).GetRerankHotlistIssuePage, ['GET']),
+ # (
+ # '/<string:viewed_username>/hotlists/<string:hotlist_id>/rerank.do',
+ # rerankhotlist.RerankHotlistIssue(
+ # services=service).PostRerankHotlistIssuePage, ['POST']),
+ ]
+
+ flaskapp_user = self._AddFlaskUrlRules(flaskapp_user, _USER_URLS)
+
+ # pylint: disable=unused-variable
+ # for url /u/
+ @flaskapp_user.route('/')
+ def UserRedirectToMainPage():
+ url = flask.request.host_url
+ return flask.redirect(url)
+
+ return flaskapp_user
+
+ # pylint: disable=unused-argument
+ def RegisterTaskUrl(self, service):
+ flaskapp_task = flask.Flask(__name__)
+ _TASK_URL = [
+ # (
+ # '/banSpammer',
+ # banspammer.BanSpammerTask(services=service).GetBanSpammer,
+ # ['GET']),
+ # (
+ # '/banSpammer.do',
+ # banspammer.BanSpammerTask(services=service).PostBanSpammer,
+ # ['POST']),
+ # (
+ # '/sendWipeoutUserListsTask',
+ # deleteusers.SendWipeoutUserListsTask(
+ # services=service).GetSendWipeoutUserListsTask, ['GET']),
+ # (
+ # '/sendWipeoutUserListsTask.do',
+ # deleteusers.SendWipeoutUserListsTask(
+ # services=service).PostSendWipeoutUserListsTask, ['POST']),
+ # (
+ # '/deleteWipeoutUsersTask',
+ # deleteusers.DeleteWipeoutUsersTask(
+ # services=service).GetDeleteWipeoutUsersTask, ['GET']),
+ # (
+ # '/deleteWipeoutUsersTask.do',
+ # deleteusers.DeleteWipeoutUsersTask(
+ # services=service).PostDeleteWipeoutUsersTask, ['POST']),
+ # (
+ # '/deleteUsersTask',
+ # deleteusers.DeleteUsersTask(services=service).GetDeleteUsersTask,
+ # ['GET']),
+ # (
+ # '/deleteUsersTask.do',
+ # deleteusers.DeleteUsersTask(services=service).PostDeleteUsersTask,
+ # ['POST']),
+ # (
+ # '/notifyRulesDeleted',
+ # notify.NotifyRulesDeletedTask(
+ # services=service).GetNotifyRulesDeletedTask, ['GET']),
+ # (
+ # '/notifyRulesDeleted.do',
+ # notify.NotifyRulesDeletedTask(
+ # services=service).PostNotifyRulesDeletedTask, ['POST']),
+ # (
+ # '/notifyIssueChange', notify.NotifyIssueChangeTask(
+ # services=service).GetNotifyIssueChangeTask, ['GET']),
+ # (
+ # '/notifyIssueChange.do',
+ # notify.NotifyIssueChangeTask(
+ # services=service).PostNotifyIssueChangeTask, ['POST']),
+ # (
+ # '/notifyBlockingChange',
+ # notify.NotifyBlockingChangeTask(
+ # services=service).GetNotifyBlockingChangeTask, ['GET']),
+ # (
+ # '/notifyBlockingChange.do',
+ # notify.NotifyBlockingChangeTask(
+ # services=service).PostNotifyBlockingChangeTask, ['POST']),
+ # (
+ # '/notifyBulkEdit', notify.NotifyBulkChangeTask(
+ # services=service).GetNotifyBulkChangeTask, ['GET']),
+ # (
+ # '/notifyBulkEdit.do', notify.NotifyBulkChangeTask(
+ # services=service).PostNotifyBulkChangeTask, ['POST']),
+ # (
+ # '/notifyApprovalChange',
+ # notify.NotifyApprovalChangeTask(
+ # services=service).GetNotifyApprovalChangeTask, ['GET']),
+ # (
+ # '/notifyApprovalChange.do',
+ # notify.NotifyApprovalChangeTask(
+ # services=service).PostNotifyApprovalChangeTask, ['POST']),
+ # (
+ # '/publishPubsubIssueChange',
+ # pubsub.PublishPubsubIssueChangeTask(
+ # services=service).GetPublishPubsubIssueChangeTask, ['GET']),
+ # (
+ # '/publishPubsubIssueChange.do',
+ # pubsub.PublishPubsubIssueChangeTask(
+ # services=service).PostPublishPubsubIssueChangeTask, ['POST']),
+ # (
+ # '/issueDateAction', dateaction.IssueDateActionTask(
+ # services=service).GetIssueDateActionTask, ['GET']),
+ # (
+ # '/issueDateAction.do',
+ # dateaction.IssueDateActionTask(
+ # services=service).PostIssueDateActionTask, ['POST']),
+ # (
+ # '/fltConversionTask',
+ # fltconversion.FLTConvertTask(services=service).GetFLTConvertTask,
+ # ['GET']),
+ # (
+ # '/fltConversionTask.do',
+ # fltconversion.FLTConvertTask(services=service).PostFLTConvertTask,
+ # ['POST']),
+ # (
+ # '/outboundEmail',
+ # notify.OutboundEmailTask(services=service).GetOutboundEmailTask,
+ # ['GET']),
+ # (
+ # '/outboundEmail.do',
+ # notify.OutboundEmailTask(services=service).PostOutboundEmailTask,
+ # ['POST']),
+ # (
+ # '/recomputeDerivedFields',
+ # filterrules.RecomputeDerivedFieldsTask(
+ # services=service).GetRecomputeDerivedFieldsTask, ['GET']),
+ # (
+ # '/recomputeDerivedFields.do',
+ # filterrules.RecomputeDerivedFieldsTask(
+ # services=service).PostRecomputeDerivedFieldsTask, ['POST']),
+ ]
+
+ for rule in _TASK_URL:
+ flaskapp_task.add_url_rule(rule[0], view_func=rule[1], methods=rule[2])
+
+ return flaskapp_task
+
+ # pylint: disable=unused-argument
+ def RegisterCronUrl(self, service):
+ flaskapp_cron = flask.Flask(__name__)
+ _CRON_URL = [
+ # (
+ # '/wipeoutSync',
+ # deleteusers.WipeoutSyncCron(services=service).GetWipeoutSyncCron,
+ # ['GET']),
+ # (
+ # '/wipeoutSync.do',
+ # deleteusers.WipeoutSyncCron(services=service).PostWipeoutSyncCron,
+ # ['POST']),
+ # (
+ # '/reindexQueue',
+ # filterrules.ReindexQueueCron(
+ # services=service).GetReindexQueueCron,
+ # ['GET']),
+ # (
+ # '/reindexQueue.do',
+ # filterrules.ReindexQueueCron(
+ # services=service).PostReindexQueueCron,
+ # ['POST']),
+ # (
+ # '/dateAction',
+ # dateaction.DateActionCron(services=service).GetDateActionCron,
+ # ['GET']),
+ # (
+ # '/dateAction.do',
+ # dateaction.DateActionCron(services=service).PostDateActionCron,
+ # ['POST']),
+ # (
+ # '/ramCacheConsolidate',
+ # cachemanager_svc.RamCacheConsolidate(
+ # services=service).GetRamCacheConsolidate, ['GET']),
+ # (
+ # '/ramCacheConsolidate.do',
+ # cachemanager_svc.RamCacheConsolidate(
+ # services=service).PostRamCacheConsolidate, ['POST']),
+ # ('/reap', reap.Reap(services=service).GetReap, ['GET']),
+ # ('/reap.do', reap.Reap(services=service).PostReap, ['POST']),
+ # (
+ # '/loadApiClientConfigs',
+ # client_config_svc.LoadApiClientConfigs().GetLoadApiClientConfigs,
+ # ['GET']),
+ # (
+ # '/trimVisitedPages',
+ # trimvisitedpages.TrimVisitedPages(
+ # services=service).GetTrimVisitedPages, ['GET']),
+ # (
+ # '/trimVisitedPages.do',
+ # trimvisitedpages.TrimVisitedPages(
+ # services=service).PostTrimVisitedPages, ['POST']),
+ ]
+
+ for rule in _CRON_URL:
+ flaskapp_cron.add_url_rule(rule[0], view_func=rule[1], methods=rule[2])
+
+ return flaskapp_cron
+
+ # pylint: disable=unused-argument
+ def RegisterBackendUrl(self, service):
+ flaskapp_backend = flask.Flask(__name__)
+ _BACKEND_URL = [
+ # (
+ # '/search',
+ # backendsearch.BackendSearch(services=service).GetBackendSearch,
+ # ['GET']),
+ # (
+ # '/search.do',
+ # backendsearch.BackendSearch(services=service).PostBackendSearch,
+ # ['POST']),
+ # (
+ # '/nonviewable',
+ # backendnonviewable.BackendNonviewable(
+ # services=service).GetBackendNonviewable,
+ # ['GET']),
+ # (
+ # '/nonviewable.do',
+ # backendnonviewable.BackendNonviewable(
+ # services=service).PostBackendNonviewable,
+ # ['POST']),
+ ]
+
+ for rule in _BACKEND_URL:
+ flaskapp_backend.add_url_rule(rule[0], view_func=rule[1], methods=rule[2])
+
+ return flaskapp_backend
+
+ # pylint: disable=unused-argument
+ def RegisterMONSetUrl(self, service):
+ flaskapp_mon = flask.Flask(__name__)
+ _MON_URL = [
+ # (
+ # '/clientmon',
+ # clientmon.ClientMonitor(services=service).GetClientMonitor, ['GET'
+ # ]),
+ # (
+ # '/clientmon.do',
+ # clientmon.ClientMonitor(services=service).PostClientMonitor,
+ # ['POST']),
+ # (
+ # '/jstsmon.do',
+ # ts_mon_js.FlaskMonorailTSMonJSHandler(
+ # services=service).PostMonorailTSMonJSHandler,
+ # ['POST'],
+ # )
+ ]
+
+ flaskapp_mon = self._AddFlaskUrlRules(flaskapp_mon, _MON_URL)
+ return flaskapp_mon
+
+ # pylint: disable=unused-argument
+ def RegisterAHUrl(self, service):
+ flaskapp_ah = flask.Flask(__name__)
+ _AH_URL = [
+ # ('/warmup', warmup.Warmup(services=service).GetWarmup, ['GET']),
+ # ('/start', warmup.Start(services=service).GetStart, ['GET']),
+ # ('/stop', warmup.Stop(services=service).GetStop, ['GET']),
+ # (
+ # '/bounce',
+ # inboundemail.BouncedEmail(services=service).postBouncedEmail,
+ # ['POST']),
+ # (
+ # '/mail/<string:project_addr>',
+ # inboundemail.InboundEmail(services=service).HandleInboundEmail,
+ # ['GET', 'POST'])
+ ]
+
+ flaskapp_ah = self._AddFlaskUrlRules(flaskapp_ah, _AH_URL)
+
+ return flaskapp_ah