コード例 #1
0
def save_global_settings(vars_, site_specific=False, custom_site_path=None):
    per_domain: Dict[str, Dict[Any, Any]] = {}
    # TODO: Uee _get_global_config_var_names() from domain class?
    for config_variable_class in config_variable_registry.values():
        config_variable = config_variable_class()
        domain = config_variable.domain()
        varname = config_variable.ident()
        if varname not in vars_:
            continue
        per_domain.setdefault(domain().ident(), {})[varname] = vars_[varname]

    # Some settings are handed over from the central site but are not registered in the
    # configuration domains since the user must not change it directly.
    for varname in [
            "wato_enabled",
            "userdb_automatic_sync",
            "user_login",
    ]:
        if varname in vars_:
            per_domain.setdefault(ConfigDomainGUI.ident(),
                                  {})[varname] = vars_[varname]

    for domain in ABCConfigDomain.enabled_domains():
        domain_config = per_domain.get(domain().ident(), {})
        if site_specific:
            domain().save_site_globals(domain_config,
                                       custom_site_path=custom_site_path)
        else:
            domain().save(domain_config, custom_site_path=custom_site_path)
コード例 #2
0
ファイル: test_watolib.py プロジェクト: dtuecks/checkmk
def test_registered_configvars_types():
    for var_class in config_variable_registry.values():
        var = var_class()
        assert issubclass(var.group(), ConfigVariableGroup)
        assert issubclass(var.domain(), ABCConfigDomain)
        assert isinstance(var.ident(), str)
        assert isinstance(var.valuespec(), ValueSpec)
コード例 #3
0
def save_global_settings(vars_, site_specific=False, custom_site_path=None):
    per_domain = {}  # type: Dict[str, Dict[Any, Any]]
    # TODO: Uee _get_global_config_var_names() from domain class?
    for config_variable_class in config_variable_registry.values():
        config_variable = config_variable_class()
        domain = config_variable.domain()
        varname = config_variable.ident()
        if varname not in vars_:
            continue
        per_domain.setdefault(domain.ident, {})[varname] = vars_[varname]

    # The global setting wato_enabled is not registered in the configuration domains
    # since the user must not change it directly. It is set by D-WATO on slave sites.
    if "wato_enabled" in vars_:
        per_domain.setdefault(ConfigDomainGUI.ident,
                              {})["wato_enabled"] = vars_["wato_enabled"]
    if "userdb_automatic_sync" in vars_:
        per_domain.setdefault(
            ConfigDomainGUI.ident,
            {})["userdb_automatic_sync"] = vars_["userdb_automatic_sync"]

    for domain in ABCConfigDomain.enabled_domains():
        domain_config = per_domain.get(domain.ident, {})
        if site_specific:
            domain().save_site_globals(domain_config,
                                       custom_site_path=custom_site_path)
        else:
            domain().save(domain_config, custom_site_path=custom_site_path)