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)