Index: appengine/monorail/services/service_manager.py |
diff --git a/appengine/monorail/services/service_manager.py b/appengine/monorail/services/service_manager.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7ab96bc64679a732baacf30a7236fb583cfe60e4 |
--- /dev/null |
+++ b/appengine/monorail/services/service_manager.py |
@@ -0,0 +1,68 @@ |
+# Copyright 2016 The Chromium Authors. All rights reserved. |
+# Use of this source code is govered by a BSD-style |
+# license that can be found in the LICENSE file or at |
+# https://developers.google.com/open-source/licenses/bsd |
+ |
+"""Service manager to initialize all services.""" |
+ |
+from features import autolink |
+from services import cachemanager_svc |
+from services import config_svc |
+from services import features_svc |
+from services import issue_svc |
+from services import project_svc |
+from services import spam_svc |
+from services import star_svc |
+from services import user_svc |
+from services import usergroup_svc |
+ |
+ |
+svcs = None |
+ |
+ |
+class Services(object): |
+ """A simple container for widely-used service objects.""" |
+ |
+ def __init__( |
+ self, project=None, user=None, issue=None, config=None, |
+ inboundemail=None, usergroup=None, cache_manager=None, autolink_obj=None, |
+ user_star=None, project_star=None, issue_star=None, features=None, |
+ spam=None): |
+ # Persistence services |
+ self.project = project |
+ self.user = user |
+ self.usergroup = usergroup |
+ self.issue = issue |
+ self.config = config |
+ self.user_star = user_star |
+ self.project_star = project_star |
+ self.issue_star = issue_star |
+ self.features = features |
+ self.spam = spam |
+ |
+ # Misc. services |
+ self.cache_manager = cache_manager |
+ self.inboundemail = inboundemail |
+ self.autolink = autolink_obj |
+ |
+ |
+def set_up_services(): |
+ """Set up all services.""" |
+ |
+ global svcs |
+ if svcs is None: |
+ svcs = Services() |
+ svcs.autolink = autolink.Autolink() |
+ svcs.cache_manager = cachemanager_svc.CacheManager() |
+ svcs.user = user_svc.UserService(svcs.cache_manager) |
+ svcs.user_star = star_svc.UserStarService(svcs.cache_manager) |
+ svcs.project_star = star_svc.ProjectStarService(svcs.cache_manager) |
+ svcs.issue_star = star_svc.IssueStarService(svcs.cache_manager) |
+ svcs.project = project_svc.ProjectService(svcs.cache_manager) |
+ svcs.usergroup = usergroup_svc.UserGroupService(svcs.cache_manager) |
+ svcs.config = config_svc.ConfigService(svcs.cache_manager) |
+ svcs.issue = issue_svc.IssueService( |
+ svcs.project, svcs.config, svcs.cache_manager) |
+ svcs.features = features_svc.FeaturesService(svcs.cache_manager) |
+ svcs.spam = spam_svc.SpamService() |
+ return svcs |