Lior Vernia has uploaded a new change for review. Change subject: engine: Added query that maps external networks to importing DCs ......................................................................
engine: Added query that maps external networks to importing DCs For a given provider, the query retrieves all the external networks that exist on the provider, and maps each network to the set of DCs where that network had already been imported. This set will be used to efficiently check whether a certain external network had been imported to a certain DC. Change-Id: Idd9d918dabc0930d1801678f405c954d95228003 Signed-off-by: Lior Vernia <[email protected]> --- A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/network/MapExternalNetworksToDataCentersQuery.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java 2 files changed, 41 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/80/19980/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/network/MapExternalNetworksToDataCentersQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/network/MapExternalNetworksToDataCentersQuery.java new file mode 100644 index 0000000..3daff95 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/network/MapExternalNetworksToDataCentersQuery.java @@ -0,0 +1,40 @@ +package org.ovirt.engine.core.bll.provider.network; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.ovirt.engine.core.common.businessentities.StoragePool; +import org.ovirt.engine.core.common.businessentities.network.Network; +import org.ovirt.engine.core.common.queries.IdQueryParameters; +import org.ovirt.engine.core.compat.Guid; + +public class MapExternalNetworksToDataCentersQuery<P extends IdQueryParameters> extends GetAllExternalNetworksOnProviderQuery<P> { + + public MapExternalNetworksToDataCentersQuery(P parameters) { + super(parameters); + } + + @Override + protected void executeQueryCommand() { + super.executeQueryCommand(); + List<Network> externalNetworks = getQueryReturnValue().getReturnValue(); + + Map<Network, Set<Guid>> externalNetworkToDataCenters = new HashMap<Network, Set<Guid>>(); + for (Network network : externalNetworks) { + List<StoragePool> dataCenters = + getDbFacade().getStoragePoolDao().getDataCentersByExternalNetworkId(network.getProvidedBy() + .getExternalId()); + Set<Guid> dataCenterIds = new HashSet<Guid>(); + for (StoragePool dc : dataCenters) { + dataCenterIds.add(dc.getId()); + } + externalNetworkToDataCenters.put(network, dataCenterIds); + } + + getQueryReturnValue().setReturnValue(externalNetworkToDataCenters); + } + +} 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 7a78824..052e0d4 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 @@ -73,6 +73,7 @@ // External network providers GetAllExternalNetworksOnProvider, + MapExternalNetworksToDataCenters, // VdsGroups GetVdsCertificateSubjectByVdsId(VdcQueryAuthType.User), -- To view, visit http://gerrit.ovirt.org/19980 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Idd9d918dabc0930d1801678f405c954d95228003 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
