in src/slurm_plugin/capacity_block_manager.py [0:0]
def _cleanup_leftover_slurm_reservations(self):
"""Find list of slurm reservations created by ParallelCluster but not part of the configured CBs."""
try:
for slurm_reservation in get_slurm_reservations_info():
if CapacityBlock.is_capacity_block_slurm_reservation(slurm_reservation.name):
capacity_block_id = CapacityBlock.capacity_block_id_from_slurm_reservation_name(
slurm_reservation.name
)
if capacity_block_id not in self._capacity_blocks.keys():
logger.info(
(
"Found leftover slurm reservation %s for nodes %s. "
"Related Capacity Block %s is no longer in the cluster configuration. "
"Deleting the slurm reservation."
),
slurm_reservation.name,
slurm_reservation.nodes,
capacity_block_id,
)
try:
delete_slurm_reservation(name=slurm_reservation.name)
except SlurmCommandError as e:
logger.error("Unable to delete slurm reservation %s. %s", slurm_reservation.name, e)
else:
logger.debug(
(
"Slurm reservation %s is managed by ParallelCluster "
"and related to an existing Capacity Block. Skipping it."
),
slurm_reservation.name,
)
else:
logger.debug(
"Slurm reservation %s is not managed by ParallelCluster. Skipping it.", slurm_reservation.name
)
except SlurmCommandError as e:
logger.error("Unable to retrieve list of existing Slurm reservations. %s", e)