in src/common/schedulers/slurm_commands.py [0:0]
def _batch_node_info(nodenames, nodeaddrs, nodehostnames, batch_size):
"""Group nodename, nodeaddrs, nodehostnames into batches."""
if type(nodenames) is str:
# Only split on , if there is ] before
# For ex. "node-[1,3,4-5],node-[20,30]" should split into ["node-[1,3,4-5]","node-[20,30]"]
nodenames = re.split("(?<=]),", nodenames)
nodename_batch = _batch_attribute(nodenames, batch_size)
nodeaddrs_batch = [None] * len(nodename_batch)
nodehostnames_batch = [None] * len(nodename_batch)
if nodeaddrs:
try:
nodeaddrs_batch = _batch_attribute(nodeaddrs, batch_size, expected_length=len(nodenames))
except ValueError:
log.error("Nodename %s and NodeAddr %s contain different number of entries", nodenames, nodeaddrs)
raise
if nodehostnames:
try:
nodehostnames_batch = _batch_attribute(nodehostnames, batch_size, expected_length=len(nodenames))
except ValueError:
log.error("Nodename %s and NodeHostname %s contain different number of entries", nodenames, nodehostnames)
raise
return zip(nodename_batch, nodeaddrs_batch, nodehostnames_batch)