Federico Simoncelli has uploaded a new change for review.

Change subject: core: decouple recovery and reconstruct master domain
......................................................................

core: decouple recovery and reconstruct master domain

Change-Id: I4c066b9ff4bebce899492fcc8b54bd6a2723b453
Signed-off-by: Federico Simoncelli <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RecoveryStoragePoolCommand.java
1 file changed, 18 insertions(+), 12 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/43/28443/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RecoveryStoragePoolCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RecoveryStoragePoolCommand.java
index eebf961..fbed3dd 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RecoveryStoragePoolCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RecoveryStoragePoolCommand.java
@@ -26,7 +26,9 @@
 import org.ovirt.engine.core.utils.ejb.EjbUtils;
 
 @NonTransactiveCommandAttribute
-public class RecoveryStoragePoolCommand extends 
ReconstructMasterDomainCommand<RecoveryStoragePoolParameters> {
+public class RecoveryStoragePoolCommand extends 
StorageDomainCommandBase<RecoveryStoragePoolParameters> {
+
+    private StorageDomain newMasterDomain;
 
     /**
      * Constructor for command creation when compensation is applied on startup
@@ -49,7 +51,7 @@
 
     @Override
     protected boolean canDoAction() {
-        boolean returnValue = checkStoragePool() && super.canDoAction();
+        boolean returnValue = checkStoragePool(); // FIXME: check 
ReconstructMasterDomain canDoAction?
 
         if (returnValue) {
             if (getStoragePool().getStatus() == 
StoragePoolStatus.Uninitialized) {
@@ -64,18 +66,22 @@
                         
VdcBllMessages.STORAGE_POOL_REINITIALIZE_WITH_MORE_THAN_ONE_DATA_DOMAIN.toString());
                 returnValue = false;
             } else {
-                StorageDomain domain = loadTargetedMasterDomain();
+                StorageDomain domain = getNewMasterDomain();
                 if (domain.getStorageDomainSharedStatus() != 
StorageDomainSharedStatus.Unattached) {
                     
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_STATUS_ILLEGAL);
                     returnValue = false;
                 }
             }
         }
-        return returnValue;
+
+        return returnValue && initializeVds();
     }
 
-    private StorageDomain loadTargetedMasterDomain() {
-        return getStorageDomainDAO().get(getNewMasterId(false));
+    private StorageDomain getNewMasterDomain() {
+        if (newMasterDomain == null) {
+            newMasterDomain = 
getStorageDomainDAO().get(getParameters().getNewMasterDomainId());
+        }
+        return newMasterDomain;
     }
 
     @Override
@@ -86,11 +92,11 @@
 
     @Override
     protected void executeCommand() {
-        if 
(StorageHelperDirector.getInstance().getItem(getNewMaster(false).getStorageType())
-                .connectStorageToDomainByVdsId(getNewMaster(false), 
getVds().getId())) {
+        if 
(StorageHelperDirector.getInstance().getItem(getNewMasterDomain().getStorageType())
+                .connectStorageToDomainByVdsId(getNewMasterDomain(), 
getVds().getId())) {
 
             ((EventQueue) EjbUtils.findBean(BeanType.EVENTQUEUE_MANAGER, 
BeanProxyType.LOCAL)).submitEventSync(new 
Event(getParameters().getStoragePoolId(),
-                    getNewMasterId(false),
+                    getParameters().getNewMasterDomainId(),
                     null,
                     EventType.RECOVERY, ""),
                     new Callable<EventResult>() {
@@ -98,8 +104,8 @@
                         public EventResult call() {
                             
getParameters().setStorageDomainId(getMasterDomainIdFromDb());
                             StoragePoolIsoMap domainPoolMap =
-                                    new StoragePoolIsoMap(getParameters()
-                                            .getNewMasterDomainId(),
+                                    new StoragePoolIsoMap(
+                                            
getParameters().getNewMasterDomainId(),
                                             getParameters().getStoragePoolId(),
                                             StorageDomainStatus.Active);
                             DbFacade.getInstance()
@@ -121,7 +127,7 @@
                             }
 
                             if (returnVal.getSucceeded()) {
-                                
updateStorageDomainFormat(loadTargetedMasterDomain());
+                                
updateStorageDomainFormat(getNewMasterDomain());
                             }
 
                             setSucceeded(returnVal.getSucceeded());


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

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

Reply via email to