Maor Lipchuk has uploaded a new change for review. Change subject: core: filter candidate block Storage Domains with existing LUNs. ......................................................................
core: filter candidate block Storage Domains with existing LUNs. Filter out candidates of imported Storage Domain if we have external LUNs which are part of the vg. Change-Id: Id82e5e1d3df8ce265833efb3fc4b9050ca73b679 Bug-Url: https://bugzilla.redhat.com/1157243 Signed-off-by: Maor Lipchuk <mlipc...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetUnregisteredBlockStorageDomainsQuery.java 1 file changed, 17 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/79/36079/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetUnregisteredBlockStorageDomainsQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetUnregisteredBlockStorageDomainsQuery.java index d93a639..04c19b2 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetUnregisteredBlockStorageDomainsQuery.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/GetUnregisteredBlockStorageDomainsQuery.java @@ -207,6 +207,10 @@ @SuppressWarnings("unchecked") protected List<StorageDomain> getStorageDomainsByVolumeGroupIds(List<String> vgIDs) { List<StorageDomain> storageDomains = new ArrayList<>(); + + // Get existing PhysicalVolumes. + List<String> existingPhysicalVolumeIds = getPhysicalVolumesFromLunsList(getDbFacade().getLunDao().getAll()); + for (String vgID : vgIDs) { VDSReturnValue returnValue = null; try { @@ -220,6 +224,11 @@ } ArrayList<LUNs> luns = (ArrayList<LUNs>) returnValue.getReturnValue(); + List<String> physicalVolumeIdsOnStorage = getPhysicalVolumesFromLunsList(luns); + if (CollectionUtils.containsAny(physicalVolumeIdsOnStorage, existingPhysicalVolumeIds)) { + log.info("There are existing luns in the system which are part of VG id '{}'", vgID); + continue; + } // Get storage domain ID by a representative LUN LUNs lun = luns.get(0); @@ -234,6 +243,14 @@ return storageDomains; } + private List<String> getPhysicalVolumesFromLunsList(List<LUNs> luns) { + List<String> physicalVolumeIds = new ArrayList<>(); + for (LUNs lun : luns) { + physicalVolumeIds.add(lun.getphysical_volume_id()); + } + return physicalVolumeIds; + } + /** * Retrieve a storage domain using a specified storage domain ID. * -- To view, visit http://gerrit.ovirt.org/36079 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Id82e5e1d3df8ce265833efb3fc4b9050ca73b679 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Maor Lipchuk <mlipc...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches