Michael Kublin has uploaded a new change for review. Change subject: engine: connectStorageServer is not sent for inactive domains before connectStoragePool ......................................................................
engine: connectStorageServer is not sent for inactive domains before connectStoragePool During start up of host a host was not conneted to InActive domains. This is wrong, because of host can actually see InActive domains, so connect should be send to all Active, Uknown and Inactive domains Change-Id: Ibb3710bb83ef81485715577ae939014ffcae693f Bug-Url: https://bugzilla.redhat.com/917576 Signed-off-by: Michael Kublin <mkub...@redhat.com> --- M backend/manager/dbscripts/storages_san_sp.sql M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectHostToStoragePooServerCommandBase.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionDAO.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionDAODbFacadeImpl.java M backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/StorageServerConnectionDAOTest.java 5 files changed, 15 insertions(+), 14 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/05/12805/1 diff --git a/backend/manager/dbscripts/storages_san_sp.sql b/backend/manager/dbscripts/storages_san_sp.sql index 54f62d7..8af4ed4 100644 --- a/backend/manager/dbscripts/storages_san_sp.sql +++ b/backend/manager/dbscripts/storages_san_sp.sql @@ -538,7 +538,7 @@ -Create or replace FUNCTION Getstorage_server_connectionsByStoragePoolId(v_storage_pool_id UUID) +Create or replace FUNCTION Getstorage_server_connectionsActiveUnknownInactiveByPoolId(v_storage_pool_id UUID) RETURNS SETOF storage_server_connections AS $procedure$ BEGIN @@ -548,12 +548,12 @@ INNER JOIN LUNs ON LUN_storage_server_connection_map.LUN_id = LUNs.LUN_id INNER JOIN storage_domains ON LUNs.volume_group_id = storage_domains.storage INNER JOIN storage_server_connections ON LUN_storage_server_connection_map.storage_server_connection = storage_server_connections.id - WHERE (storage_domains.storage_pool_id = v_storage_pool_id and storage_domains.status in(0,3)) + WHERE (storage_domains.storage_pool_id = v_storage_pool_id and storage_domains.status in(0,3,4)) UNION SELECT distinct storage_server_connections.* FROM storage_server_connections INNER JOIN storage_domains ON storage_server_connections.id = storage_domains.storage - WHERE (storage_domains.storage_pool_id = v_storage_pool_id and storage_domains.status in(0,3)); + WHERE (storage_domains.storage_pool_id = v_storage_pool_id and storage_domains.status in(0,3,4)); END; $procedure$ LANGUAGE plpgsql; diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectHostToStoragePooServerCommandBase.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectHostToStoragePooServerCommandBase.java index 6c37d36..c779f66 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectHostToStoragePooServerCommandBase.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectHostToStoragePooServerCommandBase.java @@ -73,7 +73,7 @@ getStorageDomainsByStoragePoolId(allDomains, StorageDomainType.ImportExport); Set<StorageServerConnections> connections = new HashSet<StorageServerConnections>( - DbFacade.getInstance().getStorageServerConnectionDao().getAllForStoragePool(getStoragePool().getId())); + DbFacade.getInstance().getStorageServerConnectionDao().getActiveUnknownInActiveForStoragePool(getStoragePool().getId())); if (isoDomains.size() != 0) { _isoType = isoDomains.get(0).getStorageType(); Set<StorageServerConnections> isoConnections = @@ -105,12 +105,13 @@ _connections = new ArrayList<StorageServerConnections>(connections); } - protected List<StorageDomain> getStorageDomainsByStoragePoolId(List<StorageDomain> allDomains, StorageDomainType type) { + protected List<StorageDomain> getStorageDomainsByStoragePoolId(List<StorageDomain> allDomains, + StorageDomainType type) { List<StorageDomain> domains = new ArrayList<StorageDomain>(); for (StorageDomain s : allDomains) { StorageDomainStatus status = s.getStatus(); if (s.getStorageDomainType() == type - && (StorageDomainStatus.Active == status || StorageDomainStatus.Unknown == status)) { + && (StorageDomainStatus.Active == status || StorageDomainStatus.Unknown == status || StorageDomainStatus.InActive == status)) { domains.add(s); } } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionDAO.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionDAO.java index aa4edb2..fe720db 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionDAO.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionDAO.java @@ -38,13 +38,13 @@ List<StorageServerConnections> getAll(); /** - * Retrieves all connections for the specified storage pool. + * Retrieves all Active, Unknown , InActive connections for the specified storage pool. * * @param pool * the storage pool * @return the list of connections */ - List<StorageServerConnections> getAllForStoragePool(Guid pool); + List<StorageServerConnections> getActiveUnknownInActiveForStoragePool(Guid pool); /** * Retrieves all connections for the specified volume group. diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionDAODbFacadeImpl.java index dffd8c0..1f225ba 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageServerConnectionDAODbFacadeImpl.java @@ -40,8 +40,8 @@ } @Override - public List<StorageServerConnections> getAllForStoragePool(Guid pool) { - return getCallsHandler().executeReadList("Getstorage_server_connectionsByStoragePoolId", + public List<StorageServerConnections> getActiveUnknownInActiveForStoragePool(Guid pool) { + return getCallsHandler().executeReadList("Getstorage_server_connectionsActiveUnknownInactiveByPoolId", mapper, getCustomMapSqlParameterSource() .addValue("storage_pool_id", pool)); diff --git a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/StorageServerConnectionDAOTest.java b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/StorageServerConnectionDAOTest.java index 938e6c5..2eafb71 100644 --- a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/StorageServerConnectionDAOTest.java +++ b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/StorageServerConnectionDAOTest.java @@ -90,8 +90,8 @@ * @return */ @Test - public void testgetAllForStoragePoolWithNoConnections() { - List<StorageServerConnections> result = dao.getAllForStoragePool(Guid.NewGuid()); + public void testgetActiveUnknownInActiveForStoragePoolWithNoConnections() { + List<StorageServerConnections> result = dao.getActiveUnknownInActiveForStoragePool(Guid.NewGuid()); assertNotNull(result); assertTrue(result.isEmpty()); @@ -101,8 +101,8 @@ * Ensures that a set of records are returned. */ @Test - public void testgetAllForStoragePool() { - List<StorageServerConnections> result = dao.getAllForStoragePool(EXISTING_STORAGE_POOL_ID); + public void testgetActiveUnknownInActiveForStoragePool() { + List<StorageServerConnections> result = dao.getActiveUnknownInActiveForStoragePool(EXISTING_STORAGE_POOL_ID); assertNotNull(result); assertFalse(result.isEmpty()); -- To view, visit http://gerrit.ovirt.org/12805 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ibb3710bb83ef81485715577ae939014ffcae693f Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Michael Kublin <mkub...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches