Omer Frenkel has uploaded a new change for review.

Change subject: core: update vms on update of instance type
......................................................................

core: update vms on update of instance type

when instance type values are updated, we need to update also all the
vms that are using this instance type.

Change-Id: Ic229a677bdd61a7f522548d9abf68476fbe219e7
Signed-off-by: Omer Frenkel <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmTemplateCommand.java
1 file changed, 19 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/00/31300/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmTemplateCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmTemplateCommand.java
index faf16cf..71b1c25 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmTemplateCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmTemplateCommand.java
@@ -16,8 +16,11 @@
 import org.ovirt.engine.core.common.AuditLogType;
 import org.ovirt.engine.core.common.VdcObjectType;
 import org.ovirt.engine.core.common.action.UpdateVmTemplateParameters;
+import org.ovirt.engine.core.common.action.VdcActionType;
+import org.ovirt.engine.core.common.action.VmManagementParametersBase;
 import org.ovirt.engine.core.common.businessentities.ActionGroup;
 import org.ovirt.engine.core.common.businessentities.DiskImageBase;
+import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.core.common.businessentities.VmEntityType;
 import org.ovirt.engine.core.common.businessentities.VmTemplate;
 import org.ovirt.engine.core.common.businessentities.VmTemplateStatus;
@@ -196,9 +199,25 @@
         updateWatchdog(getParameters().getVmTemplateData().getId());
         updateRngDevice(getParameters().getVmTemplateData().getId());
         checkTrustedService();
+        updateVmsOfInstanceType();
         setSucceeded(true);
     }
 
+    /**
+     * only in case of InstanceType update, update all vms that are bound to it
+     */
+    private void updateVmsOfInstanceType() {
+        if (getVmTemplate().getTemplateType() != VmEntityType.INSTANCE_TYPE) {
+            return;
+        }
+
+        // get vms from db
+        List<VM> vmsToUpdate = 
getVmDAO().getVmsListByInstanceType(getVmTemplateId());
+        for (VM vm : vmsToUpdate) {
+            runInternalAction(VdcActionType.UpdateVm, new 
VmManagementParametersBase(vm));
+        }
+    }
+
     private void checkTrustedService() {
         if (getVdsGroup() == null) {
             return;


-- 
To view, visit http://gerrit.ovirt.org/31300
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic229a677bdd61a7f522548d9abf68476fbe219e7
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Omer Frenkel <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to