Source code for idmtools_platform_slurm.platform_operations.suite_operations
"""
Here we implement the SlurmPlatform suite operations.
Copyright 2025, Gates Foundation. All rights reserved.
"""
from dataclasses import dataclass
from typing import TYPE_CHECKING
from logging import getLogger
from idmtools.core import ItemType
from idmtools_platform_file.platform_operations.suite_operations import FilePlatformSuiteOperations
if TYPE_CHECKING:
from idmtools_platform_slurm.slurm_platform import SlurmPlatform
logger = getLogger(__name__)
user_logger = getLogger('user')
[docs]@dataclass
class SlurmPlatformSuiteOperations(FilePlatformSuiteOperations):
"""
Provides Suite operation to the SlurmPlatform.
"""
platform: 'SlurmPlatform' # noqa F821
[docs] def platform_cancel(self, suite_id: str, force: bool = False) -> None:
"""
Cancel platform suite's slurm job.
Args:
suite_id: suite id
force: bool, True/False
Returns:
None
"""
suite = self.platform.get_item(suite_id, ItemType.SUITE, force=True, raw=False)
logger.debug(f"cancel slurm job for suite: {suite_id}...")
for exp in suite.experiments:
self.platform._experiments.platform_cancel(exp.id, force)