def _cleanup_leftover_slurm_reservations()

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)