From 4adee8b38c4464b9d070aaac4886096b3c05a427 Mon Sep 17 00:00:00 2001 From: Ryan Hamel Date: Mon, 21 Oct 2024 15:46:42 -0400 Subject: [PATCH] leave a comment about 0 capacity unused partitions --- slurm/src/slurmcc/cli.py | 14 +++++++------- slurm/src/slurmcc/partition.py | 7 +++++-- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/slurm/src/slurmcc/cli.py b/slurm/src/slurmcc/cli.py index 636fcec..117ac3c 100644 --- a/slurm/src/slurmcc/cli.py +++ b/slurm/src/slurmcc/cli.py @@ -803,18 +803,18 @@ def _partitions( threads = 1 def_mem_per_cpu = memory // cpus - + comment_out = "" + if max_count <= 0: + writer.write(f"# The following partition has no capacity! {partition.name} - {partition.nodearray} - {partition.machine_type} \n") + comment_out = "# " + writer.write( - "PartitionName={} Nodes={} Default={} DefMemPerCPU={} MaxTime=INFINITE State=UP\n".format( - partition.name, partition.node_list, default_yn, def_mem_per_cpu - ) + f"{comment_out}PartitionName={partition.name} Nodes={partition.node_list} Default={default_yn} DefMemPerCPU={def_mem_per_cpu} MaxTime=INFINITE State=UP\n" ) state = "CLOUD" if autoscale else "FUTURE" writer.write( - "Nodename={} Feature=cloud STATE={} CPUs={} ThreadsPerCore={} RealMemory={}".format( - node_list, state, cpus, threads, memory - ) + f"{comment_out}Nodename={node_list} Feature=cloud STATE={state} CPUs={cpus} ThreadsPerCore={threads} RealMemory={memory}" ) if partition.gpu_count: diff --git a/slurm/src/slurmcc/partition.py b/slurm/src/slurmcc/partition.py index d748a51..9b51611 100644 --- a/slurm/src/slurmcc/partition.py +++ b/slurm/src/slurmcc/partition.py @@ -104,6 +104,9 @@ def _slurm_nodes(cls) -> List[Dict[str, str]]: @property def node_list(self) -> str: if not self.dynamic_config: + static_nodes = self._static_all_nodes() + if not static_nodes: + return "" return slutil.to_hostlist(self._static_all_nodes()) # with dynamic nodes, we only look at those defined in the partition if not self.__dynamic_node_list_cache: @@ -349,10 +352,10 @@ def fetch_partitions( if limits.max_count <= 0: logging.info( - "Bucket has a max_count <= 0, defined for machinetype=='%s'. Skipping", + "Bucket has a max_count <= 0, defined for machinetype=='%s'.", machine_type, ) - continue + # keep this partition around, but we will ignore it when generating later. max_scaleset_size = buckets[0].max_placement_group_size