You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by la...@apache.org on 2015/04/07 18:28:03 UTC

[2/2] stratos git commit: Pass the deployment policy id as the reference to get deployment policy details from policy manager

Pass the deployment policy id as the reference to get deployment policy details from policy manager


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

Branch: refs/heads/master
Commit: 8815202740a18605f1d2bcf60ea7f434f77c4248
Parents: f704f1f
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Tue Apr 7 21:56:56 2015 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Tue Apr 7 21:56:56 2015 +0530

----------------------------------------------------------------------
 .../autoscaler/context/cluster/ClusterContext.java   |  8 +++++---
 .../context/cluster/ClusterContextFactory.java       |  6 ++++--
 .../partition/ClusterLevelPartitionContext.java      |  4 ++--
 .../partition/GroupLevelPartitionContext.java        |  4 ++--
 .../context/partition/PartitionContext.java          | 15 +++++++++------
 .../topology/AutoscalerTopologyEventReceiver.java    |  2 +-
 .../stratos/autoscaler/monitor/MonitorFactory.java   |  6 ++++--
 .../autoscaler/monitor/cluster/ClusterMonitor.java   | 11 +++++++++--
 .../autoscaler/monitor/component/GroupMonitor.java   |  3 +--
 9 files changed, 37 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/88152027/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterContext.java
index 00fb279..0fcef1c 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterContext.java
@@ -60,12 +60,15 @@ public class ClusterContext extends AbstractClusterContext {
 
     protected AutoscalePolicy autoscalePolicy;
 
+    private String deploymentPolicyId;
+
     public ClusterContext(String clusterId, String serviceId, AutoscalePolicy autoscalePolicy,
-                          boolean hasScalingDependents) {
+                          boolean hasScalingDependents, String deploymentPolicyId) {
 
         super(clusterId, serviceId);
         this.networkPartitionCtxts = new ConcurrentHashMap<String, ClusterLevelNetworkPartitionContext>();
         this.autoscalePolicy = autoscalePolicy;
+        this.deploymentPolicyId = deploymentPolicyId;
     }
 
     public Map<String, ClusterLevelNetworkPartitionContext> getNetworkPartitionCtxts() {
@@ -296,9 +299,8 @@ public class ClusterContext extends AbstractClusterContext {
 
         //Creating cluster level partition context
         ClusterLevelPartitionContext clusterLevelPartitionContext = new ClusterLevelPartitionContext(
-                maxInstances,
                 partition3,
-                clusterInstance.getNetworkPartitionId());
+                clusterInstance.getNetworkPartitionId(), this.deploymentPolicyId);
         clusterLevelPartitionContext.setServiceName(cluster.getServiceName());
         clusterLevelPartitionContext.setProperties(cluster.getProperties());
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/88152027/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterContextFactory.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterContextFactory.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterContextFactory.java
index 89f283e..6195ca5 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterContextFactory.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterContextFactory.java
@@ -31,7 +31,8 @@ public class ClusterContextFactory {
 
     private static final Log log = LogFactory.getLog(ClusterContextFactory.class);
 
-    public static ClusterContext getVMClusterContext(String instanceId, Cluster cluster, boolean hasScalingDependents)
+    public static ClusterContext getVMClusterContext(String instanceId, Cluster cluster, boolean hasScalingDependents,
+                                                     String deploymentPolicyId)
             throws PolicyValidationException, PartitionValidationException {
 
         if (null == cluster) {
@@ -45,6 +46,7 @@ public class ClusterContextFactory {
             log.debug("Autoscaler policy name: " + autoscalePolicyName);
         }
 
-        return new ClusterContext(cluster.getClusterId(), cluster.getServiceName(), autoscalePolicy, hasScalingDependents);
+        return new ClusterContext(cluster.getClusterId(), cluster.getServiceName(), autoscalePolicy, hasScalingDependents,
+                deploymentPolicyId);
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/88152027/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java
index 39affd3..0793f09 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java
@@ -128,9 +128,9 @@ public class ClusterLevelPartitionContext extends PartitionContext implements Se
         }
     }
 
-    public ClusterLevelPartitionContext(int max, Partition partition, String networkPartitionId) {
+    public ClusterLevelPartitionContext(Partition partition, String networkPartitionId, String deploymentPolicyId) {
 
-        super(max, partition, networkPartitionId);
+        super(partition, networkPartitionId, deploymentPolicyId);
         this.pendingMembers = new ArrayList<MemberContext>();
         this.activeMembers = new ArrayList<MemberContext>();
         this.terminationPendingMembers = new ArrayList<MemberContext>();

http://git-wip-us.apache.org/repos/asf/stratos/blob/88152027/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/GroupLevelPartitionContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/GroupLevelPartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/GroupLevelPartitionContext.java
index 11cbf6c..7e581cc 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/GroupLevelPartitionContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/GroupLevelPartitionContext.java
@@ -81,8 +81,8 @@ public class GroupLevelPartitionContext extends PartitionContext implements Seri
         pendingInstanceExpiryTime = instanceExpiryTime;
     }
 
-    public GroupLevelPartitionContext(int max, String partitionId, String networkPartitionIid) {
-        super(max, partitionId, networkPartitionIid);
+    public GroupLevelPartitionContext(String partitionId, String networkPartitionIid, String deploymentPolicyId) {
+        super(partitionId, networkPartitionIid, deploymentPolicyId);
         this.pendingInstances = new ArrayList<Instance>();
         this.activeInstances = new ArrayList<Instance>();
         this.terminationPendingInstances = new ArrayList<Instance>();

http://git-wip-us.apache.org/repos/asf/stratos/blob/88152027/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/PartitionContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/PartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/PartitionContext.java
index 63818ac..9849702 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/PartitionContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/PartitionContext.java
@@ -20,6 +20,7 @@ package org.apache.stratos.autoscaler.context.partition;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.autoscaler.pojo.policy.PolicyManager;
 import org.apache.stratos.common.partition.Partition;
 
 import java.io.Serializable;
@@ -36,7 +37,7 @@ public abstract class PartitionContext implements Serializable {
     private static final Log log = LogFactory.getLog(ClusterLevelPartitionContext.class);
     protected String partitionId;
     private Partition partition;
-    private int max;
+    private String deploymentPolicyId;
     private String networkPartitionId;
     // properties
     private Properties properties;
@@ -46,15 +47,15 @@ public abstract class PartitionContext implements Serializable {
 
     }
 
-    public PartitionContext(int max, Partition partition, String networkPartitionId) {
+    public PartitionContext(Partition partition, String networkPartitionId, String deploymentPolicyId) {
         this.partition = partition;
-        this.max = max;
+        this.deploymentPolicyId = deploymentPolicyId;
         this.partitionId = partition.getId();
         this.networkPartitionId = networkPartitionId;
     }
 
-    public PartitionContext(int max, String partitionId, String networkPartitionId) {
-        this.max = max;
+    public PartitionContext(String partitionId, String networkPartitionId, String deploymentPolicyId) {
+        this.deploymentPolicyId = deploymentPolicyId;
         this.partitionId = partitionId;
         this.networkPartitionId = networkPartitionId;
     }
@@ -93,6 +94,8 @@ public abstract class PartitionContext implements Serializable {
     public abstract int getNonTerminatedMemberCount();
 
     public int getMax() {
-        return max;
+        return PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId)
+                .getNetworkPartitionByNetworkPartitionId(networkPartitionId)
+                .getPartition(partitionId).getPartitionMax();
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/88152027/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
index 7c1e750..45b1b80 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
@@ -489,7 +489,7 @@ public class AutoscalerTopologyEventReceiver {
                                                                                    (ClusterContext) clusterMonitor.getClusterContext();
                                                                            if (clusterContext == null) {
                                                                                clusterContext = ClusterContextFactory.getVMClusterContext(instanceId, cluster,
-                                                                                       clusterMonitor.hasScalingDependents());
+                                                                                       clusterMonitor.hasScalingDependents(), clusterMonitor.getDeploymentPolicyId());
                                                                                clusterMonitor.setClusterContext(clusterContext);
 
                                                                            }

http://git-wip-us.apache.org/repos/asf/stratos/blob/88152027/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/MonitorFactory.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/MonitorFactory.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/MonitorFactory.java
index 12340d7..cf54a06 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/MonitorFactory.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/MonitorFactory.java
@@ -253,7 +253,8 @@ public class MonitorFactory {
 
 
             // deployment policy validation
-            String deploymentPolicyId = AutoscalerUtil.getDeploymentPolicyIdByAlias(parentMonitor.appId, AutoscalerUtil.getAliasFromClusterId(clusterId));
+            String deploymentPolicyId = AutoscalerUtil.getDeploymentPolicyIdByAlias(parentMonitor.appId,
+                    AutoscalerUtil.getAliasFromClusterId(clusterId));
             DeploymentPolicy deploymentPolicy = null;
             try {
                 deploymentPolicy = PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId);
@@ -300,7 +301,8 @@ public class MonitorFactory {
                 groupScalingEnabledSubtree = findIfChildIsInGroupScalingEnabledSubTree(groupMonitor);
             }
 
-            ClusterMonitor clusterMonitor = new ClusterMonitor(cluster, hasScalingDependents, groupScalingEnabledSubtree);
+            ClusterMonitor clusterMonitor = new ClusterMonitor(cluster, hasScalingDependents, groupScalingEnabledSubtree,
+                    deploymentPolicyId);
 
             Properties props = cluster.getProperties();
             if (props != null) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/88152027/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
index 9c18530..91a5971 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
@@ -111,9 +111,11 @@ public class ClusterMonitor extends Monitor implements Runnable {
     private Map<String, ClusterLevelNetworkPartitionContext> networkPartitionIdToClusterLevelNetworkPartitionCtxts;
     private boolean hasPrimary;
     private float scalingFactorBasedOnDependencies = 1.0f;
+    private String deploymentPolicyId;
 
 
-    public ClusterMonitor(Cluster cluster, boolean hasScalingDependents, boolean groupScalingEnabledSubtree) {
+    public ClusterMonitor(Cluster cluster, boolean hasScalingDependents, boolean groupScalingEnabledSubtree,
+                          String deploymentPolicyId) {
 
         scheduler = StratosThreadPool.getScheduledExecutorService(AutoscalerConstants.CLUSTER_MONITOR_SCHEDULER_ID, 50);
         int threadPoolSize = Integer.getInteger(AutoscalerConstants.CLUSTER_MONITOR_THREAD_POOL_SIZE, 50);
@@ -143,6 +145,7 @@ public class ClusterMonitor extends Monitor implements Runnable {
         this.clusterId = cluster.getClusterId();
         this.monitoringStarted = new AtomicBoolean(false);
         this.hasScalingDependents = hasScalingDependents;
+        this.deploymentPolicyId = deploymentPolicyId;
     }
 
     @Override
@@ -1419,7 +1422,7 @@ public class ClusterMonitor extends Monitor implements Runnable {
                 ClusterContext clusterContext = (ClusterContext) this.getClusterContext();
                 if (clusterContext == null) {
                     clusterContext = ClusterContextFactory.getVMClusterContext(clusterInstance.getInstanceId(), cluster,
-                            hasScalingDependents());
+                            hasScalingDependents(), this.deploymentPolicyId);
                     this.setClusterContext(clusterContext);
                 }
 
@@ -1502,4 +1505,8 @@ public class ClusterMonitor extends Monitor implements Runnable {
             }
         }
     }
+
+    public String getDeploymentPolicyId() {
+        return deploymentPolicyId;
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/88152027/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
index 1166519..77b1e36 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
@@ -633,8 +633,7 @@ public class GroupMonitor extends ParentComponentMonitor {
                             if (networkPartitionContext.getPartitionCtxt(partition.getId()) == null) {
 
                                 GroupLevelPartitionContext groupLevelPartitionContext = new GroupLevelPartitionContext(
-                                        networkPartition.getPartition(partition.getId()).getPartitionMax()
-                                        , partition.getId(), networkPartitionId);
+                                        partition.getId(), networkPartitionId, deploymentPolicyId);
 
                                 childPartitionContexts.add(groupLevelPartitionContext);
                                 networkPartitionContext.addPartitionContext(groupLevelPartitionContext);