Gilad Chaplik has uploaded a new change for review.

Change subject: core: scheduler: change parameter map type
......................................................................

core: scheduler: change parameter map type

The external scheduler is now expecting a string map with vm id instead
of vm entity, therefore, changing the parameter map to hold strings (instead of 
objects),
and passing the vm entity as a seperate parameter.

Change-Id: Ie0475218e2b66fcd48faf0b92ac2873c4b448c0e
Signed-off-by: Gilad Chaplik <gchap...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/PolicyUnitImpl.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/SchedulingManager.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/CPUPolicyUnit.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/EvenDistributionPolicyUnit.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/MemoryPolicyUnit.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/MigrationDomainPolicyUnit.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/MigrationPolicyUnit.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/NetworkPolicyUnit.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/NonePolicyUnit.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/PinToHostPolicyUnit.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/PowerSavingPolicyUnit.java
11 files changed, 29 insertions(+), 32 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/55/17755/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/PolicyUnitImpl.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/PolicyUnitImpl.java
index 3158093..c8a37a5 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/PolicyUnitImpl.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/PolicyUnitImpl.java
@@ -16,6 +16,7 @@
 import org.ovirt.engine.core.bll.scheduling.policyunits.PowerSavingPolicyUnit;
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
+import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.core.common.scheduling.PolicyUnit;
 import org.ovirt.engine.core.common.scheduling.PolicyUnitType;
 import org.ovirt.engine.core.common.utils.Pair;
@@ -24,8 +25,6 @@
 import org.ovirt.engine.core.utils.log.LogFactory;
 
 public class PolicyUnitImpl extends PolicyUnit {
-    public static final String VM = "vm";
-
     public static PolicyUnitImpl getPolicyUnitImpl(PolicyUnit policyUnit) {
         switch (policyUnit.getName()) {
         case "Migration":
@@ -59,12 +58,12 @@
         this.policyUnit = policyUnit;
     }
 
-    public List<VDS> filter(List<VDS> hosts, Map<String, Object> parameters, 
List<String> messages) {
+    public List<VDS> filter(List<VDS> hosts, VM vm, Map<String, String> 
parameters, List<String> messages) {
         log.error("policy unit:" + getName() + "filter is not implemented");
         return hosts;
     }
 
-    public List<Pair<Guid, Integer>> score(List<VDS> hosts, Map<String, 
Object> parameters) {
+    public List<Pair<Guid, Integer>> score(List<VDS> hosts, VM vm, Map<String, 
String> parameters) {
         log.error("policy unit:" + getPolicyUnit().getName() + "function is 
not implemented");
         List<Pair<Guid, Integer>> pairs = new ArrayList<Pair<Guid, Integer>>();
         for (VDS vds : hosts) {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/SchedulingManager.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/SchedulingManager.java
index 3043c42..96f5712 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/SchedulingManager.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/SchedulingManager.java
@@ -156,7 +156,7 @@
             updateInitialHostList(vdsList, hostBlackList, true);
             updateInitialHostList(vdsList, hostWhiteList, false);
             ClusterPolicy policy = policyMap.get(cluster.getClusterPolicyId());
-            Map<String, Object> parameters = 
createClusterPolicyParameters(cluster, vm);
+            Map<String, String> parameters = 
createClusterPolicyParameters(cluster);
             if (destHostId != null) {
                 if (checkDestinationHost(vm,
                         vdsList,
@@ -173,6 +173,7 @@
             vdsList =
                     runFilters(policy.getFilters(),
                             vdsList,
+                            vm,
                             parameters,
                             policy.getFilterPositionMap(),
                             messages,
@@ -183,7 +184,7 @@
             if (policy.getFunctions() == null || 
policy.getFunctions().isEmpty()) {
                 return vdsList.get(0).getId();
             }
-            Guid bestHost = runFunctions(policy.getFunctions(), vdsList, 
parameters);
+            Guid bestHost = runFunctions(policy.getFunctions(), vdsList, vm, 
parameters);
             if (bestHost != null) {
                 getVdsDynamicDao().updatePartialVdsDynamicCalc(
                         bestHost,
@@ -208,7 +209,7 @@
         updateInitialHostList(vdsList, vdsBlackList, true);
         updateInitialHostList(vdsList, vdsWhiteList, false);
         ClusterPolicy policy = policyMap.get(cluster.getClusterPolicyId());
-        Map<String, Object> parameters = 
createClusterPolicyParameters(cluster, vm);
+        Map<String, String> parameters = 
createClusterPolicyParameters(cluster);
         if (destVdsId != null) {
             if (checkDestinationHost(vm,
                     vdsList,
@@ -225,6 +226,7 @@
         vdsList =
                 runFilters(policy.getFilters(),
                         vdsList,
+                        vm,
                         parameters,
                         policy.getFilterPositionMap(),
                         messages,
@@ -240,7 +242,7 @@
             Guid destVdsId,
             List<String> messages,
             ClusterPolicy policy,
-            Map<String, Object> parameters,
+            Map<String, String> parameters,
             VdsFreeMemoryChecker memoryChecker) {
         List<VDS> destVdsList = new ArrayList<VDS>();
         for (VDS vds : vdsList) {
@@ -252,6 +254,7 @@
         destVdsList =
                 runFilters(policy.getFilters(),
                         destVdsList,
+                        vm,
                         parameters,
                         policy.getFilterPositionMap(),
                         messages,
@@ -259,11 +262,8 @@
         return destVdsList != null && destVdsList.size() == 1;
     }
 
-    protected Map<String, Object> createClusterPolicyParameters(VDSGroup 
cluster, VM vm) {
-        Map<String, Object> parameters = new HashMap<String, Object>();
-        if (vm != null) {
-            parameters.put(PolicyUnitImpl.VM, vm);
-        }
+    protected Map<String, String> createClusterPolicyParameters(VDSGroup 
cluster) {
+        Map<String, String> parameters = new HashMap<String, String>();
         if (cluster.getClusterPolicyProperties() != null) {
             parameters.putAll(cluster.getClusterPolicyProperties());
         }
@@ -285,7 +285,8 @@
 
     private List<VDS> runFilters(ArrayList<Guid> filters,
             List<VDS> hostList,
-            Map<String, Object> parameters,
+            VM vm,
+            Map<String, String> parameters,
             Map<Guid, Integer> filterPositionMap,
             List<String> messages, VdsFreeMemoryChecker memoryChecker) {
         if (filters != null) {
@@ -296,7 +297,7 @@
                 }
                 PolicyUnitImpl filterPolicyUnit = policyUnits.get(filter);
                 filterPolicyUnit.setMemoryChecker(memoryChecker);
-                hostList = filterPolicyUnit.filter(hostList, parameters, 
messages);
+                hostList = filterPolicyUnit.filter(hostList, vm, parameters, 
messages);
             }
         }
         return hostList;
@@ -325,10 +326,11 @@
 
     protected Guid runFunctions(ArrayList<Pair<Guid, Integer>> functions,
             List<VDS> hostList,
-            Map<String, Object> parameters) {
+            VM vm,
+            Map<String, String> parameters) {
         Map<Guid, Integer> hostCostTable = new HashMap<Guid, Integer>();
         for (Pair<Guid, Integer> pair : functions) {
-            List<Pair<Guid, Integer>> scoreResult = 
policyUnits.get(pair.getFirst()).score(hostList, parameters);
+            List<Pair<Guid, Integer>> scoreResult = 
policyUnits.get(pair.getFirst()).score(hostList, vm, parameters);
             for (Pair<Guid, Integer> result : scoreResult) {
                 Guid hostId = result.getFirst();
                 if (hostCostTable.get(hostId) == null) {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/CPUPolicyUnit.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/CPUPolicyUnit.java
index 633bec8..0c54ee1 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/CPUPolicyUnit.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/CPUPolicyUnit.java
@@ -18,8 +18,7 @@
     }
 
     @Override
-    public List<VDS> filter(List<VDS> hosts, Map<String, Object> parameters, 
List<String> messages) {
-        VM vm = (VM) parameters.get(PolicyUnitImpl.VM);
+    public List<VDS> filter(List<VDS> hosts, VM vm, Map<String, String> 
parameters, List<String> messages) {
         List<VDS> list = new ArrayList<VDS>();
         for (VDS vds : hosts) {
             Integer cores = 
SlaValidator.getInstance().getEffectiveCpuCores(vds);
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/EvenDistributionPolicyUnit.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/EvenDistributionPolicyUnit.java
index 2bade5e..b3d0463 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/EvenDistributionPolicyUnit.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/EvenDistributionPolicyUnit.java
@@ -34,7 +34,7 @@
     }
 
     @Override
-    public List<Pair<Guid, Integer>> score(List<VDS> hosts, Map<String, 
Object> parameters) {
+    public List<Pair<Guid, Integer>> score(List<VDS> hosts, VM vm, Map<String, 
String> parameters) {
         List<Pair<Guid, Integer>> scores = new ArrayList<Pair<Guid, 
Integer>>();
         for (VDS vds : hosts) {
             scores.add(new Pair<Guid, Integer>(vds.getId(), 
vds.getUsageCpuPercent()));
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/MemoryPolicyUnit.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/MemoryPolicyUnit.java
index d99d508..16c8438 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/MemoryPolicyUnit.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/MemoryPolicyUnit.java
@@ -20,8 +20,7 @@
     }
 
     @Override
-    public List<VDS> filter(List<VDS> hosts, Map<String, Object> parameters, 
List<String> messages) {
-        VM vm = (VM) parameters.get(PolicyUnitImpl.VM);
+    public List<VDS> filter(List<VDS> hosts, VM vm, Map<String, String> 
parameters, List<String> messages) {
         List<VDS> list = new ArrayList<>();
         // If Vm in Paused mode - no additional memory allocation needed
         if (vm.getStatus() == VMStatus.Paused) {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/MigrationDomainPolicyUnit.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/MigrationDomainPolicyUnit.java
index d8cb4fc..1c26c62 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/MigrationDomainPolicyUnit.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/MigrationDomainPolicyUnit.java
@@ -18,8 +18,7 @@
     }
 
     @Override
-    public List<VDS> filter(List<VDS> hosts, Map<String, Object> parameters, 
List<String> messages) {
-        VM vm = (VM) parameters.get(PolicyUnitImpl.VM);
+    public List<VDS> filter(List<VDS> hosts, VM vm, Map<String, String> 
parameters, List<String> messages) {
         List<VDS> toRemoveHostList = new ArrayList<VDS>();
         for (VDS host : hosts) {
             if ((!host.getVdsGroupId().equals(vm.getVdsGroupId())) || 
(host.getStatus() != VDSStatus.Up)) {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/MigrationPolicyUnit.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/MigrationPolicyUnit.java
index fdb457e..e6012fb 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/MigrationPolicyUnit.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/MigrationPolicyUnit.java
@@ -15,8 +15,7 @@
     }
 
     @Override
-    public List<VDS> filter(List<VDS> hosts, Map<String, Object> parameters, 
List<String> messages) {
-        VM vm = (VM) parameters.get(PolicyUnitImpl.VM);
+    public List<VDS> filter(List<VDS> hosts, VM vm, Map<String, String> 
parameters, List<String> messages) {
         if (vm.getRunOnVds() != null) {
             for (VDS host : hosts) {
                 if (host.getId().equals(vm.getRunOnVds())) {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/NetworkPolicyUnit.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/NetworkPolicyUnit.java
index 987cf0d..4cb0a00 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/NetworkPolicyUnit.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/NetworkPolicyUnit.java
@@ -30,8 +30,7 @@
     private Network displayNetwork;
 
     @Override
-    public List<VDS> filter(List<VDS> hosts, Map<String, Object> parameters, 
List<String> messages) {
-        VM vm = (VM) parameters.get(PolicyUnitImpl.VM);
+    public List<VDS> filter(List<VDS> hosts, VM vm, Map<String, String> 
parameters, List<String> messages) {
         List<VDS> toRemoveHostList = new ArrayList<VDS>();
         List<VmNetworkInterface> vmNICs;
         List<Network> clusterNetworks;
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/NonePolicyUnit.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/NonePolicyUnit.java
index fac67fb..95d2a0c 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/NonePolicyUnit.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/NonePolicyUnit.java
@@ -7,6 +7,7 @@
 import org.ovirt.engine.core.bll.scheduling.PolicyUnitImpl;
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
+import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.core.common.scheduling.PolicyUnit;
 import org.ovirt.engine.core.common.utils.Pair;
 import org.ovirt.engine.core.compat.Guid;
@@ -18,7 +19,7 @@
     }
 
     @Override
-    public List<Pair<Guid, Integer>> score(List<VDS> hosts, Map<String, 
Object> parameters) {
+    public List<Pair<Guid, Integer>> score(List<VDS> hosts, VM vm, Map<String, 
String> parameters) {
         List<Pair<Guid, Integer>> list = new ArrayList<Pair<Guid, Integer>>();
         for (VDS host : hosts) {
             list.add(new Pair<Guid, Integer>(host.getId(), 1));
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/PinToHostPolicyUnit.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/PinToHostPolicyUnit.java
index fde1948..22c8491 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/PinToHostPolicyUnit.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/PinToHostPolicyUnit.java
@@ -17,8 +17,7 @@
     }
 
     @Override
-    public List<VDS> filter(List<VDS> hosts, Map<String, Object> parameters, 
List<String> messages) {
-        VM vm = (VM) parameters.get(PolicyUnitImpl.VM);
+    public List<VDS> filter(List<VDS> hosts, VM vm, Map<String, String> 
parameters, List<String> messages) {
         if (vm.getMigrationSupport() == MigrationSupport.PINNED_TO_HOST) {
             for (VDS host : hosts) {
                 if (host.getId().equals(vm.getDedicatedVmForVds())) {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/PowerSavingPolicyUnit.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/PowerSavingPolicyUnit.java
index a5e3ddf..b8ba2aa 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/PowerSavingPolicyUnit.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/PowerSavingPolicyUnit.java
@@ -9,6 +9,7 @@
 
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
+import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.core.common.config.Config;
 import org.ovirt.engine.core.common.config.ConfigValues;
 import org.ovirt.engine.core.common.scheduling.PolicyUnit;
@@ -24,7 +25,7 @@
     }
 
     @Override
-    public List<Pair<Guid, Integer>> score(List<VDS> hosts, Map<String, 
Object> parameters) {
+    public List<Pair<Guid, Integer>> score(List<VDS> hosts, VM vm, Map<String, 
String> parameters) {
         List<Pair<Guid, Integer>> scores = new ArrayList<Pair<Guid, 
Integer>>();
         for (VDS vds : hosts) {
             scores.add(new Pair<Guid, Integer>(vds.getId(), 100 - 
vds.getUsageCpuPercent()));


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie0475218e2b66fcd48faf0b92ac2873c4b448c0e
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Gilad Chaplik <gchap...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to