Daniel Erez has uploaded a new change for review.

Change subject: core: handle negative flow for extend cinder disk
......................................................................

core: handle negative flow for extend cinder disk

* Added ErrorExtending key to mapCinderVolumeStatusToImageStatus
  (needed for setting disk status to Illegal on extend error).
* Set disk status in 'onFailed' method
* Set TaskGroupSuccess to false to ensure endWithFailure is called.

Change-Id: I5457f8d81b283f208902036865d487e1130536e4
Bug-Url: https://bugzilla.redhat.com/1185826
Signed-off-by: Daniel Erez <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/CinderBroker.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ExtendCinderDiskCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ExtendCinderDiskCommandCallback.java
3 files changed, 8 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/58/39858/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/CinderBroker.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/CinderBroker.java
index 506887d..52deb77 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/CinderBroker.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/CinderBroker.java
@@ -157,6 +157,7 @@
                 return ImageStatus.LOCKED;
             case Error:
             case ErrorDeleting:
+            case ErrorExtending:
                 return ImageStatus.ILLEGAL;
             default:
                 return null;
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ExtendCinderDiskCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ExtendCinderDiskCommand.java
index 90f423f..777bcfe 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ExtendCinderDiskCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ExtendCinderDiskCommand.java
@@ -69,4 +69,8 @@
         return cinderDisk.getStorageIds().get(0);
     }
 
+    @Override
+    protected void endWithFailure() {
+        setSucceeded(true);
+    }
 }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ExtendCinderDiskCommandCallback.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ExtendCinderDiskCommandCallback.java
index c007697..e8b0044 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ExtendCinderDiskCommandCallback.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ExtendCinderDiskCommandCallback.java
@@ -1,5 +1,6 @@
 package org.ovirt.engine.core.bll.storage;
 
+import org.ovirt.engine.core.bll.ImagesHandler;
 import org.ovirt.engine.core.bll.tasks.CommandCoordinatorUtil;
 import org.ovirt.engine.core.common.AuditLogType;
 import org.ovirt.engine.core.common.action.UpdateVmDiskParameters;
@@ -36,9 +37,11 @@
     public void onFailed(Guid cmdId, List<Guid> childCmdIds) {
         super.onFailed(cmdId, childCmdIds);
 
+        ImagesHandler.updateImageStatus(getDiskId(), ImageStatus.ILLEGAL);
         log.error("Failed extending disk. ID: {}", getDiskId());
         updateAuditLog(AuditLogType.USER_EXTEND_DISK_SIZE_FAILURE, 
getCommand().getNewDiskSizeInGB());
 
+        getCommand().getParameters().setTaskGroupSuccess(false);
         getCommand().endAction();
         CommandCoordinatorUtil.removeAllCommandsInHierarchy(cmdId);
     }


-- 
To view, visit https://gerrit.ovirt.org/39858
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I5457f8d81b283f208902036865d487e1130536e4
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