def initconfig()

in gridengine/src/gridengine/cli.py [0:0]


def initconfig(writer: TextIO = sys.stdout, **config: Dict) -> None:
    #     autoscale_config = {
    #   :cluster_name => node[:cyclecloud][:cluster][:name],
    #   :username => node[:cyclecloud][:config][:username],
    #   :password => node[:cyclecloud][:config][:password],
    #   :url => node[:cyclecloud][:config][:web_server],
    #   :lock_file => "#{node[:cyclecloud][:bootstrap]}/scalelib.lock",
    #   :logging => {:config_file => "#{node[:cyclecloud][:bootstrap]}/gridengine/logging.conf"},
    #   :default_resources => [ { :select => {}, :name => "slots", :value => "node.vcpu_count"} ],
    #   :gridengine => {:hostgroups
    #                   :relevant_complexes =>relevant_complexes,
    #                   :idle_timeout => node[:gridengine][:idle_timeout]}
    # }
    if "gridengine" not in config:
        config["gridengine"] = {}

    for pe_name in config.pop("disable_pgs_for_pe", []):
        config["gridengine"]["pes"] = pes = config["gridengine"].get("pes") or {}
        pes[pe_name] = pe_config = pes.get(pe_name) or {}
        pe_config["requires_placement_groups"] = False

    for expr in config.pop("hostgroup_constraints", []):
        hg_name, constraint_expr = expr.split("=", 1)
        hg_name = hg_name.strip()
        constraint_expr = constraint_expr.strip()
        _parse_contraint(constraint_expr)
        constraint_json = json.loads(constraint_expr)

        if "hostgroups" not in config["gridengine"]:
            config["gridengine"]["hostgroups"] = {}
        if hg_name not in config["gridengine"]["hostgroups"]:
            config["gridengine"]["hostgroups"][hg_name] = {}
        config["gridengine"]["hostgroups"][hg_name]["constraints"] = constraint_json

    for expr_json in config.pop("default_hostgroups", []):

        if "default_hostgroups" not in config["gridengine"]:
            config["gridengine"]["default_hostgroups"] = []
        if set(list(expr_json.keys())) != set(["select", "hostgroups"]):
            print(
                "Invalid default_hostgroups argument - requires select and hostgroups to be defined.",
                file=sys.stderr,
            )
            sys.exit(1)
        config["gridengine"]["default_hostgroups"].append(expr_json)

    for key in list(config.keys()):

        if "__" in key:
            parent, child = key.split("__")
            if parent not in config:
                config[parent] = {}
            config[parent][child] = config.pop(key)
    json.dump(config, writer, indent=2)