Ejemplo n.º 1
0
def save_group_information(all_groups, custom_default_config_dir=None):
    # Split groups data into Check_MK/Multisite parts
    check_mk_groups = {}
    multisite_groups = {}

    if custom_default_config_dir:
        check_mk_config_dir = "%s/conf.d/wato" % custom_default_config_dir
        multisite_config_dir = "%s/multisite.d/wato" % custom_default_config_dir
    else:
        check_mk_config_dir = "%s/conf.d/wato" % cmk.utils.paths.default_config_dir
        multisite_config_dir = "%s/multisite.d/wato" % cmk.utils.paths.default_config_dir

    for what, groups in all_groups.items():
        check_mk_groups[what] = {}
        for gid, group in groups.items():
            check_mk_groups[what][gid] = group['alias']

            for attr, value in group.items():
                if attr != 'alias':
                    multisite_groups.setdefault(what, {})
                    multisite_groups[what].setdefault(gid, {})
                    multisite_groups[what][gid][attr] = value

    # Save Check_MK world related parts
    store.makedirs(check_mk_config_dir)
    output = wato_fileheader()
    for what in ["host", "service", "contact"]:
        if check_mk_groups.get(what):
            output += "if type(define_%sgroups) != dict:\n    define_%sgroups = {}\n" % (
                what, what)
            output += "define_%sgroups.update(%s)\n\n" % (
                what, format_config_value(check_mk_groups[what]))
    store.save_file("%s/groups.mk" % check_mk_config_dir, output)

    # Users with passwords for Multisite
    store.makedirs(multisite_config_dir)
    output = wato_fileheader()
    for what in ["host", "service", "contact"]:
        if multisite_groups.get(what):
            output += "multisite_%sgroups = \\\n%s\n\n" % (
                what, format_config_value(multisite_groups[what]))
    store.save_file("%s/groups.mk" % multisite_config_dir, output)

    _clear_group_information_request_cache()
Ejemplo n.º 2
0
def _save_gui_groups(all_groups: AllGroupSpecs, config_dir: str) -> None:
    multisite_groups: Dict[GroupType, Dict[GroupName, GroupSpec]] = {}

    for group_type, groups in all_groups.items():
        for gid, group in groups.items():
            for attr, value in group.items():
                if attr != "alias":  # Saved in cmk_base
                    multisite_groups.setdefault(group_type, {})
                    multisite_groups[group_type].setdefault(gid, {})
                    multisite_groups[group_type][gid][attr] = value

    store.makedirs(config_dir)
    output = wato_fileheader()
    for what in get_args(GroupType):
        if multisite_groups.get(what):
            output += "multisite_%sgroups = \\\n%s\n\n" % (
                what,
                format_config_value(multisite_groups[what]),
            )
    store.save_text_to_file("%s/groups.mk" % config_dir, output)
Ejemplo n.º 3
0
def _save_cmk_base_groups(all_groups: AllGroupSpecs, config_dir: str) -> None:
    check_mk_groups: Dict[GroupType, Dict[GroupName, str]] = {}
    for group_type, groups in all_groups.items():
        check_mk_groups[group_type] = {}
        for gid, group in groups.items():
            check_mk_groups[group_type][gid] = group["alias"]

    # Save Checkmk world related parts
    store.makedirs(config_dir)
    output = wato_fileheader()
    for group_type in get_args(GroupType):
        if check_mk_groups.get(group_type):
            output += "if type(define_%sgroups) != dict:\n    define_%sgroups = {}\n" % (
                group_type,
                group_type,
            )
            output += "define_%sgroups.update(%s)\n\n" % (
                group_type,
                format_config_value(check_mk_groups[group_type]),
            )
    store.save_text_to_file("%s/groups.mk" % config_dir, output)