diff --git a/releasenotes/notes/feat-volume-deletion-on-instance-delete-9a83da6ca4fd2107.yaml b/releasenotes/notes/feat-volume-deletion-on-instance-delete-9a83da6ca4fd2107.yaml new file mode 100644 index 00000000..df4d524c --- /dev/null +++ b/releasenotes/notes/feat-volume-deletion-on-instance-delete-9a83da6ca4fd2107.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + Allow deletion of Volume on Instance Delete setting + + * Allows the user to check whether the selected Volume should be deleted along with the instance when the user selected the Bootable Volume Start Source via Instance creation module. diff --git a/src/locales/en.json b/src/locales/en.json index 5a0dedab..6810a63a 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -744,6 +744,7 @@ "Delete Volume Backup": "Delete Volume Backup", "Delete Volume Snapshot": "Delete Volume Snapshot", "Delete Volume Type": "Delete Volume Type", + "Delete Volume on Instance Delete": "Delete Volume on Instance Delete", "Delete Zone": "Delete Zone", "Delete metadata": "Delete metadata", "Deleted": "Deleted", diff --git a/src/locales/ko-kr.json b/src/locales/ko-kr.json index f6149edb..ca4a239e 100644 --- a/src/locales/ko-kr.json +++ b/src/locales/ko-kr.json @@ -744,6 +744,7 @@ "Delete Volume Backup": "Volume Backup 삭제", "Delete Volume Snapshot": "Volume Snapshot 삭제", "Delete Volume Type": "Volume Type 삭제", + "Delete Volume on Instance Delete": "인스턴스 삭제 시 볼륨 삭제", "Delete Zone": "Zone 삭제", "Delete metadata": "Metadata 삭제", "Deleted": "삭제됨", diff --git a/src/locales/zh-hans.json b/src/locales/zh-hans.json index 3e5e6236..5ccc5793 100644 --- a/src/locales/zh-hans.json +++ b/src/locales/zh-hans.json @@ -744,6 +744,7 @@ "Delete Volume Backup": "删除云硬盘备份", "Delete Volume Snapshot": "删除云硬盘快照", "Delete Volume Type": "删除云硬盘类型", + "Delete Volume on Instance Delete": "在实例删除时删除卷", "Delete Zone": "删除区域", "Delete metadata": "删除元数据", "Deleted": "已删除", diff --git a/src/pages/compute/containers/Instance/actions/StepCreate/BaseStep/index.jsx b/src/pages/compute/containers/Instance/actions/StepCreate/BaseStep/index.jsx index cbc06e40..0ff9eb0c 100644 --- a/src/pages/compute/containers/Instance/actions/StepCreate/BaseStep/index.jsx +++ b/src/pages/compute/containers/Instance/actions/StepCreate/BaseStep/index.jsx @@ -802,6 +802,12 @@ export class BaseStep extends Base { onChange: this.onSystemDiskChange, dependencies: ['flavor', 'image', 'instanceSnapshot', 'bootFromVolume'], }, + { + name: 'deleteVolumeInstance', + label: 'Delete Volume on Instance Delete', + type: 'check', + hidden: !this.sourceTypeIsVolume, + }, { name: 'instanceSnapshotDisk', label: t('System Disk'), diff --git a/src/pages/compute/containers/Instance/actions/StepCreate/ConfirmStep/index.jsx b/src/pages/compute/containers/Instance/actions/StepCreate/ConfirmStep/index.jsx index ec5924fc..a45c85b0 100644 --- a/src/pages/compute/containers/Instance/actions/StepCreate/ConfirmStep/index.jsx +++ b/src/pages/compute/containers/Instance/actions/StepCreate/ConfirmStep/index.jsx @@ -50,6 +50,11 @@ export class ConfirmStep extends Base { return `${volume_type} ${size}GiB`; } + getDeleteVolumeInstance() { + const { deleteVolumeInstance } = this.props?.context; + return deleteVolumeInstance ? t('Yes') : t('No'); + } + getSystemDisk() { if (!this.enableCinder) return null; const { context } = this.props; @@ -218,6 +223,11 @@ export class ConfirmStep extends Base { label: t('System Disk'), value: this.getSystemDisk(), }, + { + label: t('Delete Volume on Instance Delete'), + value: this.getDeleteVolumeInstance(), + key: 'deleteVolume', + }, { label: t('Available Zone'), value: context.availableZone.label, @@ -245,6 +255,9 @@ export class ConfirmStep extends Base { (it) => ![t('System Disk'), t('Data Disk')].includes(it.label) ); } + if (context.source.value.toUpperCase() !== 'BOOTABLEVOLUME') { + baseItems = baseItems.filter((it) => it?.key !== 'deleteVolume'); + } return [ { name: 'confirm-count', diff --git a/src/pages/compute/containers/Instance/actions/StepCreate/index.jsx b/src/pages/compute/containers/Instance/actions/StepCreate/index.jsx index ad84dedb..4fa4c512 100644 --- a/src/pages/compute/containers/Instance/actions/StepCreate/index.jsx +++ b/src/pages/compute/containers/Instance/actions/StepCreate/index.jsx @@ -579,6 +579,7 @@ export class StepCreate extends StepAction { source, systemDisk, bootFromVolume = true, + deleteVolumeInstance, } = values; const { value: sourceValue } = source; const imageRef = @@ -619,6 +620,7 @@ export class StepCreate extends StepAction { uuid: bootableVolume.selectedRowKeys[0], source_type: 'volume', destination_type: 'volume', + delete_on_termination: deleteVolumeInstance, }; } const dataVolumes = dataDisk