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());