Roy Golan has uploaded a new change for review.

Change subject: core: Update Vm dynamic using VmManager
......................................................................

core: Update Vm dynamic using VmManager

update the VM dynamic using the VmManager. Its should be quicker and
much less blocking as this is done in a per-vm lock supplied by the
VmManager which means no contention on the Host lock.

also this would help to manage a cached instance of the VM in the
comming future

Change-Id: I65375243d4260b40a0bed1bcccbc48ef83f68a99
Signed-off-by: Roy Golan <rgo...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/HibernateVmCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommandBase.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/StopVmCommandBase.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmHandler.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/UpdateVmDynamicDataVDSCommandParameters.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/UpdateVmDynamicDataVDSCommand.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java
7 files changed, 12 insertions(+), 25 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/39/35839/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/HibernateVmCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/HibernateVmCommand.java
index 71f0a01..4b9a9c8 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/HibernateVmCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/HibernateVmCommand.java
@@ -115,8 +115,7 @@
                             getVm().setStatus(VMStatus.PreparingForHibernate);
 
                             runVdsCommand(VDSCommandType.UpdateVmDynamicData,
-                                            new 
UpdateVmDynamicDataVDSCommandParameters(getVdsId(),
-                                                    getVm().getDynamicData()));
+                                            new 
UpdateVmDynamicDataVDSCommandParameters(getVm().getDynamicData()));
                             getCompensationContext().stateChanged();
                             return null;
                         }
@@ -194,8 +193,7 @@
             // end of temp code
 
             runVdsCommand(VDSCommandType.UpdateVmDynamicData,
-                            new 
UpdateVmDynamicDataVDSCommandParameters(getVdsId(),
-                                    getVm().getDynamicData()));
+                            new 
UpdateVmDynamicDataVDSCommandParameters(getVm().getDynamicData()));
 
             getParameters().setVdsmTaskIds(new 
ArrayList<Guid>(getReturnValue().getVdsmTaskIdList()));
 
@@ -353,8 +351,7 @@
 
                 runVdsCommand(
                                 VDSCommandType.UpdateVmDynamicData,
-                                new UpdateVmDynamicDataVDSCommandParameters(
-                                        new 
Guid(getVm().getRunOnVds().toString()), getVm().getDynamicData()));
+                                new 
UpdateVmDynamicDataVDSCommandParameters(getVm().getDynamicData()));
 
                 setSucceeded(true);
             }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommandBase.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommandBase.java
index f98e0de..e5ae147 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommandBase.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommandBase.java
@@ -197,7 +197,7 @@
                 Backend.getInstance()
                 .getResourceManager()
                 .RunVdsCommand(VDSCommandType.UpdateVmDynamicData,
-                        new 
UpdateVmDynamicDataVDSCommandParameters(getCurrentVdsId(), 
getVm().getDynamicData()));
+                        new 
UpdateVmDynamicDataVDSCommandParameters(getVm().getDynamicData()));
             }
         }
         finally {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/StopVmCommandBase.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/StopVmCommandBase.java
index 105e51e..c2123ab0 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/StopVmCommandBase.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/StopVmCommandBase.java
@@ -188,8 +188,7 @@
             Backend.getInstance()
                     .getResourceManager()
                     .RunVdsCommand(VDSCommandType.UpdateVmDynamicData,
-                            new 
UpdateVmDynamicDataVDSCommandParameters(getVm().getRunOnVds(),
-                                    vmDynamicData));
+                            new 
UpdateVmDynamicDataVDSCommandParameters(vmDynamicData));
         } else {
             getVmDynamicDao().update(vmDynamicData);
         }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmHandler.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmHandler.java
index 897a490..7445357 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmHandler.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmHandler.java
@@ -760,7 +760,7 @@
         Backend.getInstance()
                .getResourceManager()
                .RunVdsCommand(VDSCommandType.UpdateVmDynamicData,
-                       new UpdateVmDynamicDataVDSCommandParameters(vdsId, 
vmDynamic));
+                       new UpdateVmDynamicDataVDSCommandParameters(vmDynamic));
     }
 
     public static void updateDefaultTimeZone(VmBase vmBase) {
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/UpdateVmDynamicDataVDSCommandParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/UpdateVmDynamicDataVDSCommandParameters.java
index 77ba8a7..8f8420f 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/UpdateVmDynamicDataVDSCommandParameters.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/UpdateVmDynamicDataVDSCommandParameters.java
@@ -3,7 +3,7 @@
 import org.ovirt.engine.core.common.businessentities.VmDynamic;
 import org.ovirt.engine.core.compat.Guid;
 
-public class UpdateVmDynamicDataVDSCommandParameters extends 
VdsIdVDSCommandParametersBase {
+public class UpdateVmDynamicDataVDSCommandParameters extends 
VdsAndVmIDVDSParametersBase{
     private VmDynamic privateVmDynamic;
 
     public VmDynamic getVmDynamic() {
@@ -14,8 +14,7 @@
         privateVmDynamic = value;
     }
 
-    public UpdateVmDynamicDataVDSCommandParameters(Guid vdsId, VmDynamic 
vmDynamic) {
-        super(vdsId);
+    public UpdateVmDynamicDataVDSCommandParameters(VmDynamic vmDynamic) {
         setVmDynamic(vmDynamic);
     }
 
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/UpdateVmDynamicDataVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/UpdateVmDynamicDataVDSCommand.java
index 7ac32ea..2d42e59 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/UpdateVmDynamicDataVDSCommand.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/UpdateVmDynamicDataVDSCommand.java
@@ -2,17 +2,13 @@
 
 import 
org.ovirt.engine.core.common.vdscommands.UpdateVmDynamicDataVDSCommandParameters;
 
-public class UpdateVmDynamicDataVDSCommand<P extends 
UpdateVmDynamicDataVDSCommandParameters> extends VdsIdVDSCommandBase<P> {
+public class UpdateVmDynamicDataVDSCommand<P extends 
UpdateVmDynamicDataVDSCommandParameters> extends ManagingVmCommand<P> {
     public UpdateVmDynamicDataVDSCommand(P parameters) {
         super(parameters);
     }
 
-    @Override
-    protected void executeVdsIdCommand() {
-        if (_vdsManager != null) {
-            _vdsManager.updateVmDynamic(getParameters().getVmDynamic());
-        } else {
-            getVDSReturnValue().setSucceeded(false);
-        }
+    @Override protected void executeVmCommand() {
+        vmManager.update(getParameters().getVmDynamic());
+        getVDSReturnValue().setSucceeded(true);
     }
 }
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java
index 49871bc..a01d925 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java
@@ -180,10 +180,6 @@
                 heartbeat);
     }
 
-    public void updateVmDynamic(VmDynamic vmDynamic) {
-        DbFacade.getInstance().getVmDynamicDao().update(vmDynamic);
-    }
-
     @OnTimerMethodAnnotation("onTimer")
     public void onTimer() {
         if 
(LockManagerFactory.getLockManager().acquireLock(monitoringLock).getFirst()) {


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I65375243d4260b40a0bed1bcccbc48ef83f68a99
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Roy Golan <rgo...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to