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

Reply via email to