Maor Lipchuk has uploaded a new change for review.

Change subject: core: Add vdc query for attached Storage Domain
......................................................................

core: Add vdc query for attached Storage Domain

Add vdc query for validating that the Storage Domain is not attached to
another Data Center.
The validation is being done on the Storage Domain metadata which
contains the storage pool id.

The query uses connect and disconnect operations for the Storage Domain
to fetch the storage domain info.

Change-Id: I749cad223d90dcc8d193765ed842d7e062ad566c
Bug-Url: https://bugzilla.redhat.com/1138115
Signed-off-by: Maor Lipchuk <[email protected]>
---
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetStorageDomainsWithAttachedStoragePoolGuidQuery.java
A 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/GetStorageDomainsWithAttachedStoragePoolGuidQueryTest.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/StorageDomainsAndStoragePoolIdQueryParameters.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
4 files changed, 503 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/40/36540/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetStorageDomainsWithAttachedStoragePoolGuidQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetStorageDomainsWithAttachedStoragePoolGuidQuery.java
new file mode 100644
index 0000000..60a4329
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetStorageDomainsWithAttachedStoragePoolGuidQuery.java
@@ -0,0 +1,151 @@
+package org.ovirt.engine.core.bll.storage;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+import org.ovirt.engine.core.bll.QueriesCommandBase;
+import org.ovirt.engine.core.common.businessentities.StorageDomain;
+import org.ovirt.engine.core.common.businessentities.StorageDomainStatic;
+import org.ovirt.engine.core.common.businessentities.StoragePool;
+import org.ovirt.engine.core.common.businessentities.StoragePoolStatus;
+import org.ovirt.engine.core.common.businessentities.VDS;
+import org.ovirt.engine.core.common.businessentities.VDSStatus;
+import org.ovirt.engine.core.common.errors.VdcBLLException;
+import org.ovirt.engine.core.common.interfaces.VDSBrokerFrontend;
+import 
org.ovirt.engine.core.common.queries.StorageDomainsAndStoragePoolIdQueryParameters;
+import org.ovirt.engine.core.common.utils.Pair;
+import 
org.ovirt.engine.core.common.vdscommands.HSMGetStorageDomainInfoVDSCommandParameters;
+import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
+import org.ovirt.engine.core.common.vdscommands.VDSParametersBase;
+import org.ovirt.engine.core.common.vdscommands.VDSReturnValue;
+import org.ovirt.engine.core.compat.Guid;
+
+public class GetStorageDomainsWithAttachedStoragePoolGuidQuery<P extends 
StorageDomainsAndStoragePoolIdQueryParameters> extends QueriesCommandBase<P> {
+
+    private Guid vdsId;
+
+    public GetStorageDomainsWithAttachedStoragePoolGuidQuery(P parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected void executeQueryCommand() {
+        List<StorageDomainStatic> storageDomainsWithAttachedStoragePoolId = 
new ArrayList<>();
+        if ((getVdsForConnectStorage() != null) && 
isDataCenterValidForAttachedStorageDomains()) {
+            storageDomainsWithAttachedStoragePoolId = 
filterAttachedStorageDomains();
+        }
+        
getQueryReturnValue().setReturnValue(storageDomainsWithAttachedStoragePoolId);
+    }
+
+    private Guid getVdsForConnectStorage() {
+        vdsId = getParameters().getVdsId();
+        if (vdsId == null) {
+            // Get a Host which is at UP state to connect to the Storage 
Domain.
+            List<VDS> hosts =
+                    
getDbFacade().getVdsDao().getAllForStoragePoolAndStatus(getParameters().getId(),
 VDSStatus.Up);
+            if (!hosts.isEmpty()) {
+                vdsId = hosts.get(new Random().nextInt(hosts.size())).getId();
+                log.infoFormat("vds id {0} was chosen to fetch the Storage 
domain info", vdsId);
+            } else {
+                log.warn("There is no available vds in UP state to fetch the 
Storage domain info from VDSM");
+            }
+        }
+        return vdsId;
+    }
+
+    private boolean isDataCenterValidForAttachedStorageDomains() {
+        if (getParameters().isCheckStoragePoolStatus()) {
+            StoragePool storagePool = 
getDbFacade().getStoragePoolDao().get(getParameters().getId());
+            if ((storagePool == null) || (storagePool.getStatus() != 
StoragePoolStatus.Up)) {
+                log.info("The Data Center is not in UP status.");
+                return false;
+            }
+        }
+        return true;
+    }
+
+    protected List<StorageDomainStatic> filterAttachedStorageDomains() {
+        List<StorageDomain> connectedStorageDomainsToVds = new ArrayList<>();
+        for (StorageDomain storageDomain : 
getParameters().getStorageDomainList()) {
+            if (!connectStorageDomain(storageDomain)) {
+                logErrorMessage(storageDomain);
+            } else {
+                connectedStorageDomainsToVds.add(storageDomain);
+            }
+        }
+
+        List<StorageDomainStatic> storageDomainsWithAttachedStoragePoolId =
+                getAttachedStorageDomains(connectedStorageDomainsToVds);
+        for (StorageDomain storageDomain : connectedStorageDomainsToVds) {
+            if (!disconnectStorageDomain(storageDomain)) {
+                log.warnFormat("Could not disconnect Storage Domain {0} from 
VDS {1}. ", storageDomain.getName(), getVdsId());
+            }
+        }
+        return storageDomainsWithAttachedStoragePoolId;
+    }
+
+    public Guid getVdsId() {
+        return vdsId;
+    }
+
+    protected List<StorageDomainStatic> 
getAttachedStorageDomains(List<StorageDomain> storageDomains) {
+        VDSReturnValue vdsReturnValue = null;
+        List<StorageDomainStatic> storageDomainsWithAttachedStoragePoolId = 
new ArrayList<>();
+
+        // Go over the list of Storage Domains and try to get the Storage 
Domain info to check if it is attached to
+        // another Storage Pool
+        for (StorageDomain storageDomain : storageDomains) {
+            try {
+                vdsReturnValue =
+                        runVdsCommand(VDSCommandType.HSMGetStorageDomainInfo,
+                                new 
HSMGetStorageDomainInfoVDSCommandParameters(getVdsId(), storageDomain.getId()));
+            } catch (RuntimeException e) {
+                logErrorMessage(storageDomain);
+                continue;
+            }
+            if (!vdsReturnValue.getSucceeded()) {
+                logErrorMessage(storageDomain);
+                continue;
+            }
+            Pair<StorageDomainStatic, Guid> domainFromIrs =
+                    (Pair<StorageDomainStatic, Guid>) 
vdsReturnValue.getReturnValue();
+            if (domainFromIrs.getSecond() != null) {
+                
storageDomainsWithAttachedStoragePoolId.add(domainFromIrs.getFirst());
+            }
+        }
+        return storageDomainsWithAttachedStoragePoolId;
+    }
+
+    protected VDSBrokerFrontend getVdsBroker() {
+        return getBackend().getResourceManager();
+    }
+
+    protected VDSReturnValue runVdsCommand(VDSCommandType commandType, 
VDSParametersBase parameters)
+            throws VdcBLLException {
+        return getVdsBroker().RunVdsCommand(commandType, parameters);
+    }
+
+    protected boolean connectStorageDomain(StorageDomain storageDomain) {
+        return StorageHelperDirector.getInstance()
+                .getItem(storageDomain.getStorageType())
+                .connectStorageToDomainByVdsId(storageDomain, getVdsId());
+    }
+
+    protected boolean disconnectStorageDomain(StorageDomain storageDomain) {
+        return StorageHelperDirector.getInstance()
+                .getItem(storageDomain.getStorageType())
+                .disconnectStorageFromDomainByVdsId(storageDomain, getVdsId());
+    }
+
+    protected void logErrorMessage(StorageDomain storageDomain) {
+        if (storageDomain != null) {
+            log.errorFormat("Could not get Storage Domain info for Storage 
Domain (name:{0}, id:{1}) with VDS {2}. ",
+                    storageDomain.getName(),
+                    storageDomain.getId(),
+                    getVdsId());
+        } else {
+            log.errorFormat("Could not get Storage Domain info with VDS {0}. 
", getVdsId());
+        }
+    }
+}
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/GetStorageDomainsWithAttachedStoragePoolGuidQueryTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/GetStorageDomainsWithAttachedStoragePoolGuidQueryTest.java
new file mode 100644
index 0000000..9b52ff3
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/GetStorageDomainsWithAttachedStoragePoolGuidQueryTest.java
@@ -0,0 +1,264 @@
+package org.ovirt.engine.core.bll.storage;
+
+import static junit.framework.TestCase.assertEquals;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.ovirt.engine.core.bll.AbstractQueryTest;
+import org.ovirt.engine.core.common.businessentities.StorageDomain;
+import org.ovirt.engine.core.common.businessentities.StorageDomainStatic;
+import org.ovirt.engine.core.common.businessentities.StoragePool;
+import org.ovirt.engine.core.common.businessentities.StoragePoolStatus;
+import org.ovirt.engine.core.common.businessentities.StorageType;
+import org.ovirt.engine.core.common.businessentities.VDS;
+import org.ovirt.engine.core.common.businessentities.VDSStatus;
+import org.ovirt.engine.core.common.interfaces.VDSBrokerFrontend;
+import 
org.ovirt.engine.core.common.queries.StorageDomainsAndStoragePoolIdQueryParameters;
+import org.ovirt.engine.core.common.utils.Pair;
+import 
org.ovirt.engine.core.common.vdscommands.HSMGetStorageDomainInfoVDSCommandParameters;
+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.dao.StoragePoolDAO;
+import org.ovirt.engine.core.dao.VdsDAO;
+
+public class GetStorageDomainsWithAttachedStoragePoolGuidQueryTest extends
+        AbstractQueryTest<StorageDomainsAndStoragePoolIdQueryParameters, 
GetStorageDomainsWithAttachedStoragePoolGuidQuery<StorageDomainsAndStoragePoolIdQueryParameters>>
+{
+    @Mock
+    private VDSBrokerFrontend vdsBrokerFrontendMock;
+
+    private StorageDomain storageDomain;
+
+    @Before
+    public void setUp() throws Exception {
+        super.setUp();
+        storageDomain = new StorageDomain();
+        storageDomain.setStorageName("Name of Storage");
+        storageDomain.setStorageType(StorageType.ISCSI);
+
+        List<VDS> listVds = new ArrayList<>();
+        VDS vds = new VDS();
+        vds.setId(Guid.newGuid());
+        listVds.add(vds);
+        mockVdsDao(VDSStatus.Up, listVds);
+
+        VDSBrokerFrontend vdsBrokerFrontendMock = 
mock(VDSBrokerFrontend.class);
+        doReturn(vdsBrokerFrontendMock).when(getQuery()).getVdsBroker();
+        
doReturn(Boolean.TRUE).when(getQuery()).connectStorageDomain(eq(storageDomain));
+        
doReturn(Boolean.TRUE).when(getQuery()).disconnectStorageDomain(eq(storageDomain));
+    }
+
+    @Test
+    public void testUninitializedStoragePool() {
+        mockVdsCommand();
+        StoragePool storagePool = new StoragePool();
+        storagePool.setStatus(StoragePoolStatus.Uninitialized);
+        mockStoragePoolDao(storagePool);
+
+        // Create parameters
+        List<StorageDomain> storageDomainList = new ArrayList<>();
+        storageDomainList.add(storageDomain);
+        StorageDomainsAndStoragePoolIdQueryParameters paramsMock = 
getQueryParameters();
+        when(paramsMock.getStorageDomainList()).thenReturn(storageDomainList);
+        when(paramsMock.isCheckStoragePoolStatus()).thenReturn(Boolean.TRUE);
+
+        // Run 'HSMGetStorageDomainInfo' command
+        VDSReturnValue returnValue = new VDSReturnValue();
+        returnValue.setSucceeded(true);
+
+        Pair<StorageDomainStatic, Guid> storageDomainToPoolId =
+                new Pair<>(storageDomain.getStorageStaticData(), 
Guid.newGuid());
+        returnValue.setReturnValue(storageDomainToPoolId);
+        
when(vdsBrokerFrontendMock.RunVdsCommand(eq(VDSCommandType.HSMGetStorageDomainInfo),
+                
any(HSMGetStorageDomainInfoVDSCommandParameters.class))).thenReturn(returnValue);
+
+        // Execute command
+        getQuery().executeQueryCommand();
+
+        // Assert the query's results
+        List<StorageDomainStatic> returnedStorageDomainList = new 
ArrayList<>();
+        assertEquals(returnedStorageDomainList, 
getQuery().getQueryReturnValue().getReturnValue());
+    }
+
+    @Test
+    public void testStoragePoolIdReturnNullStoragePool() {
+        mockVdsCommand();
+        mockStoragePoolDao(null);
+
+        // Create parameters
+        List<StorageDomain> storageDomainList = new ArrayList<>();
+        storageDomainList.add(storageDomain);
+        StorageDomainsAndStoragePoolIdQueryParameters paramsMock = 
getQueryParameters();
+        when(paramsMock.getStorageDomainList()).thenReturn(storageDomainList);
+        when(paramsMock.isCheckStoragePoolStatus()).thenReturn(Boolean.TRUE);
+
+        // Run 'HSMGetStorageDomainInfo' command
+        VDSReturnValue returnValue = new VDSReturnValue();
+        returnValue.setSucceeded(true);
+
+        Pair<StorageDomainStatic, Guid> storageDomainToPoolId =
+                new Pair<>(storageDomain.getStorageStaticData(), 
Guid.newGuid());
+        returnValue.setReturnValue(storageDomainToPoolId);
+        
when(vdsBrokerFrontendMock.RunVdsCommand(eq(VDSCommandType.HSMGetStorageDomainInfo),
+                
any(HSMGetStorageDomainInfoVDSCommandParameters.class))).thenReturn(returnValue);
+
+        // Execute command
+        getQuery().executeQueryCommand();
+
+        // Assert the query's results
+        List<StorageDomainStatic> returnedStorageDomainList = new 
ArrayList<>();
+        assertEquals(returnedStorageDomainList, 
getQuery().getQueryReturnValue().getReturnValue());
+    }
+
+    @Test
+    public void testStoragePoolIsUninitializedButCheckBooleanIsFalse() {
+        mockVdsCommand();
+        StoragePool storagePool = new StoragePool();
+        storagePool.setStatus(StoragePoolStatus.Uninitialized);
+        mockStoragePoolDao(storagePool);
+
+        // Create parameters
+        List<StorageDomain> storageDomainList = new ArrayList<>();
+        storageDomainList.add(storageDomain);
+        StorageDomainsAndStoragePoolIdQueryParameters paramsMock = 
getQueryParameters();
+        when(paramsMock.getStorageDomainList()).thenReturn(storageDomainList);
+        when(paramsMock.isCheckStoragePoolStatus()).thenReturn(Boolean.FALSE);
+
+        // Run 'HSMGetStorageDomainInfo' command
+        VDSReturnValue returnValue = new VDSReturnValue();
+        returnValue.setSucceeded(true);
+
+        Pair<StorageDomainStatic, Guid> storageDomainToPoolId =
+                new Pair<>(storageDomain.getStorageStaticData(), 
Guid.newGuid());
+        returnValue.setReturnValue(storageDomainToPoolId);
+        
when(vdsBrokerFrontendMock.RunVdsCommand(eq(VDSCommandType.HSMGetStorageDomainInfo),
+                
any(HSMGetStorageDomainInfoVDSCommandParameters.class))).thenReturn(returnValue);
+
+        // Execute command
+        getQuery().executeQueryCommand();
+
+        // Assert the query's results
+        List<StorageDomainStatic> returnedStorageDomainList = new 
ArrayList<>();
+        returnedStorageDomainList.add(storageDomain.getStorageStaticData());
+        assertEquals(returnedStorageDomainList, 
getQuery().getQueryReturnValue().getReturnValue());
+    }
+
+    @Test
+    public void testAttachedStorageDomainQuery() {
+        mockVdsCommand();
+        StoragePool storagePool = new StoragePool();
+        storagePool.setStatus(StoragePoolStatus.Up);
+        mockStoragePoolDao(storagePool);
+
+        // Create parameters
+        List<StorageDomain> storageDomainList = new ArrayList<>();
+        storageDomainList.add(storageDomain);
+        StorageDomainsAndStoragePoolIdQueryParameters paramsMock = 
getQueryParameters();
+        when(paramsMock.getStorageDomainList()).thenReturn(storageDomainList);
+
+        // Run 'HSMGetStorageDomainInfo' command
+        VDSReturnValue returnValue = new VDSReturnValue();
+        returnValue.setSucceeded(true);
+
+        Pair<StorageDomainStatic, Guid> storageDomainToPoolId =
+                new Pair<>(storageDomain.getStorageStaticData(), 
Guid.newGuid());
+        returnValue.setReturnValue(storageDomainToPoolId);
+        
when(vdsBrokerFrontendMock.RunVdsCommand(eq(VDSCommandType.HSMGetStorageDomainInfo),
+                
any(HSMGetStorageDomainInfoVDSCommandParameters.class))).thenReturn(returnValue);
+
+        // Execute command
+        getQuery().executeQueryCommand();
+
+        // Assert the query's results
+        List<StorageDomainStatic> returnedStorageDomainList = new 
ArrayList<>();
+        returnedStorageDomainList.add(storageDomain.getStorageStaticData());
+        assertEquals(returnedStorageDomainList, 
getQuery().getQueryReturnValue().getReturnValue());
+    }
+
+    @Test
+    public void testUnattachedStorageDomainQuery() {
+        mockVdsCommand();
+        StoragePool storagePool = new StoragePool();
+        storagePool.setStatus(StoragePoolStatus.Up);
+        mockStoragePoolDao(storagePool);
+
+        // Create parameters
+        List<StorageDomain> storageDomainList = new ArrayList<>();
+        storageDomainList.add(storageDomain);
+        StorageDomainsAndStoragePoolIdQueryParameters paramsMock = 
getQueryParameters();
+        when(paramsMock.getStorageDomainList()).thenReturn(storageDomainList);
+
+        // Run 'HSMGetStorageDomainInfo' command
+        VDSReturnValue returnValue = new VDSReturnValue();
+        returnValue.setSucceeded(true);
+
+        Pair<StorageDomainStatic, Guid> storageDomainToPoolId = new 
Pair<>(storageDomain.getStorageStaticData(), null);
+        returnValue.setReturnValue(storageDomainToPoolId);
+        
when(vdsBrokerFrontendMock.RunVdsCommand(eq(VDSCommandType.HSMGetStorageDomainInfo),
+                
any(HSMGetStorageDomainInfoVDSCommandParameters.class))).thenReturn(returnValue);
+
+        // Execute command
+        getQuery().executeQueryCommand();
+
+        // Assert the query's results
+        List<StorageDomainStatic> returnedStorageDomainList = new 
ArrayList<>();
+        assertEquals(returnedStorageDomainList, 
getQuery().getQueryReturnValue().getReturnValue());
+    }
+
+    @Test
+    public void testEmptyStorageDomainListQuery() {
+        mockVdsCommand();
+        StoragePool storagePool = new StoragePool();
+        storagePool.setStatus(StoragePoolStatus.Up);
+        mockStoragePoolDao(storagePool);
+
+        // Create parameters
+        List<StorageDomain> storageDomainList = new ArrayList<>();
+        StorageDomainsAndStoragePoolIdQueryParameters paramsMock = 
getQueryParameters();
+        when(paramsMock.getStorageDomainList()).thenReturn(storageDomainList);
+
+        // Run 'HSMGetStorageDomainInfo' command
+        VDSReturnValue returnValue = new VDSReturnValue();
+        returnValue.setSucceeded(true);
+
+        Pair<StorageDomainStatic, Guid> storageDomainToPoolId =
+                new Pair<>(storageDomain.getStorageStaticData(), 
Guid.newGuid());
+        returnValue.setReturnValue(storageDomainToPoolId);
+        
when(vdsBrokerFrontendMock.RunVdsCommand(eq(VDSCommandType.HSMGetStorageDomainInfo),
+                
any(HSMGetStorageDomainInfoVDSCommandParameters.class))).thenReturn(returnValue);
+
+        // Execute command
+        getQuery().executeQueryCommand();
+
+        // Assert the query's results
+        List<StorageDomainStatic> returnedStorageDomainList = new 
ArrayList<>();
+        assertEquals(returnedStorageDomainList, 
getQuery().getQueryReturnValue().getReturnValue());
+    }
+
+    private void mockVdsCommand() {
+        vdsBrokerFrontendMock = mock(VDSBrokerFrontend.class);
+        doReturn(vdsBrokerFrontendMock).when(getQuery()).getVdsBroker();
+    }
+
+    private void mockStoragePoolDao(StoragePool storagePool) {
+        StoragePoolDAO storagePoolDaoMock = mock(StoragePoolDAO.class);
+        
when(getDbFacadeMockInstance().getStoragePoolDao()).thenReturn(storagePoolDaoMock);
+        when(storagePoolDaoMock.get(any(Guid.class))).thenReturn(storagePool);
+    }
+
+    private void mockVdsDao(VDSStatus vdsStatus, List<VDS> listVds) {
+        VdsDAO vdsDAOMock = mock(VdsDAO.class);
+        when(vdsDAOMock.getAllForStoragePoolAndStatus(any(Guid.class), 
eq(vdsStatus))).thenReturn(listVds);
+        when(getDbFacadeMockInstance().getVdsDao()).thenReturn(vdsDAOMock);
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/StorageDomainsAndStoragePoolIdQueryParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/StorageDomainsAndStoragePoolIdQueryParameters.java
new file mode 100644
index 0000000..a98fcbc
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/StorageDomainsAndStoragePoolIdQueryParameters.java
@@ -0,0 +1,86 @@
+package org.ovirt.engine.core.common.queries;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.ovirt.engine.core.common.businessentities.StorageDomain;
+import org.ovirt.engine.core.common.businessentities.StorageServerConnections;
+import org.ovirt.engine.core.compat.Guid;
+
+public class StorageDomainsAndStoragePoolIdQueryParameters extends 
IdQueryParameters {
+    private List<StorageDomain> storageDomainList;
+    private StorageServerConnections storageServerConnection;
+    private Guid vdsId;
+    private boolean checkStoragePoolStatus = true;
+
+    public StorageDomainsAndStoragePoolIdQueryParameters() {
+    }
+
+    public StorageDomainsAndStoragePoolIdQueryParameters(List<StorageDomain> 
storageDomainList,
+            Guid storagePoolId,
+            Guid vdsId) {
+        super(storagePoolId);
+        this.storageDomainList = storageDomainList;
+        this.vdsId = vdsId;
+    }
+
+    public StorageDomainsAndStoragePoolIdQueryParameters(List<StorageDomain> 
storageDomainList, Guid storagePoolId) {
+        this(storageDomainList, storagePoolId, null);
+    }
+
+    public StorageDomainsAndStoragePoolIdQueryParameters(StorageDomain 
storageDomain, Guid storagePoolId, Guid vdsId) {
+        super(storagePoolId);
+        List<StorageDomain> storageDomainList = new ArrayList<StorageDomain>();
+        storageDomainList.add(storageDomain);
+        this.storageDomainList = storageDomainList;
+        this.vdsId = vdsId;
+    }
+
+    public StorageDomainsAndStoragePoolIdQueryParameters(StorageDomain 
storageDomain,
+            Guid storagePoolId,
+            Guid vdsId,
+            boolean checkStoragePoolStatus) {
+        this(storageDomain, storagePoolId, vdsId);
+        this.checkStoragePoolStatus = checkStoragePoolStatus;
+    }
+
+    public 
StorageDomainsAndStoragePoolIdQueryParameters(StorageServerConnections 
storageServerConnection,
+            Guid storagePoolId,
+            Guid vdsId) {
+        super(storagePoolId);
+        this.storageServerConnection = storageServerConnection;
+        this.vdsId = vdsId;
+    }
+
+    public List<StorageDomain> getStorageDomainList() {
+        return storageDomainList;
+    }
+
+    public void setStorageDomainIdList(List<StorageDomain> storageDomainList) {
+        this.storageDomainList = storageDomainList;
+    }
+
+    public StorageServerConnections getStorageServerConnection() {
+        return storageServerConnection;
+    }
+
+    public void setStorageServerConnection(StorageServerConnections 
storageServerConnection) {
+        this.storageServerConnection = storageServerConnection;
+    }
+
+    public Guid getVdsId() {
+        return vdsId;
+    }
+
+    public void setVdsId(Guid vdsId) {
+        this.vdsId = vdsId;
+    }
+
+    public boolean isCheckStoragePoolStatus() {
+        return checkStoragePoolStatus;
+    }
+
+    public void setCheckStoragePoolStatus(boolean checkStoragePoolStatus) {
+        this.checkStoragePoolStatus = checkStoragePoolStatus;
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
index c33f976..3155e8d 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
@@ -273,6 +273,8 @@
     GetIscsiBondById,
     GetStorageServerConnectionByIscsiBondId,
     GetNetworksByIscsiBondId,
+    GetStorageDomainsWithAttachedStoragePoolGuid,
+
 
     // Event Notification
     GetEventSubscribersBySubscriberIdGrouped,


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

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

Reply via email to