Liron Aravot has uploaded a new change for review.

Change subject: core: WIP: AddStoragePoolWithStorages-prevent domains from stay 
LOCKED
......................................................................

core: WIP: AddStoragePoolWithStorages-prevent domains from stay LOCKED

AddStoragePoolWithStoragesCommand execute ActivateStorageDomain command
for each domain in the pool, failure in the domain activation causes the domain 
to
stay in status locked forver.

Change-Id: Ie8b9fc0d324eac2146d4f7d60d48e4dd5eb5d9e0
Bug-Url: https://bugzilla.redhat.com/845955
Signed-off-by: Liron Aravot <lara...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddStoragePoolWithStoragesCommand.java
1 file changed, 15 insertions(+), 15 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/36/8536/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddStoragePoolWithStoragesCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddStoragePoolWithStoragesCommand.java
index 6a7da6f..403afa6 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddStoragePoolWithStoragesCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddStoragePoolWithStoragesCommand.java
@@ -182,6 +182,7 @@
                         if (staticDomainChanged) {
                             getStorageDomainStaticDAO().update(staticDomain);
                         }
+                        
getCompensationContext().snapshotEntityStatus(storageDomain, 
storageDomain.getstatus());
                         storageDomain.setstatus(StorageDomainStatus.Locked);
                         if (existingInDb) {
                             DbFacade.getInstance()
@@ -218,6 +219,20 @@
 
     private boolean ActivateStorageDomains() {
         boolean returnValue = true;
+        TransactionSupport.executeInNewTransaction(new 
TransactionMethod<Void>() {
+            @Override
+            public Void runInTransaction() {
+                for (final Guid storageDomainId : 
getParameters().getStorages()) {
+                DbFacade.getInstance()
+                        .getStoragePoolIsoMapDao()
+                        .updateStatus(
+                                new StoragePoolIsoMapId(storageDomainId, 
getStoragePool().getId()),
+                                StorageDomainStatus.InActive);
+                }
+                return null;
+            }
+        });
+
         for (final Guid storageDomainId : getParameters().getStorages()) {
             StorageDomainPoolParametersBase activateParameters = new 
StorageDomainPoolParametersBase(storageDomainId,
                     getStoragePool().getId());
@@ -225,21 +240,6 @@
             
activateParameters.setTransactionScopeOption(TransactionScopeOption.RequiresNew);
             returnValue = Backend.getInstance()
                     .runInternalAction(VdcActionType.ActivateStorageDomain, 
activateParameters).getSucceeded();
-
-            // if activate domain failed then set domain status to inactive
-            if (!returnValue) {
-                TransactionSupport.executeInNewTransaction(new 
TransactionMethod<Void>() {
-                    @Override
-                    public Void runInTransaction() {
-                        DbFacade.getInstance()
-                                .getStoragePoolIsoMapDao()
-                                .updateStatus(
-                                        new 
StoragePoolIsoMapId(storageDomainId, getStoragePool().getId()),
-                                        StorageDomainStatus.InActive);
-                        return null;
-                    }
-                });
-            }
         }
 
         return returnValue;


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

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

Reply via email to