From a763afbb696b7c1520dcce4d880313ac5b4e4415 Mon Sep 17 00:00:00 2001 From: Serghei Mihai Date: Mon, 11 May 2015 18:24:53 +0200 Subject: [PATCH] settings: deployed services exposed in KNOWN_SERVICES setting (#6711) Current service domain and secret repeated for each service --- hobo/multitenant/settings_loaders.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/hobo/multitenant/settings_loaders.py b/hobo/multitenant/settings_loaders.py index af6aa88..6f80efa 100644 --- a/hobo/multitenant/settings_loaders.py +++ b/hobo/multitenant/settings_loaders.py @@ -31,6 +31,36 @@ class FileBaseSettingsLoader(object): raise NotImplemented +class KnownServices(FileBaseSettingsLoader): + FILENAME = 'hobo.json' + + def update_settings_from_path(self, tenant_settings, path): + known_services = {} + with file(path) as f: + hobo_json = json.load(f) + services = hobo_json.get('services') + base_url, secret = [(s.get('base_url'), s.get('secret_key')) + for s in services if s.get('this')][0] + + for service in services: + service_id = service.get('service-id') + service_data = { + 'url': service.get('base_url'), + 'title': service.get('title'), + 'orig': urlparse.urlparse(base_url).netloc.split(':')[0], + 'secret': secret, + 'variables': service.get('variables') + } + if service_id in known_services: + known_services[service_id][service.get('slug')] = service_data + else: + known_services[service_id] = { + service.get('slug'): service_data + } + + tenant_settings.KNOWN_SERVICES = known_services + + class TemplateVars(FileBaseSettingsLoader): FILENAME = 'hobo.json' -- 2.1.4