diff --git a/src/utils/components/DiskModal/utils/helpers.ts b/src/utils/components/DiskModal/utils/helpers.ts index d66308592..2e90507d0 100644 --- a/src/utils/components/DiskModal/utils/helpers.ts +++ b/src/utils/components/DiskModal/utils/helpers.ts @@ -13,7 +13,12 @@ import { V1Volume, } from '@kubevirt-ui/kubevirt-api/kubevirt'; import { t } from '@kubevirt-utils/hooks/useKubevirtTranslation'; -import { buildOwnerReference, getAnnotation, getName } from '@kubevirt-utils/resources/shared'; +import { + buildOwnerReference, + getAnnotation, + getName, + getNamespace, +} from '@kubevirt-utils/resources/shared'; import { ANNOTATIONS } from '@kubevirt-utils/resources/template'; import { getBootDisk, getDataVolumeTemplates, getVolumes } from '@kubevirt-utils/resources/vm'; import { getOperatingSystem } from '@kubevirt-utils/resources/vm/utils/operation-system/operationSystem'; @@ -105,9 +110,11 @@ const getDataVolumeHotplugPromise = ( }, }; - return k8sCreate({ data: resultDataVolume, model: DataVolumeModel }).then(() => - addPersistentVolume(vm, bodyRequestAddVolume), - ) as Promise; + return k8sCreate({ + data: resultDataVolume, + model: DataVolumeModel, + ns: getNamespace(resultDataVolume), + }).then(() => addPersistentVolume(vm, bodyRequestAddVolume)) as Promise; }; const getPersistentVolumeClaimHotplugPromise = ( @@ -143,11 +150,17 @@ export const hotplugPromise = (vmObj: V1VirtualMachine, diskState: V1DiskFormSta return getPersistentVolumeClaimHotplugPromise(vmObj, pvcName, diskState.disk); } - diskState.dataVolumeTemplate.metadata.ownerReferences = [ - buildOwnerReference(vmObj, { blockOwnerDeletion: false }), - ]; + const dataVolume = produce(diskState.dataVolumeTemplate, (draftDataVolumeTemplate) => { + draftDataVolumeTemplate.metadata.ownerReferences = [ + buildOwnerReference(vmObj, { blockOwnerDeletion: false }), + ]; + + draftDataVolumeTemplate.metadata.namespace = getNamespace(vmObj); + draftDataVolumeTemplate.kind = DataVolumeModel.kind; + draftDataVolumeTemplate.apiVersion = `${DataVolumeModel.apiGroup}/${DataVolumeModel.apiVersion}`; + }); - return getDataVolumeHotplugPromise(vmObj, diskState.dataVolumeTemplate, diskState.disk); + return getDataVolumeHotplugPromise(vmObj, dataVolume, diskState.disk); }; export const produceVMDisks = ( diff --git a/src/utils/resources/vm/utils/disk/rowData.ts b/src/utils/resources/vm/utils/disk/rowData.ts index 822e5ae85..a6d2bb20e 100644 --- a/src/utils/resources/vm/utils/disk/rowData.ts +++ b/src/utils/resources/vm/utils/disk/rowData.ts @@ -43,12 +43,13 @@ export const getDiskRowDataLayout = ( storageClass: NO_DATA_DASH, }; - if (device?.dataVolumeTemplate) { + const pvcSize = device?.pvc?.spec?.resources?.requests?.storage; + const dataVolumeCustomSize = + device?.dataVolumeTemplate?.spec?.storage?.resources?.requests?.storage; + + if (device?.dataVolumeTemplate && (dataVolumeCustomSize || pvcSize)) { diskRowDataObject.size = humanizeBinaryBytes( - convertToBaseValue( - device?.dataVolumeTemplate?.spec?.storage?.resources?.requests?.storage || - device?.pvc?.spec?.resources?.requests?.storage, - ), + convertToBaseValue(dataVolumeCustomSize || pvcSize), ).string; return diskRowDataObject; @@ -57,9 +58,7 @@ export const getDiskRowDataLayout = ( if (device?.pvc) { diskRowDataObject.source = device?.pvc?.metadata?.name; diskRowDataObject.sourceStatus = device?.pvc?.status?.phase; - diskRowDataObject.size = humanizeBinaryBytes( - convertToBaseValue(device?.pvc?.spec?.resources?.requests?.storage), - ).string; + diskRowDataObject.size = humanizeBinaryBytes(convertToBaseValue(pvcSize)).string; diskRowDataObject.storageClass = device?.pvc?.spec?.storageClassName; }