From 5776883b3a621e0f6abdd462b0ee825dedb531a6 Mon Sep 17 00:00:00 2001 From: "yaohua.wu" Date: Mon, 21 Oct 2024 11:13:28 +0800 Subject: [PATCH] [compute]: validate root volume size with diskoffering Resolves: ZSTAC-70551 Change-Id: I696e696e6f6b6467616f616c70707a7477626473 (cherry picked from commit 006e58d52f9867b36a560f0d9b277bb91901765d) --- .../java/org/zstack/compute/vm/VmInstanceManagerImpl.java | 6 +++++- .../main/java/org/zstack/compute/vm/VmQuotaOperator.java | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/compute/src/main/java/org/zstack/compute/vm/VmInstanceManagerImpl.java b/compute/src/main/java/org/zstack/compute/vm/VmInstanceManagerImpl.java index b99e894dfa6..807a8a84e40 100755 --- a/compute/src/main/java/org/zstack/compute/vm/VmInstanceManagerImpl.java +++ b/compute/src/main/java/org/zstack/compute/vm/VmInstanceManagerImpl.java @@ -2317,7 +2317,11 @@ public List reportQuota() { diskOfferingUuids.addAll(msg.getDataDiskOfferingUuids()); } if (imgType == ImageConstant.ImageMediaType.RootVolumeTemplate) { - allVolumeSizeAsked += imgSize; + if (msg.getRootDiskOfferingUuid() != null) { + diskOfferingUuids.add(msg.getRootDiskOfferingUuid()); + } else { + allVolumeSizeAsked += imgSize; + } } else if (imgType == ImageConstant.ImageMediaType.ISO) { if (msg.getRootDiskOfferingUuid() != null) { diskOfferingUuids.add(msg.getRootDiskOfferingUuid()); diff --git a/compute/src/main/java/org/zstack/compute/vm/VmQuotaOperator.java b/compute/src/main/java/org/zstack/compute/vm/VmQuotaOperator.java index d4f6676a70c..52e10ec6cfd 100644 --- a/compute/src/main/java/org/zstack/compute/vm/VmQuotaOperator.java +++ b/compute/src/main/java/org/zstack/compute/vm/VmQuotaOperator.java @@ -523,7 +523,11 @@ private void check(APICreateVmInstanceMsg msg, Map pair diskOfferingUuids.addAll(msg.getDataDiskOfferingUuids()); } if (imgType == ImageConstant.ImageMediaType.RootVolumeTemplate) { - allVolumeSizeAsked += imgSize; + if (msg.getRootDiskOfferingUuid() != null) { + diskOfferingUuids.add(msg.getRootDiskOfferingUuid()); + } else { + allVolumeSizeAsked += imgSize; + } } else if (imgType == ImageConstant.ImageMediaType.ISO) { if (msg.getRootDiskOfferingUuid() != null) { diskOfferingUuids.add(msg.getRootDiskOfferingUuid());