Projet

Général

Profil

0001-settings-deployed-services-exposed-in-KNOWN_SERVICES.patch

Voir les différences:

Subject: [PATCH 1/2] settings: deployed services exposed in KNOWN_SERVICES
 setting (#6711)

Current service domain and secret computed for each service
 hobo/multitenant/settings_loaders.py | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)
hobo/multitenant/settings_loaders.py
1 1
import os
2 2
import json
3 3
import urlparse
4
import hashlib
4 5
from importlib import import_module
5 6

  
6 7
from django.conf import settings
......
31 32
        raise NotImplemented
32 33

  
33 34

  
35
class KnownServices(FileBaseSettingsLoader):
36
    FILENAME = 'hobo.json'
37

  
38
    def update_settings_from_path(self, tenant_settings, path):
39
        known_services = {}
40
        with file(path) as f:
41
            hobo_json = json.load(f)
42
        services = hobo_json.get('services')
43
        base_url, secret = [(s.get('base_url'), s.get('secret_key'))
44
                            for s in services if s.get('this')][0]
45
        orig = urlparse.urlparse(base_url).netloc.split(':')[0]
46
        secret = hashlib.sha1(orig+secret).hexdigest()
47

  
48
        for service in services:
49
            service_id = service.get('service-id')
50

  
51
            service_data = {
52
                'url': service.get('base_url'),
53
                'title': service.get('title'),
54
                'orig': orig,
55
                'secret': secret,
56
                'variables': service.get('variables')
57
            }
58
            if service_id in known_services:
59
                known_services[service_id][service.get('slug')] = service_data
60
            else:
61
                known_services[service_id] = {
62
                    service.get('slug'): service_data
63
                }
64

  
65
        tenant_settings.KNOWN_SERVICES = known_services
66

  
67

  
34 68
class TemplateVars(FileBaseSettingsLoader):
35 69
    FILENAME = 'hobo.json'
36 70

  
37
-