Yevgeny Zaspitsky has uploaded a new change for review.

Change subject: engine: add GetManagementNetworkCandidates query
......................................................................

engine: add GetManagementNetworkCandidates query

Add GetManagementNetworkCandidates query

Change-Id: Iefca8da3ebfda845af1768aaa3bbc827f698cdcb
Signed-off-by: Yevgeny Zaspitsky <[email protected]>
---
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/GetManagementNetworkCandidatesQuery.java
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/predicate/ExternalNetworkPredicate.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
3 files changed, 69 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/42/38042/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/GetManagementNetworkCandidatesQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/GetManagementNetworkCandidatesQuery.java
new file mode 100644
index 0000000..d94eaf2
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/GetManagementNetworkCandidatesQuery.java
@@ -0,0 +1,52 @@
+package org.ovirt.engine.core.bll.network.dc;
+
+import java.util.List;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.ovirt.engine.core.bll.QueriesCommandBase;
+import org.ovirt.engine.core.common.businessentities.network.Network;
+import org.ovirt.engine.core.common.queries.IdQueryParameters;
+import org.ovirt.engine.core.dao.network.NetworkDao;
+import org.ovirt.engine.core.utils.linq.Predicate;
+
+import static org.ovirt.engine.core.utils.linq.LinqUtils.filter;
+import static org.ovirt.engine.core.utils.linq.LinqUtils.not;
+
+public class GetManagementNetworkCandidatesQuery<P extends IdQueryParameters> 
extends QueriesCommandBase<P> {
+
+    @Inject
+    private NetworkDao networkDao;
+
+    @Inject
+    @Named
+    private Predicate<Network> externalNetworkPredicate;
+
+    public GetManagementNetworkCandidatesQuery(P parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected void executeQueryCommand() {
+        final List<Network> allDcNetworks = 
networkDao.getAllForDataCenter(getParameters().getId(),
+                getUserID(),
+                getParameters().isFiltered());
+        final List<Network> managementNetworkCandidates =
+                filter(allDcNetworks, 
getManagementNetworkCandidatePredicate());
+        getQueryReturnValue().setReturnValue(managementNetworkCandidates);
+    }
+
+    private Predicate<Network> getManagementNetworkCandidatePredicate() {
+        return not(getExternalNetworkPredicate());
+    }
+
+    NetworkDao getNetworkDao() {
+        return networkDao;
+    }
+
+    Predicate<Network> getExternalNetworkPredicate() {
+        return externalNetworkPredicate;
+    }
+
+}
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/predicate/ExternalNetworkPredicate.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/predicate/ExternalNetworkPredicate.java
new file mode 100644
index 0000000..d7cfc20
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/predicate/ExternalNetworkPredicate.java
@@ -0,0 +1,16 @@
+package org.ovirt.engine.core.bll.network.predicate;
+
+import javax.inject.Named;
+import javax.inject.Singleton;
+
+import org.ovirt.engine.core.common.businessentities.network.Network;
+import org.ovirt.engine.core.utils.linq.Predicate;
+
+@Singleton
+@Named
+final class ExternalNetworkPredicate implements Predicate<Network> {
+    @Override
+    public boolean eval(Network network) {
+        return network.isExternal();
+    }
+}
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 8c7ccbc..df5174c 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
@@ -101,6 +101,7 @@
     IsManagementNetwork,
     GetManagementNetwork,
     GetDefaultManagementNetwork,
+    GetManagementNetworkCandidates,
 
     // External network providers
     GetAllExternalNetworksOnProvider,


-- 
To view, visit http://gerrit.ovirt.org/38042
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iefca8da3ebfda845af1768aaa3bbc827f698cdcb
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Yevgeny Zaspitsky <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to