Ravi Nori has uploaded a new change for review.

Change subject: engine : ovirt-node enter installing status when the install 
fails
......................................................................

engine : ovirt-node enter installing status when the install fails

When ovirt-node installation fails because of missing iso file
the status of the host is left as Installing.

This patch adds VdsDynamic data to compensation context if can do action
of InstalllVdsCommand fails. The status is reverted back to the previous
status in compensation logic. The error messages are added to the
return values CanDoActionMessages so the message can be displayed
in cli

Change-Id: I2d74e946cb68d2b9dbc11fc5c6bed9f63ba35fe2
Bug-Url: https://bugzilla.redhat.com/947982
Signed-off-by: Ravi Nori <rn...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsCommand.java
1 file changed, 16 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/97/13997/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsCommand.java
index 5773fa8..7d58787 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsCommand.java
@@ -23,6 +23,7 @@
 import org.ovirt.engine.core.common.validation.group.UpdateEntity;
 import 
org.ovirt.engine.core.common.vdscommands.SetVdsStatusVDSCommandParameters;
 import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
+import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dal.VdcBllMessages;
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
 import org.ovirt.engine.core.utils.transaction.TransactionMethod;
@@ -36,6 +37,10 @@
 
     public UpdateVdsCommand(T parameters) {
         super(parameters);
+    }
+
+    protected UpdateVdsCommand(Guid commandId) {
+        super(commandId);
     }
 
     @Override
@@ -139,6 +144,9 @@
                 if (vdcReturnValueBase != null && 
!vdcReturnValueBase.getCanDoAction()) {
                     ArrayList<String> canDoActionMessages = 
vdcReturnValueBase.getCanDoActionMessages();
                     if (!canDoActionMessages.isEmpty()) {
+                        // add can do action messages to return value so error 
messages
+                        // are returned back to the client
+                        
getReturnValue().getCanDoActionMessages().addAll(canDoActionMessages);
                         log.errorFormat("Installation/upgrade of Host {0},{1} 
failed due to: {2} ",
                                 getVdsId(),
                                 getVdsName(),
@@ -147,7 +155,15 @@
                                         
.TranslateErrorText(canDoActionMessages),
                                         ","));
                     }
+                    // set can do action to false so can do action messages are
+                    // returned back to client
+                    getReturnValue().setCanDoAction(false);
                     setSucceeded(false);
+                    // add old vds dynamic data to compensation context. This
+                    // way the status will revert back to what it was before
+                    // starting installation process
+                    
getCompensationContext().snapshotEntityStatus(_oldVds.getDynamicData(), 
_oldVds.getDynamicData().getstatus());
+                    getCompensationContext().stateChanged();
                     return;
                 }
             }


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2d74e946cb68d2b9dbc11fc5c6bed9f63ba35fe2
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: engine_3.2
Gerrit-Owner: Ravi Nori <rn...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to