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
