Daniel Erez has uploaded a new change for review. Change subject: core: storage quota support for register vm and template ......................................................................
core: storage quota support for register vm and template If specified in parameters, update disks map in ImportVmFromConfiguration and ImportVmTemplateFromConfiguration commands (quota id should be available for each disk in map). Change-Id: I51abe80cb5ca412dc2e780e336a2b8f9acf1ccb4 Signed-off-by: Daniel Erez <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromConfigurationCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateFromConfigurationCommand.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ImportVmParameters.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ImportVmTemplateParameters.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java 5 files changed, 36 insertions(+), 2 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/28/28728/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromConfigurationCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromConfigurationCommand.java index 83af2a1..377b036 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromConfigurationCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromConfigurationCommand.java @@ -78,6 +78,11 @@ getParameters().setVm(vmFromConfiguration); getParameters().setDestDomainId(ovfEntityData.getStorageDomainId()); getParameters().setSourceDomainId(ovfEntityData.getStorageDomainId()); + + // For quota, update disks when required + if (getParameters().getDiskMap() != null) { + vmFromConfiguration.setDiskMap(getParameters().getDiskMap()); + } } catch (OvfReaderException e) { log.errorFormat("failed to parse a given ovf configuration: \n" + ovfEntityData.getOvfData(), e); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateFromConfigurationCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateFromConfigurationCommand.java index 611d846..1e9a5fa 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateFromConfigurationCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateFromConfigurationCommand.java @@ -62,6 +62,13 @@ getParameters().setVmTemplate(vmTemplateFromConfiguration); getParameters().setDestDomainId(ovfEntityData.getStorageDomainId()); getParameters().setSourceDomainId(ovfEntityData.getStorageDomainId()); + + // For quota, update disks when required + if (getParameters().getDiskTemplateMap() != null) { + ArrayList imageList = new ArrayList<>(getParameters().getDiskTemplateMap().values()); + vmTemplateFromConfiguration.setDiskList(imageList); + ensureDomainMap(imageList, getParameters().getDestDomainId()); + } } catch (OvfReaderException e) { log.errorFormat("failed to parse a given ovf configuration: \n" + ovfEntityData.getOvfData(), e); } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ImportVmParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ImportVmParameters.java index b2470c7..eb3c843 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ImportVmParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ImportVmParameters.java @@ -1,9 +1,11 @@ package org.ovirt.engine.core.common.action; import java.io.Serializable; +import java.util.Map; import javax.validation.Valid; +import org.ovirt.engine.core.common.businessentities.Disk; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.compat.Guid; @@ -15,6 +17,7 @@ private Guid sourceDomainId; private Guid destDomainId; private Guid vdsGroupId; + private Map<Guid, Disk> diskMap; public ImportVmParameters() { sourceDomainId = Guid.Empty; @@ -64,4 +67,12 @@ this.sourceDomainId = sourceDomainId; } + public Map<Guid, Disk> getDiskMap() { + return diskMap; + } + + public void setDiskMap(Map<Guid, Disk> diskMap) { + this.diskMap = diskMap; + } + } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ImportVmTemplateParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ImportVmTemplateParameters.java index 08a038d..b5f89a5 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ImportVmTemplateParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ImportVmTemplateParameters.java @@ -1,6 +1,7 @@ package org.ovirt.engine.core.common.action; import java.io.Serializable; +import java.util.HashMap; import java.util.List; import javax.validation.Valid; @@ -75,6 +76,16 @@ privateVdsGroupId = value; } + private HashMap<Guid, DiskImage> diskTemplateMap; + + public HashMap<Guid, DiskImage> getDiskTemplateMap() { + return diskTemplateMap; + } + + public void setDiskTemplateMap(HashMap<Guid, DiskImage> diskTemplateMap) { + this.diskTemplateMap = diskTemplateMap; + } + public ImportVmTemplateParameters() { privateSourceDomainId = Guid.Empty; privateDestDomainId = Guid.Empty; diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java index 0906e30..d46f9ef 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java @@ -52,9 +52,9 @@ ActivateDeactivateVmNic(42, QuotaDependency.NONE), AddVmFromSnapshot(52, ActionGroup.CREATE_VM, QuotaDependency.BOTH), CloneVm(53, ActionGroup.CREATE_VM, QuotaDependency.BOTH), - ImportVmFromConfiguration(43, ActionGroup.IMPORT_EXPORT_VM, QuotaDependency.NONE), + ImportVmFromConfiguration(43, ActionGroup.IMPORT_EXPORT_VM, QuotaDependency.STORAGE), UpdateVmVersion(44, QuotaDependency.NONE), - ImportVmTemplateFromConfiguration(45, ActionGroup.IMPORT_EXPORT_VM, QuotaDependency.NONE), + ImportVmTemplateFromConfiguration(45, ActionGroup.IMPORT_EXPORT_VM, QuotaDependency.STORAGE), ProcessDownVm(45, QuotaDependency.NONE), // VdsCommands ProvisionVds(100, ActionGroup.CREATE_HOST, QuotaDependency.NONE), -- To view, visit http://gerrit.ovirt.org/28728 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I51abe80cb5ca412dc2e780e336a2b8f9acf1ccb4 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Daniel Erez <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
