def _get_partition_nodes()

in src/common/schedulers/slurm_commands.py [0:0]


def _get_partition_nodes(partition_name, command_timeout=DEFAULT_GET_INFO_COMMAND_TIMEOUT):
    """Get up nodes in a parition by querying sinfo, and filtering out power_down nodes."""
    all_nodes = _get_slurm_nodes(partition_name=partition_name)
    power_down_nodes = _get_slurm_nodes(partition_name=partition_name, states="power_down,powering_down")
    down_nodes = _get_slurm_nodes(partition_name=partition_name, states="down")
    nodes = []
    for nodename in all_nodes:
        # Always try to maintain the following nodes:
        # Static nodes
        # Any node in down
        # Any node not in power_saving mode
        if "-st-" in nodename or nodename in down_nodes or (nodename not in power_down_nodes and nodename != "n/a"):
            nodes.append(nodename)
    return ",".join(nodes)