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

Reply via email to