def preprocess_node_mgr()

in azure-slurm/slurmcc/cli.py [0:0]


    def preprocess_node_mgr(self, config: Dict, node_mgr: NodeManager) -> None:
        def default_dampened_memory(node: Node) -> Memory:
            return min(node.memory - Memory.value_of("1g"), node.memory * 0.95)

        node_mgr.add_default_resource(
            selection={},
            resource_name="slurm_memory",
            default_value=default_dampened_memory,
        )

        for b in node_mgr.get_buckets():
            if "nodearrays" not in config:
                config["nodearrays"] = {}
            if b.nodearray not in config["nodearrays"]:
                config["nodearrays"][b.nodearray] = {}

            if "generated_placement_group_buffer" in config["nodearrays"][b.nodearray]:
                continue

            is_hpc = (
                str(
                    b.software_configuration.get("slurm", {}).get("hpc") or "false"
                ).lower()
                == "true"
            )
            if is_hpc:
                buffer = 1
                max_pgs = 1
            else:
                buffer = 0
                max_pgs = 0
            config["nodearrays"][b.nodearray][
                "generated_placement_group_buffer"
            ] = buffer
            config["nodearrays"][b.nodearray][
                "max_placement_groups"
            ] = max_pgs
        super().preprocess_node_mgr(config, node_mgr)