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:02 UTC

[1/2] stratos git commit: Fix deployment policy update bug

Repository: stratos
Updated Branches:
  refs/heads/master 0baeff0af -> 881520274


Fix deployment policy update bug


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

Branch: refs/heads/master
Commit: f704f1f6f06833be653ba5e8f35af72045ba4857
Parents: 0baeff0
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Tue Apr 7 21:29:28 2015 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Tue Apr 7 21:29:28 2015 +0530

----------------------------------------------------------------------
 .../org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/f704f1f6/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java
index 08bae7a..ad22936 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java
@@ -187,7 +187,7 @@ public class PolicyManager {
     }
 
     public void updateDeploymentPolicyInInformationModel(DeploymentPolicy deploymentPolicy) throws InvalidPolicyException {
-        if (autoscalePolicyListMap.containsKey(deploymentPolicy.getDeploymentPolicyID())) {
+        if (deploymentPolicyListMap.containsKey(deploymentPolicy.getDeploymentPolicyID())) {
             if (log.isDebugEnabled()) {
                 log.debug("Updating deployment policy: " + deploymentPolicy.getDeploymentPolicyID());
             }


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

Posted by la...@apache.org.
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);