Alissa Bonas has uploaded a new change for review.

Change subject: core: retrieve correct domains status in updateConn
......................................................................

core: retrieve correct domains status in updateConn

Change-Id: I19221ef1f32dd7117e020cf6750034d64b4b47db
Signed-off-by: Alissa Bonas <abo...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/UpdateStorageServerConnectionCommand.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/UpdateStorageServerConnectionCommandTest.java
2 files changed, 44 insertions(+), 19 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/70/17070/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/UpdateStorageServerConnectionCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/UpdateStorageServerConnectionCommand.java
index 50782cf..36f3aa4 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/UpdateStorageServerConnectionCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/UpdateStorageServerConnectionCommand.java
@@ -2,6 +2,7 @@
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -16,8 +17,8 @@
 import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.StorageDomainStatus;
 import org.ovirt.engine.core.common.businessentities.StorageDomainType;
+import org.ovirt.engine.core.common.businessentities.StoragePool;
 import org.ovirt.engine.core.common.businessentities.StoragePoolIsoMap;
-import org.ovirt.engine.core.common.businessentities.StoragePoolIsoMapId;
 import org.ovirt.engine.core.common.businessentities.StorageServerConnections;
 import org.ovirt.engine.core.common.businessentities.StorageType;
 import org.ovirt.engine.core.common.businessentities.VM;
@@ -152,8 +153,9 @@
                 }
                 Guid storageDomainId = lun.getStorageDomainId();
                 if (storageDomainId != null) {
-                    StorageDomain domain = 
getStorageDomainDao().get(storageDomainId);
-                    if 
(!domain.getStatus().equals(StorageDomainStatus.Maintenance)) {
+                    StoragePool pool = 
getStoragePoolDAO().getAllForStorageDomain(storageDomainId).get(0);
+                    StorageDomain domain = 
getStorageDomainDao().getForStoragePool(storageDomainId,pool.getId());
+                    if 
(!(domain.getStatus().equals(StorageDomainStatus.Maintenance))) {
                         String domainName = domain.getStorageName();
                         problematicDomainNames.add(domainName);
                     } else {
@@ -195,7 +197,6 @@
     @Override
     protected void executeCommand() {
         boolean isDomainUpdateRequired = 
doDomainsUseConnection(getConnection());
-        StoragePoolIsoMap map = null;
         List<StorageDomain> updatedDomains = new ArrayList<>();
         boolean hasConnectStorageSucceeded = false;
         if (isDomainUpdateRequired) {
@@ -220,8 +221,9 @@
         
getStorageConnDao().update(getParameters().getStorageServerConnection());
         if (isDomainUpdateRequired) {
             for (StorageDomain domain : domains) {
-                map = getStoragePoolIsoMap(domain);
-                restoreStateAfterUpdate(map);
+                for (StoragePoolIsoMap map : getStoragePoolIsoMap(domain)) {
+                    restoreStateAfterUpdate(map);
+                }
             }
             if (hasConnectStorageSucceeded) {
                 disconnectFromStorage();
@@ -245,9 +247,8 @@
         return !getLuns().isEmpty();
     }
 
-    protected StoragePoolIsoMap getStoragePoolIsoMap(StorageDomain 
storageDomain) {
-        StoragePoolIsoMapId mapId = new 
StoragePoolIsoMapId(storageDomain.getId(), getParameters().getStoragePoolId());
-        return getStoragePoolIsoMapDao().get(mapId);
+    protected Collection<StoragePoolIsoMap> getStoragePoolIsoMap(StorageDomain 
storageDomain) {
+        return 
getStoragePoolIsoMapDao().getAllForStorage(storageDomain.getId());
     }
 
     protected void changeStorageDomainStatusInTransaction(final 
StorageDomainStatus status) {
@@ -255,12 +256,13 @@
             @Override
             public Void runInTransaction() {
                 for (StorageDomain domain : domains) {
-                    StoragePoolIsoMap map = getStoragePoolIsoMap(domain);
                     CompensationContext context = getCompensationContext();
-                      context.snapshotEntityStatus(map, map.getstatus());
-                    updateStatus(map, status);
+                        for (StoragePoolIsoMap map : 
getStoragePoolIsoMap(domain)) {
+                            context.snapshotEntityStatus(map, map.getstatus());
+                            updateStatus(map, status);
+                        }
+                    }
                     getCompensationContext().stateChanged();
-                }
                 return null;
             }
         });
@@ -293,7 +295,7 @@
     protected boolean connectToStorage() {
         StorageServerConnectionManagementVDSParameters 
newConnectionParametersForVdsm =
                 createParametersForVdsm(getParameters().getVdsId(),
-                        getParameters().getStoragePoolId(),
+                        Guid.Empty,
                         
getParameters().getStorageServerConnection().getstorage_type(),
                         getParameters().getStorageServerConnection());
         return runVdsCommand(VDSCommandType.ConnectStorageServer, 
newConnectionParametersForVdsm).getSucceeded();
@@ -302,7 +304,7 @@
     protected void disconnectFromStorage() {
         StorageServerConnectionManagementVDSParameters 
connectionParametersForVdsm =
                 createParametersForVdsm(getParameters().getVdsId(),
-                        getParameters().getStoragePoolId(),
+                        Guid.Empty,
                         getConnection().getstorage_type(),
                         getConnection());
         boolean isDisconnectSucceeded =
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/UpdateStorageServerConnectionCommandTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/UpdateStorageServerConnectionCommandTest.java
index f4deba1..56055a9 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/UpdateStorageServerConnectionCommandTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/UpdateStorageServerConnectionCommandTest.java
@@ -28,6 +28,7 @@
 import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.StorageDomainDynamic;
 import org.ovirt.engine.core.common.businessentities.StorageDomainStatus;
+import org.ovirt.engine.core.common.businessentities.StoragePool;
 import org.ovirt.engine.core.common.businessentities.StoragePoolIsoMap;
 import org.ovirt.engine.core.common.businessentities.StorageServerConnections;
 import org.ovirt.engine.core.common.businessentities.StorageType;
@@ -39,6 +40,7 @@
 import org.ovirt.engine.core.dao.LunDAO;
 import org.ovirt.engine.core.dao.StorageDomainDAO;
 import org.ovirt.engine.core.dao.StorageDomainDynamicDAO;
+import org.ovirt.engine.core.dao.StoragePoolDAO;
 import org.ovirt.engine.core.dao.StoragePoolIsoMapDAO;
 import org.ovirt.engine.core.dao.StorageServerConnectionDAO;
 import org.ovirt.engine.core.dao.VmDAO;
@@ -72,6 +74,9 @@
 
     @Mock
     private StorageDomainDAO storageDomainDAO;
+
+    @Mock
+    private StoragePoolDAO storagePoolDao;
 
     private StorageServerConnectionParametersBase parameters;
 
@@ -108,6 +113,7 @@
         doReturn(lunDAO).when(command).getLunDao();
         doReturn(vmDAO).when(command).getVmDAO();
         doReturn(storageDomainDAO).when(command).getStorageDomainDao();
+        doReturn(storagePoolDao).when(command).getStoragePoolDAO();
     }
 
     private StorageServerConnections createNFSConnection(String connection,
@@ -370,6 +376,11 @@
         when(vmDAO.getForDisk(diskId1)).thenReturn(vmsMap);
         parameters.setStorageServerConnection(iscsiConnection);
         
when(storageConnDao.get(iscsiConnection.getid())).thenReturn(iscsiConnection);
+        List<StoragePool> pools = new ArrayList<>();
+        StoragePool pool = new StoragePool();
+        pool.setId(Guid.newGuid());
+        pools.add(pool);
+        
when(storagePoolDao.getAllForStorageDomain(storageDomainId)).thenReturn(pools);
         doReturn(luns).when(command).getLuns();
         List<StorageDomain> domains = new ArrayList<>();
         StorageDomain domain1 = new StorageDomain();
@@ -378,7 +389,7 @@
         domain1.setId(storageDomainId);
         domain1.setStorageName("storagedomain4");
         domains.add(domain1);
-        when(storageDomainDAO.get(storageDomainId)).thenReturn(domain1);
+        
when(storageDomainDAO.getForStoragePool(storageDomainId,pool.getId())).thenReturn(domain1);
         List<String> messages = 
CanDoActionTestUtils.runAndAssertCanDoActionFailure(command,
                 
VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_CONNECTION_UNSUPPORTED_ACTION_FOR_RUNNING_VMS_AND_DOMAINS_MAINTENANCE);
         assertTrue(messages.contains("$vmNames vm1"));
@@ -451,6 +462,12 @@
         domain1.setStorageName("storagedomain4");
         domains.add(domain1);
         when(storageDomainDAO.get(storageDomainId)).thenReturn(domain1);
+        List<StoragePool> pools = new ArrayList<>();
+        StoragePool pool = new StoragePool();
+        pool.setId(Guid.newGuid());
+        pools.add(pool);
+        
when(storagePoolDao.getAllForStorageDomain(storageDomainId)).thenReturn(pools);
+        
when(storageDomainDAO.getForStoragePool(storageDomainId,pool.getId())).thenReturn(domain1);
         List<String> messages =
                 CanDoActionTestUtils.runAndAssertCanDoActionFailure(command,
                         
VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_CONNECTION_UNSUPPORTED_ACTION_FOR_DOMAINS_MAINTENANCE);
@@ -522,11 +539,13 @@
                         0);
         parameters.setStorageServerConnection(newNFSConnection);
         VDSReturnValue returnValueConnectSuccess = new VDSReturnValue();
+        List<StoragePoolIsoMap> isoMaps = new ArrayList<>();
         StoragePoolIsoMap map = new StoragePoolIsoMap();
+        isoMaps.add(map);
         returnValueConnectSuccess.setSucceeded(true);
         StorageDomainDynamic domainDynamic = new StorageDomainDynamic();
         StorageDomain domain = createDomain(domainDynamic);
-        doReturn(map).when(command).getStoragePoolIsoMap(domain);
+        doReturn(isoMaps).when(command).getStoragePoolIsoMap(domain);
         returnValueConnectSuccess.setReturnValue(domain);
         
doReturn(returnValueConnectSuccess).when(command).getStatsForDomain(domain);
         doReturn(true).when(command).connectToStorage();
@@ -581,8 +600,10 @@
         domains.add(domain);
         
doReturn(domains).when(command).getStorageDomainsByConnId(newNFSConnection.getid());
         StorageDomainDynamic domainDynamic = new StorageDomainDynamic();
+        List<StoragePoolIsoMap> isoMaps = new ArrayList<>();
         StoragePoolIsoMap map = new StoragePoolIsoMap();
-        doReturn(map).when(command).getStoragePoolIsoMap(domain);
+        isoMaps.add(map);
+        doReturn(isoMaps).when(command).getStoragePoolIsoMap(domain);
         doReturn(returnValueUpdate).when(command).getStatsForDomain(domain);
         doReturn(true).when(command).connectToStorage();
         
doNothing().when(command).changeStorageDomainStatusInTransaction(StorageDomainStatus.Locked);
@@ -610,8 +631,10 @@
         StorageDomain domain = createDomain(domainDynamic);
         domains.add(domain);
         
doReturn(domains).when(command).getStorageDomainsByConnId(newNFSConnection.getid());
+        List<StoragePoolIsoMap> isomaps = new ArrayList<>();
         StoragePoolIsoMap map = new StoragePoolIsoMap();
-        doReturn(map).when(command).getStoragePoolIsoMap(domain);
+        isomaps.add(map);
+        doReturn(isomaps).when(command).getStoragePoolIsoMap(domain);
         doReturn(returnValueUpdate).when(command).getStatsForDomain(domain);
         
doNothing().when(command).changeStorageDomainStatusInTransaction(StorageDomainStatus.Locked);
         
doNothing().when(command).changeStorageDomainStatusInTransaction(StorageDomainStatus.Maintenance);


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

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

Reply via email to