Federico Simoncelli has uploaded a new change for review.

Change subject: core: move pool changes inside event queue
......................................................................

core: move pool changes inside event queue

Change-Id: I6b3f12432fe04d7e69ecd951e6c6281096bf9686
Signed-off-by: Federico Simoncelli <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ActivateStorageDomainCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DetachStorageDomainFromPoolCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageDomainCommandBase.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/eventqueue/EventType.java
5 files changed, 65 insertions(+), 50 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/99/28499/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ActivateStorageDomainCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ActivateStorageDomainCommand.java
index 02746de..d61a93c 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ActivateStorageDomainCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ActivateStorageDomainCommand.java
@@ -71,21 +71,15 @@
         return returnValue;
     }
 
-    @Override
-    protected void executeCommand() {
-        final StoragePoolIsoMap map =
-                DbFacade.getInstance()
-                        .getStoragePoolIsoMapDao()
-                        .get(new 
StoragePoolIsoMapId(getParameters().getStorageDomainId(),
-                                getParameters().getStoragePoolId()));
+    private void activateDomainTask() {
+        final StoragePoolIsoMap map = DbFacade.getInstance()
+                .getStoragePoolIsoMapDao().get(new 
StoragePoolIsoMapId(getParameters().getStorageDomainId(),
+                        getParameters().getStoragePoolId()));
         // Master domain must not go through the Activating status.
         changeStorageDomainStatusInTransaction(map,
                 (getStorageDomain().getStorageDomainType() == 
StorageDomainType.Master) ?
                     StorageDomainStatus.Locked : 
StorageDomainStatus.Activating);
-        freeLock();
 
-        log.infoFormat("ActivateStorage Domain. Before Connect all hosts to 
pool. Time:{0}", new Date());
-        connectAllHostsToPool();
         runVdsCommand(VDSCommandType.ActivateStorageDomain,
                 new 
ActivateStorageDomainVDSCommandParameters(getStoragePool().getId(), 
getStorageDomain().getId()));
         log.infoFormat("ActivateStorage Domain. After Connect all hosts to 
pool. Time:{0}", new Date());
@@ -101,10 +95,30 @@
                 return null;
             }
         });
-        refreshAllVdssInPool();
 
-        log.infoFormat("ActivateStorage Domain. After change storage pool 
status in vds. Time:{0}",
-                new Date());
+        refreshAllVdssInPool();
+    }
+
+    @Override
+    protected void executeCommand() {
+        log.infoFormat("ActivateStorage Domain. Before Connect all hosts to 
pool. Time:{0}", new Date());
+        connectAllHostsToPool();
+
+        ((EventQueue) EjbUtils.findBean(BeanType.EVENTQUEUE_MANAGER, 
BeanProxyType.LOCAL)).submitEventSync(
+                new Event(getParameters().getStoragePoolId(),
+                        getParameters().getStorageDomainId(), null, 
EventType.POOLOPERATION, ""),
+                new Callable<EventResult>() {
+                    @Override
+                    public EventResult call() {
+                        activateDomainTask();
+                        return null;
+                    }
+                }
+        );
+
+        freeLock();
+
+        log.infoFormat("ActivateStorage Domain. After change storage pool 
status in vds. Time:{0}", new Date());
         if (getStorageDomain().getStorageDomainType() == 
StorageDomainType.ISO) {
             
IsoDomainListSyncronizer.getInstance().refresheIsoDomainWhenActivateDomain(getStorageDomain().getId(),
                     getStoragePool().getId());
@@ -114,17 +128,7 @@
 
     private void refreshAllVdssInPool() {
         final List<Guid> vdsIdsToSetNonOperational = new ArrayList<Guid>();
-
-        ((EventQueue) EjbUtils.findBean(BeanType.EVENTQUEUE_MANAGER, 
BeanProxyType.LOCAL)).submitEventSync(
-                new Event(getParameters().getStoragePoolId(), 
getParameters().getStorageDomainId(), null, EventType.POOLREFRESH, ""),
-                new Callable<EventResult>() {
-                    @Override
-                    public EventResult call() {
-                        runSynchronizeOperation(new 
RefreshPoolSingleAsyncOperationFactory(), vdsIdsToSetNonOperational);
-                        return null;
-                    }
-                }
-        );
+        runSynchronizeOperation(new RefreshPoolSingleAsyncOperationFactory(), 
vdsIdsToSetNonOperational);
 
         for (Guid vdsId : vdsIdsToSetNonOperational) {
             SetNonOperationalVdsParameters tempVar =
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainCommand.java
index d5d9233..644765e 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainCommand.java
@@ -239,7 +239,7 @@
 
         if (!getParameters().isInactive()) {
             ((EventQueue) EjbUtils.findBean(BeanType.EVENTQUEUE_MANAGER, 
BeanProxyType.LOCAL)).submitEventSync(
-                    new Event(getParameters().getStoragePoolId(), 
getParameters().getStorageDomainId(), null, EventType.POOLREFRESH, ""),
+                    new Event(getParameters().getStoragePoolId(), 
getParameters().getStorageDomainId(), null, EventType.POOLOPERATION, ""),
                     new Callable<EventResult>() {
                         @Override
                         public EventResult call() {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DetachStorageDomainFromPoolCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DetachStorageDomainFromPoolCommand.java
index 54582b9..0c471ea 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DetachStorageDomainFromPoolCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DetachStorageDomainFromPoolCommand.java
@@ -8,14 +8,23 @@
 import org.ovirt.engine.core.common.businessentities.StoragePoolIsoMap;
 import org.ovirt.engine.core.common.businessentities.StoragePoolIsoMapId;
 import org.ovirt.engine.core.common.errors.VdcBllMessages;
+import org.ovirt.engine.core.common.eventqueue.Event;
+import org.ovirt.engine.core.common.eventqueue.EventQueue;
+import org.ovirt.engine.core.common.eventqueue.EventResult;
+import org.ovirt.engine.core.common.eventqueue.EventType;
 import 
org.ovirt.engine.core.common.vdscommands.DetachStorageDomainVDSCommandParameters;
 import org.ovirt.engine.core.common.vdscommands.IrsBaseVDSCommandParameters;
 import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
 import org.ovirt.engine.core.common.vdscommands.VDSReturnValue;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
+import org.ovirt.engine.core.utils.ejb.BeanProxyType;
+import org.ovirt.engine.core.utils.ejb.BeanType;
+import org.ovirt.engine.core.utils.ejb.EjbUtils;
 import org.ovirt.engine.core.utils.transaction.TransactionMethod;
 import org.ovirt.engine.core.utils.transaction.TransactionSupport;
+
+import java.util.concurrent.Callable;
 
 @NonTransactiveCommandAttribute(forceCompensation=true)
 public class DetachStorageDomainFromPoolCommand<T extends 
DetachStorageDomainFromPoolParameters> extends
@@ -35,21 +44,18 @@
         super(commandId);
     }
 
-    @Override
-    protected void executeCommand() {
+    private VDSReturnValue activateDomainTask() {
         log.info("Start detach storage domain");
         
changeStorageDomainStatusInTransaction(getStorageDomain().getStoragePoolIsoMapData(),
                 StorageDomainStatus.Detaching);
-        log.info(" Detach storage domain: before connect");
-        connectAllHostsToPool();
 
         log.info(" Detach storage domain: after connect");
-
         VDSReturnValue returnValue = runVdsCommand(
                 VDSCommandType.DetachStorageDomain,
                 new 
DetachStorageDomainVDSCommandParameters(getParameters().getStoragePoolId(),
                         getParameters().getStorageDomainId(), Guid.Empty, 
getStoragePool()
                                 .getmaster_domain_version()));
+
         log.info(" Detach storage domain: after detach in vds");
         disconnectAllHostsInPool();
 
@@ -68,13 +74,34 @@
                 return null;
             }
         });
-        if (returnValue.getSucceeded() && 
getStorageDomain().getStorageDomainType() == StorageDomainType.ISO) {
+
+        return returnValue;
+    }
+
+    @Override
+    protected void executeCommand() {
+        log.info(" Detach storage domain: before connect");
+        connectAllHostsToPool();
+
+        EventResult eventResult = ((EventQueue) 
EjbUtils.findBean(BeanType.EVENTQUEUE_MANAGER, 
BeanProxyType.LOCAL)).submitEventSync(
+                new Event(getParameters().getStoragePoolId(), 
getParameters().getStorageDomainId(), null, EventType.POOLOPERATION, ""),
+                new Callable<EventResult>() {
+                    @Override
+                    public EventResult call() {
+                        VDSReturnValue returnValue = activateDomainTask();
+                        return new EventResult(returnValue.getSucceeded(), 
EventType.POOLOPERATION);
+                    }
+                }
+        );
+
+        if (eventResult.isSuccess() && 
getStorageDomain().getStorageDomainType() == StorageDomainType.ISO) {
             // reset iso for this pool in vdsBroker cache
             runVdsCommand(VDSCommandType.ResetISOPath,
                     new 
IrsBaseVDSCommandParameters(getParameters().getStoragePoolId()));
         }
+
         log.info("End detach storage domain");
-        setSucceeded(returnValue.getSucceeded());
+        setSucceeded(eventResult.isSuccess());
     }
 
     @Override
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageDomainCommandBase.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageDomainCommandBase.java
index a20c9f8..187a09e 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageDomainCommandBase.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageDomainCommandBase.java
@@ -7,7 +7,6 @@
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-import java.util.concurrent.Callable;
 
 import org.apache.commons.lang.StringUtils;
 import org.ovirt.engine.core.bll.context.CompensationContext;
@@ -29,10 +28,6 @@
 import org.ovirt.engine.core.common.config.Config;
 import org.ovirt.engine.core.common.config.ConfigValues;
 import org.ovirt.engine.core.common.errors.VdcBllMessages;
-import org.ovirt.engine.core.common.eventqueue.Event;
-import org.ovirt.engine.core.common.eventqueue.EventQueue;
-import org.ovirt.engine.core.common.eventqueue.EventResult;
-import org.ovirt.engine.core.common.eventqueue.EventType;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
 import org.ovirt.engine.core.dao.BaseDiskDao;
@@ -44,9 +39,6 @@
 import org.ovirt.engine.core.dao.SnapshotDao;
 import org.ovirt.engine.core.dao.StorageDomainOvfInfoDao;
 import org.ovirt.engine.core.dao.StorageServerConnectionDAO;
-import org.ovirt.engine.core.utils.ejb.BeanProxyType;
-import org.ovirt.engine.core.utils.ejb.BeanType;
-import org.ovirt.engine.core.utils.ejb.EjbUtils;
 import org.ovirt.engine.core.utils.linq.LinqUtils;
 import org.ovirt.engine.core.utils.linq.Predicate;
 import org.ovirt.engine.core.utils.transaction.TransactionMethod;
@@ -324,15 +316,7 @@
     }
 
     protected void disconnectAllHostsInPool() {
-        ((EventQueue) EjbUtils.findBean(BeanType.EVENTQUEUE_MANAGER, 
BeanProxyType.LOCAL)).submitEventSync(
-                new Event(getParameters().getStoragePoolId(), 
getParameters().getStorageDomainId(), null, EventType.POOLREFRESH, ""),
-                new Callable<EventResult>() {
-                    @Override
-                    public EventResult call() {
-                        runSynchronizeOperation(new 
RefreshStoragePoolAndDisconnectAsyncOperationFactory());
-                        return null;
-                    }
-        });
+        runSynchronizeOperation(new 
RefreshStoragePoolAndDisconnectAsyncOperationFactory());
     }
 
     /**
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/eventqueue/EventType.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/eventqueue/EventType.java
index ec58c5c..9fe8e6e 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/eventqueue/EventType.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/eventqueue/EventType.java
@@ -9,5 +9,5 @@
     DOMAINMONITORING,
     VDSCLEARCACHE,
     VDSCONNECTTOPOOL,
-    POOLREFRESH;
+    POOLOPERATION;
 }


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

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