diff --git a/bibigrid/core/actions/create.py b/bibigrid/core/actions/create.py index 6bfc9bff..1258aab8 100644 --- a/bibigrid/core/actions/create.py +++ b/bibigrid/core/actions/create.py @@ -264,7 +264,10 @@ def create_server_volumes(self, provider, instance, name): self.log.info("Creating volumes ...") return_volumes = [] for i, volume in enumerate(instance.get("volumes", [])): - base_volume_name = f"{name}-{i}" + if volume.get("semiPermanent"): + base_volume_name = f"{name}-semiperm-{i}" + else: + base_volume_name = f"{name}-{i}" if volume.get('snapshot'): if not volume.get("name"): volume["name"] = base_volume_name diff --git a/bibigrid/core/actions/terminate.py b/bibigrid/core/actions/terminate.py index 4b041cd5..d9eb33d5 100644 --- a/bibigrid/core/actions/terminate.py +++ b/bibigrid/core/actions/terminate.py @@ -198,7 +198,7 @@ def delete_tmp_volumes(provider, cluster_id, log): log.info("Deleting tmp volumes on provider %s...", provider.cloud_specification['identifier']) volume_list = provider.list_volumes() cluster_volume_state = [] - volume_regex = re.compile(fr"^bibigrid-(master-{cluster_id}|(worker|vpngtw)-{cluster_id}-(\d+))$") + volume_regex = re.compile(fr"^bibigrid-(master-{cluster_id}|(worker|vpngtw)-{cluster_id}-(\d+))-(\d+|semiperm.*)$") for volume in volume_list: if volume_regex.match(volume["name"]): log.info("Trying to delete volume %s on cloud %s.", volume['name'], provider.cloud_specification[ diff --git a/resources/playbook/roles/bibigrid/files/slurm/create_server.py b/resources/playbook/roles/bibigrid/files/slurm/create_server.py index cd3182d6..efa71d2a 100644 --- a/resources/playbook/roles/bibigrid/files/slurm/create_server.py +++ b/resources/playbook/roles/bibigrid/files/slurm/create_server.py @@ -124,7 +124,10 @@ def create_server_volumes(connection, host_vars, name): with FileLock(f"{host_vars_path}.lock"): logging.info(f"Instance Volumes {volumes}") for i, volume in enumerate(volumes): - base_volume_name = f"{name}-{i}" + if volume.get("semiPermanent"): + base_volume_name = f"{name}-semiperm-{i}" + else: + base_volume_name = f"{name}-{i}" if volume.get('snapshot'): if not volume.get("name"): volume["name"] = base_volume_name