in src/common/schedulers/slurm_commands.py [0:0]
def get_partitions_info(command_timeout=DEFAULT_GET_INFO_COMMAND_TIMEOUT) -> List[SlurmPartition]:
"""
Retrieve slurm partition info from scontrol.
This function considers only partitions managed by ParallelCluster.
"""
partitions = list(PartitionNodelistMapping.instance().get_partitions())
grep_filter = _get_partition_grep_filter(partitions)
show_partition_info_command = (
f"{SCONTROL} show partitions -o {grep_filter} " + '| grep -oP "^PartitionName=\\K(\\S+)| State=\\K(\\S+)"'
)
# It's safe to use the function affected by B604 since the command is fully built in this code
partition_info_str = check_command_output(
show_partition_info_command, timeout=command_timeout, shell=True # nosec B604
)
partitions_info = _parse_partition_name_and_state(partition_info_str)
return [
SlurmPartition(
partition_name,
_get_all_partition_nodes(partition_name),
partition_state,
)
for partition_name, partition_state in partitions_info
]