Пример #1
0
    def update_defaults(self):
        actual = set([c[0] for c in self.session.query(Config.var_name).filter(Config.tid == self.tid)])
        allowed = set(ConfigDescriptor.keys())
        extra = list(actual - allowed)

        if extra:
            self.session.query(Config).filter(Config.tid == self.tid, Config.var_name.in_(extra)).delete(synchronize_session='fetch')

        missing = list(allowed - actual)
        for key in missing:
            self.session.add(Config({'tid': self.tid, 'var_name': key, 'value': get_default(ConfigDescriptor[key].default)}))
Пример #2
0
def initialize_config(session, tid, mode):
    variables = {}

    # Initialization valid for any tenant
    for name, desc in ConfigDescriptor.items():
        variables[name] = get_default(desc.default)

    if tid != 1:
        # Initialization valid for secondary tenants
        variables['mode'] = mode

    if mode == u'whistleblowing.it':
        root_tenant_node = ConfigFactory(session, 1).serialize('node')
        for name in inherit_from_root_tenant:
            variables[name] = root_tenant_node[name]

    for name, value in variables.items():
        session.add(Config({'tid': tid, 'var_name': name, 'value': value}))
Пример #3
0
    def clean_and_add(self):
        actual = set([
            c[0] for c in self.session.query(Config.var_name).filter(
                Config.tid == self.tid)
        ])
        allowed = set(ConfigDescriptor.keys())
        extra = list(actual - allowed)

        if extra:
            self.session.query(Config).filter(
                Config.tid == self.tid,
                Config.var_name.in_(extra)).delete(synchronize_session='fetch')

        missing = list(allowed - actual)
        for key in missing:
            self.session.add(
                Config(self.tid, key, ConfigDescriptor[key].default))

        return len(missing), len(extra)
Пример #4
0
def initialize_config(session, tid, mode):
    variables = {}

    # Initialization valid for any tenant
    for name, desc in ConfigDescriptor.items():
        variables[name] = get_default(desc.default)

    variables['creation_date'] = int(time.time())

    if tid != 1:
        # Initialization valid for secondary tenants
        variables['mode'] = mode

    if mode == u'whistleblowing.it':
        root_tenant_node = ConfigFactory(session, 1).serialize('node')
        for name in inherit_from_root_tenant:
            variables[name] = root_tenant_node[name]

    for name, value in variables.items():
        session.add(Config({'tid': tid, 'var_name': name, 'value': value}))
Пример #5
0
def fix_tenant_config(session, tid):
    '''
    The function add new defined variables and remove variables not anymore defined
    '''
    actual = set([
        c[0] for c in session.query(Config.var_name).filter(Config.tid == tid)
    ])
    allowed = set(ConfigDescriptor.keys())
    extra = list(actual - allowed)

    if extra:
        session.query(Config).filter(
            Config.tid == tid,
            Config.var_name.in_(extra)).delete(synchronize_session='fetch')

    missing = list(allowed - actual)
    for key in missing:
        session.add(
            Config(tid, key, get_default(ConfigDescriptor[key].default)))

    return len(missing), len(extra)
Пример #6
0
    def update_defaults(self):
        actual = set([
            c[0] for c in self.session.query(Config.var_name).filter(
                Config.tid == self.tid)
        ])
        allowed = set(ConfigDescriptor.keys())
        extra = list(actual - allowed)

        if extra:
            self.session.query(Config).filter(
                Config.tid == self.tid,
                Config.var_name.in_(extra)).delete(synchronize_session='fetch')

        missing = list(allowed - actual)
        for key in missing:
            self.session.add(
                Config({
                    'tid': self.tid,
                    'var_name': key,
                    'value': get_default(ConfigDescriptor[key].default)
                }))
Пример #7
0
def initialize_config(session, tid, mode):
    variables = {}

    # Initialization valid for any tenant
    for name, desc in ConfigDescriptor.items():
        variables[name] = get_default(desc.default)

    if tid != 1:
        # Initialization valid for secondary tenants
        variables['mode'] = mode

    if mode == 'default':
        variables['onionservice'], variables[
            'tor_onion_key'] = generate_onion_service_v3()

    if mode == 'whistleblowing.it':
        root_tenant_node = ConfigFactory(session, 1).serialize('node')
        for name in inherit_from_root_tenant:
            variables[name] = root_tenant_node[name]

    for name, value in variables.items():
        session.add(Config({'tid': tid, 'var_name': name, 'value': value}))
Пример #8
0
def update_defaults(session, tid, appdata):
    session.query(Config).filter(
        Config.tid == tid, not_(Config.var_name.in_(
            ConfigDescriptor.keys()))).delete(synchronize_session='fetch')

    ConfigFactory(session, tid, 'node').clean_and_add()
    ConfigFactory(session, tid, 'notification').clean_and_add()

    # Set the system version to the current aligned cfg
    ConfigFactory(session, tid, 'node').set_val(u'version', __version__)

    langs = EnabledLanguage.list(session, tid)

    session.query(ConfigL10N).filter(
        ConfigL10N.tid == tid,
        not_(
            ConfigL10N.var_name.in_(NodeL10NFactory.keys +
                                    NotificationL10NFactory.keys))).delete(
                                        synchronize_session='fetch')

    NodeL10NFactory(session, tid).update_defaults(langs, appdata['node'])
    NotificationL10NFactory(session,
                            tid).update_defaults(langs, appdata['templates'])