Michael Kublin has uploaded a new change for review.

Change subject: engine: Host statuses - transaction
......................................................................

engine: Host statuses - transaction

The following patch will move a transaction inside SetVdsStatusCommand, and 
transaction
will run only on updates of db and not whole SetVdsStatusCommand.
Also marked some commands by @NonTransactiveCommandAttribute, like 
MaintenanceVdsCommand and
SetNonOperationalVdsCommand because of only db operation is inside of 
SetVdsStatusCommand

Change-Id: I710a0474798036860f130c8b2bcc2e7a557714ea
Signed-off-by: Michael Kublin <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ActivateVdsCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceVdsCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestartVdsCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SetNonOperationalVdsCommand.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/SetVdsStatusVDSCommand.java
5 files changed, 22 insertions(+), 28 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/69/12669/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ActivateVdsCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ActivateVdsCommand.java
index df46248..90d24ba 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ActivateVdsCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ActivateVdsCommand.java
@@ -65,15 +65,8 @@
                 vds.getStoragePoolName());
         try {
             ExecutionHandler.updateSpecificActionJobCompleted(vds.getId(), 
VdcActionType.MaintenanceVds, false);
-            TransactionSupport.executeInNewTransaction(new 
TransactionMethod<Void>() {
-
-                @Override
-                public Void runInTransaction() {
-                    runVdsCommand(VDSCommandType.SetVdsStatus,
-                            new SetVdsStatusVDSCommandParameters(getVdsId(), 
VDSStatus.Unassigned));
-                    return null;
-                }
-            });
+            runVdsCommand(VDSCommandType.SetVdsStatus,
+                    new SetVdsStatusVDSCommandParameters(getVdsId(), 
VDSStatus.Unassigned));
 
             setSucceeded(runVdsCommand(VDSCommandType.ActivateVds, new 
ActivateVdsVDSCommandParameters(getVdsId()))
                     .getSucceeded());
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceVdsCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceVdsCommand.java
index e3579ec..2ed6633 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceVdsCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceVdsCommand.java
@@ -42,6 +42,7 @@
 import org.ovirt.engine.core.utils.ejb.EjbUtils;
 import org.ovirt.engine.core.vdsbroker.irsbroker.IrsBrokerCommand;
 
+@NonTransactiveCommandAttribute
 public class MaintenanceVdsCommand<T extends MaintenanceVdsParameters> extends 
VdsCommand<T> {
 
     private static final long serialVersionUID = -7604781532599945079L;
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestartVdsCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestartVdsCommand.java
index 6804765..0f7b86d 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestartVdsCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestartVdsCommand.java
@@ -21,8 +21,6 @@
 import org.ovirt.engine.core.utils.log.Log;
 import org.ovirt.engine.core.utils.log.LogFactory;
 import org.ovirt.engine.core.dal.VdcBllMessages;
-import org.ovirt.engine.core.utils.transaction.TransactionMethod;
-import org.ovirt.engine.core.utils.transaction.TransactionSupport;
 
 public class RestartVdsCommand<T extends FenceVdsActionParameters> extends 
FenceVdsBaseCommand<T> {
     protected List<VM> getVmList() {
@@ -93,16 +91,7 @@
         super.rollback();
         final Guid vdsId = getVdsId();
         log.warnFormat("Restart host action failed, updating host {0} to {1}", 
vdsId, VDSStatus.NonResponsive.name());
-        TransactionSupport.executeInNewTransaction(new 
TransactionMethod<Void>() {
-            @Override
-            public Void runInTransaction() {
-                Backend.getInstance()
-                        .getResourceManager()
-                        .RunVdsCommand(VDSCommandType.SetVdsStatus,
-                                new SetVdsStatusVDSCommandParameters(vdsId, 
VDSStatus.NonResponsive));
-                return null;
-            }
-        });
+        runVdsCommand(VDSCommandType.SetVdsStatus, new 
SetVdsStatusVDSCommandParameters(vdsId, VDSStatus.NonResponsive));
     }
 
     @Override
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SetNonOperationalVdsCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SetNonOperationalVdsCommand.java
index a1917b6..32d25f6 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SetNonOperationalVdsCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SetNonOperationalVdsCommand.java
@@ -19,6 +19,7 @@
  * This command will try to migrate all the vds vms (if needed) and move the 
vds
  * to Non-Operational state
  */
+@NonTransactiveCommandAttribute
 public class SetNonOperationalVdsCommand<T extends 
SetNonOperationalVdsParameters> extends MaintenanceVdsCommand<T> {
 
     public SetNonOperationalVdsCommand(T parameters) {
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/SetVdsStatusVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/SetVdsStatusVDSCommand.java
index 7428997..cf98014 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/SetVdsStatusVDSCommand.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/SetVdsStatusVDSCommand.java
@@ -8,6 +8,8 @@
 import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
 import org.ovirt.engine.core.utils.log.Log;
 import org.ovirt.engine.core.utils.log.LogFactory;
+import org.ovirt.engine.core.utils.transaction.TransactionMethod;
+import org.ovirt.engine.core.utils.transaction.TransactionSupport;
 
 public class SetVdsStatusVDSCommand<P extends 
SetVdsStatusVDSCommandParameters> extends VdsIdVDSCommandBase<P> {
     public SetVdsStatusVDSCommand(P parameters) {
@@ -16,25 +18,33 @@
 
     @Override
     protected void ExecuteVdsIdCommand() {
-        SetVdsStatusVDSCommandParameters parameters = getParameters();
+        final SetVdsStatusVDSCommandParameters parameters = getParameters();
 
         if (_vdsManager != null) {
 
-            VDS vds = getVds();
+            final VDS vds = getVds();
             updateVdsFromParameters(parameters, vds);
-            _vdsManager.setStatus(parameters.getStatus(), vds);
-            _vdsManager.UpdateDynamicData(vds.getDynamicData());
-            _vdsManager.UpdateStatisticsData(vds.getStatisticsData());
+            TransactionSupport.executeInNewTransaction(new 
TransactionMethod<Void>() {
+
+                @Override
+                public Void runInTransaction() {
+                    _vdsManager.setStatus(parameters.getStatus(), vds);
+                    _vdsManager.UpdateDynamicData(vds.getDynamicData());
+                    _vdsManager.UpdateStatisticsData(vds.getStatisticsData());
+                    return null;
+                }
+            });
 
             if (vds.getSpmStatus() != VdsSpmStatus.None && 
parameters.getStatus() != VDSStatus.Up) {
-                log.infoFormat("VDS {0} is spm and moved from up calling 
ResetIrs.",vds.getName());
+                log.infoFormat("VDS {0} is spm and moved from up calling 
ResetIrs.", vds.getName());
                 // check if this host was spm and reset if do.
                 getVDSReturnValue().setSucceeded(
                         ResourceManager
                                 .getInstance()
                                 .runVdsCommand(
                                         VDSCommandType.ResetIrs,
-                                        new 
ResetIrsVDSCommandParameters(vds.getStoragePoolId(), 
vds.getId())).getSucceeded());
+                                        new 
ResetIrsVDSCommandParameters(vds.getStoragePoolId(), vds.getId()))
+                                .getSucceeded());
             }
         } else {
             getVDSReturnValue().setSucceeded(false);


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

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

Reply via email to