Lior Vernia has uploaded a new change for review. Change subject: webadmin: Don't display DCs that imported external network ......................................................................
webadmin: Don't display DCs that imported external network Changed the import networks dialog so that the choice of DC to import an external network to, will only include DCs where the network doesn't exist yet. Change-Id: I21305c9b21d44c441fc5c6a7d54d162d30ca6248 Bug-Url: https://bugzilla.redhat.com/989909 Signed-off-by: Lior Vernia <[email protected]> --- M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/ImportNetworksModel.java 3 files changed, 22 insertions(+), 13 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/82/19982/1 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 052e0d4..ac1767a 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 @@ -72,7 +72,6 @@ GetNetworkById, // External network providers - GetAllExternalNetworksOnProvider, MapExternalNetworksToDataCenters, // VdsGroups diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java index 8f360fc..a3a21f7 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java @@ -10,6 +10,8 @@ import java.util.List; import java.util.Map; import java.util.MissingResourceException; +import java.util.Set; + import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.EventNotificationEntity; import org.ovirt.engine.core.common.TimeZoneType; @@ -3291,19 +3293,17 @@ } } - public static void GetExternalNetworkList(AsyncQuery aQuery, Guid providerId) { + public static void mapExternalNetworksToDataCenters(AsyncQuery aQuery, Guid providerId) { aQuery.converterCallback = new IAsyncConverter() { @Override - public Object Convert(Object source, AsyncQuery _asyncQuery) - { - if (source == null) - { - return new ArrayList<Network>(); + public Object Convert(Object source, AsyncQuery _asyncQuery) { + if (source == null) { + return new HashMap<Network, Set<Guid>>(); } return source; } }; - Frontend.RunQuery(VdcQueryType.GetAllExternalNetworksOnProvider, + Frontend.RunQuery(VdcQueryType.MapExternalNetworksToDataCenters, new IdQueryParameters(providerId), aQuery); } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/ImportNetworksModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/ImportNetworksModel.java index d9b91d2..c721031 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/ImportNetworksModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/ImportNetworksModel.java @@ -6,6 +6,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Set; import org.ovirt.engine.core.common.action.AddNetworkStoragePoolParameters; import org.ovirt.engine.core.common.action.AttachNetworkToVdsGroupParameter; @@ -128,15 +129,24 @@ @Override public void onSuccess(Object model, Object returnValue) { - Iterable<Network> networks = (Iterable<Network>) returnValue; + Map<Network, Set<Guid>> externalNetworkToDataCenters = (Map<Network, Set<Guid>>) returnValue; List<ExternalNetwork> items = new LinkedList<ExternalNetwork>(); - for (Network network : networks) { + for (Network network : externalNetworkToDataCenters.keySet()) { ExternalNetwork externalNetwork = new ExternalNetwork(); externalNetwork.setNetwork(network); externalNetwork.setDisplayName(network.getName()); - externalNetwork.getDataCenters().setItems(dataCenters); - externalNetwork.getDataCenters().setSelectedItem(Linq.firstOrDefault(dataCenters)); externalNetwork.setPublicUse(true); + + Set<Guid> attachedDataCenters = externalNetworkToDataCenters.get(network); + List<StoragePool> availableDataCenters = new LinkedList<StoragePool>(); + for (StoragePool dc : dataCenters) { + if (!attachedDataCenters.contains(dc.getId())) { + availableDataCenters.add(dc); + } + } + externalNetwork.getDataCenters().setItems(availableDataCenters); + externalNetwork.getDataCenters().setSelectedItem(Linq.firstOrDefault(availableDataCenters)); + items.add(externalNetwork); } Collections.sort(items, new Linq.ExternalNetworkComparator()); @@ -155,7 +165,7 @@ dataCenters.addAll((Collection<StoragePool>) returnValue); Collections.sort(dataCenters, new NameableComparator()); - AsyncDataProvider.GetExternalNetworkList(networkQuery, provider.getId()); + AsyncDataProvider.mapExternalNetworksToDataCenters(networkQuery, provider.getId()); } }; -- To view, visit http://gerrit.ovirt.org/19982 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I21305c9b21d44c441fc5c6a7d54d162d30ca6248 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Lior Vernia <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
