Updated Branches:
  refs/heads/planner_reserve fe8cd8de2 -> e0ad98047

Fixing issues while testing VM deployment.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/e0ad9804
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/e0ad9804
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/e0ad9804

Branch: refs/heads/planner_reserve
Commit: e0ad9804749f661ab48523bb62cd34e39edd480e
Parents: fe8cd8d
Author: Prachi Damle <[email protected]>
Authored: Wed May 1 14:34:33 2013 -0700
Committer: Prachi Damle <[email protected]>
Committed: Wed May 1 14:34:33 2013 -0700

----------------------------------------------------------------------
 client/tomcatconf/applicationContext.xml.in        |    4 +-
 .../deploy/DeploymentPlanningManagerImpl.java      |   39 ++++++++++-----
 2 files changed, 28 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e0ad9804/client/tomcatconf/applicationContext.xml.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/applicationContext.xml.in 
b/client/tomcatconf/applicationContext.xml.in
index a341f33..81d8efa 100644
--- a/client/tomcatconf/applicationContext.xml.in
+++ b/client/tomcatconf/applicationContext.xml.in
@@ -615,8 +615,6 @@
 
   <bean id="FirstFitPlanner" class="com.cloud.deploy.FirstFitPlanner">
     <property name="name" value="FirstFitPlanner"/>
-    <property name="StoragePoolAllocators" 
value="#{storagePoolAllocators.Adapters}" />
-    <property name="HostAllocators" value="#{hostAllocators.Adapters}" />
   </bean>
   
   <bean id="resourceManagerImpl" 
class="com.cloud.resource.ResourceManagerImpl" >
@@ -835,6 +833,8 @@
   <bean id="DeploymentPlanningManager" 
class="com.cloud.deploy.DeploymentPlanningManagerImpl">
     <property name="Planners" value="#{deploymentPlanners.Adapters}" />
        <property name="AffinityGroupProcessors" 
value="#{affinityProcessors.Adapters}" />
+    <property name="StoragePoolAllocators" 
value="#{storagePoolAllocators.Adapters}" />
+    <property name="HostAllocators" value="#{hostAllocators.Adapters}" />
   </bean>
   
   <bean id="AffinityGroupJoinDaoImpl" 
class="com.cloud.api.query.dao.AffinityGroupJoinDaoImpl">

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e0ad9804/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java 
b/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java
index e380adc..4a78783 100644
--- a/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java
+++ b/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java
@@ -362,12 +362,7 @@ public class DeploymentPlanningManagerImpl extends 
ManagerBase implements Deploy
                                     avoids.getPodsToAvoid(), 
avoids.getClustersToAvoid(), avoids.getHostsToAvoid(),
                                     avoids.getPoolsToAvoid());
 
-                            
PlannerAvoidOutput.getDataCentersToAvoid().removeAll(PlannerAvoidInput.getDataCentersToAvoid());
-                            
PlannerAvoidOutput.getPodsToAvoid().removeAll(PlannerAvoidInput.getPodsToAvoid());
-                            
PlannerAvoidOutput.getClustersToAvoid().removeAll(PlannerAvoidInput.getClustersToAvoid());
-                            
PlannerAvoidOutput.getHostsToAvoid().removeAll(PlannerAvoidInput.getHostsToAvoid());
-                            
PlannerAvoidOutput.getPoolsToAvoid().removeAll(PlannerAvoidInput.getPoolsToAvoid());
-
+                            resetAvoidSet(PlannerAvoidOutput, 
PlannerAvoidInput);
 
                             dest = checkClustersforDestination(clusterList, 
vmProfile, plan, avoids, dc,
                                     getPlannerUsage(planner), 
PlannerAvoidOutput);
@@ -375,11 +370,7 @@ public class DeploymentPlanningManagerImpl extends 
ManagerBase implements Deploy
                                 return dest;
                             }
                             // reset the avoid input to the planners
-                            
avoids.getDataCentersToAvoid().removeAll(PlannerAvoidOutput.getDataCentersToAvoid());
-                            
avoids.getPodsToAvoid().removeAll(PlannerAvoidOutput.getPodsToAvoid());
-                            
avoids.getClustersToAvoid().removeAll(PlannerAvoidOutput.getClustersToAvoid());
-                            
avoids.getHostsToAvoid().removeAll(PlannerAvoidOutput.getHostsToAvoid());
-                            
avoids.getPoolsToAvoid().removeAll(PlannerAvoidOutput.getPoolsToAvoid());
+                            resetAvoidSet(avoids, PlannerAvoidOutput);
 
                         } else {
                             return null;
@@ -408,6 +399,24 @@ public class DeploymentPlanningManagerImpl extends 
ManagerBase implements Deploy
         return dest;
     }
 
+    private void resetAvoidSet(ExcludeList avoidSet, ExcludeList removeSet) {
+        if (avoidSet.getDataCentersToAvoid() != null && 
removeSet.getDataCentersToAvoid() != null) {
+            
avoidSet.getDataCentersToAvoid().removeAll(removeSet.getDataCentersToAvoid());
+        }
+        if (avoidSet.getPodsToAvoid() != null && removeSet.getPodsToAvoid() != 
null) {
+            avoidSet.getPodsToAvoid().removeAll(removeSet.getPodsToAvoid());
+        }
+        if (avoidSet.getClustersToAvoid() != null && 
removeSet.getClustersToAvoid() != null) {
+            
avoidSet.getClustersToAvoid().removeAll(removeSet.getClustersToAvoid());
+        }
+        if (avoidSet.getHostsToAvoid() != null && removeSet.getHostsToAvoid() 
!= null) {
+            avoidSet.getHostsToAvoid().removeAll(removeSet.getHostsToAvoid());
+        }
+        if (avoidSet.getPoolsToAvoid() != null && removeSet.getPoolsToAvoid() 
!= null) {
+            avoidSet.getPoolsToAvoid().removeAll(removeSet.getPoolsToAvoid());
+        }
+    }
+
     private PlannerResourceUsage getPlannerUsage(DeploymentPlanner planner) {
         if (planner instanceof DeploymentClusterPlanner) {
             return ((DeploymentClusterPlanner) planner).getResourceUsage();
@@ -619,8 +628,12 @@ public class DeploymentPlanningManagerImpl extends 
ManagerBase implements Deploy
 
         // remove any hosts/pools that the planners might have added
         // to get the list of hosts/pools that Allocators flagged as 'avoid'
-        
allocatorAvoidOutput.getHostsToAvoid().removeAll(plannerAvoidOutput.getHostsToAvoid());
-        
allocatorAvoidOutput.getPoolsToAvoid().removeAll(plannerAvoidOutput.getPoolsToAvoid());
+        if (allocatorAvoidOutput.getHostsToAvoid() != null && 
plannerAvoidOutput.getHostsToAvoid() != null) {
+            
allocatorAvoidOutput.getHostsToAvoid().removeAll(plannerAvoidOutput.getHostsToAvoid());
+        }
+        if (allocatorAvoidOutput.getPoolsToAvoid() != null && 
plannerAvoidOutput.getPoolsToAvoid() != null) {
+            
allocatorAvoidOutput.getPoolsToAvoid().removeAll(plannerAvoidOutput.getPoolsToAvoid());
+        }
 
         // if all hosts or all pools in the cluster are in avoid set after this
         // pass, then put the cluster in avoid set.

Reply via email to