Repository: stratos Updated Branches: refs/heads/master ccce60dac -> 87bb6ea25
fixing cluster instance creation issue and updating min and max for cluster instance Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/87bb6ea2 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/87bb6ea2 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/87bb6ea2 Branch: refs/heads/master Commit: 87bb6ea2522f0f63b0ffe2b9898543887840cbb7 Parents: ccce60d Author: reka <[email protected]> Authored: Tue Dec 2 12:13:20 2014 +0530 Committer: reka <[email protected]> Committed: Tue Dec 2 12:13:33 2014 +0530 ---------------------------------------------------------------------- .../context/cluster/ClusterContextFactory.java | 4 ---- .../context/cluster/ClusterInstanceContext.java | 21 ++++++++++++++++---- .../context/cluster/VMClusterContext.java | 13 ++++++++++++ .../AutoscalerTopologyEventReceiver.java | 4 ++-- 4 files changed, 32 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/87bb6ea2/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 02773e0..76614f9 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 @@ -65,11 +65,7 @@ public class ClusterContextFactory { DeploymentPolicy deploymentPolicy; ApplicationHolder.acquireReadLock(); try { - Application application = ApplicationHolder.getApplications(). - getApplication(cluster.getAppId()); deploymentPolicy = PolicyManager.getInstance().getDeploymentPolicy(cluster.getAppId()); - ChildPolicy policy = deploymentPolicy. - getChildPolicy(AutoscalerUtil.getAliasFromClusterId(cluster.getClusterId())); } finally { ApplicationHolder.releaseReadLock(); } http://git-wip-us.apache.org/repos/asf/stratos/blob/87bb6ea2/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterInstanceContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterInstanceContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterInstanceContext.java index 0c4bf58..1f7ff85 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterInstanceContext.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterInstanceContext.java @@ -62,7 +62,8 @@ public class ClusterInstanceContext extends InstanceContext { private int minInstanceCount = 0, maxInstanceCount = 0; private int requiredInstanceCountBasedOnStats; private int requiredInstanceCountBasedOnDependencies; - private int min; + private int minMembers; + private int maxMembers; //details required for partition selection algorithms private int currentPartitionIndex; private ChildLevelPartition[] partitions; @@ -71,7 +72,7 @@ public class ClusterInstanceContext extends InstanceContext { int min) { super(clusterInstanceId); - this.min = min; + this.setMinMembers(min); if (partitions == null) { this.partitions = new ChildLevelPartition[0]; } else { @@ -434,7 +435,19 @@ public class ClusterInstanceContext extends InstanceContext { } - public int getMin() { - return min; + public int getMinMembers() { + return minMembers; + } + + public int getMaxMembers() { + return maxMembers; + } + + public void setMaxMembers(int maxMembers) { + this.maxMembers = maxMembers; + } + + public void setMinMembers(int minMembers) { + this.minMembers = minMembers; } } http://git-wip-us.apache.org/repos/asf/stratos/blob/87bb6ea2/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/VMClusterContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/VMClusterContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/VMClusterContext.java index 3ad1050..8cae493 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/VMClusterContext.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/VMClusterContext.java @@ -20,6 +20,7 @@ package org.apache.stratos.autoscaler.context.cluster; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.stratos.autoscaler.applications.ApplicationHolder; import org.apache.stratos.autoscaler.client.CloudControllerClient; import org.apache.stratos.autoscaler.context.member.MemberStatsContext; import org.apache.stratos.autoscaler.context.partition.ClusterLevelPartitionContext; @@ -34,6 +35,8 @@ import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Ch import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition; import org.apache.stratos.autoscaler.util.AutoscalerUtil; import org.apache.stratos.cloud.controller.stub.domain.MemberContext; +import org.apache.stratos.messaging.domain.applications.Application; +import org.apache.stratos.messaging.domain.applications.ClusterDataHolder; import org.apache.stratos.messaging.domain.instance.ClusterInstance; import org.apache.stratos.messaging.domain.topology.Cluster; import org.apache.stratos.messaging.domain.topology.Member; @@ -271,6 +274,16 @@ public class VMClusterContext extends AbstractClusterContext { ClusterInstanceContext clusterInstanceContext = clusterLevelNetworkPartitionContext. getClusterInstanceContext(clusterInstance.getInstanceId()); + ApplicationHolder.acquireReadLock(); + try { + Application application = ApplicationHolder.getApplications(). + getApplication(cluster.getAppId()); + ClusterDataHolder dataHolder = application.getClusterData(AutoscalerUtil.getAliasFromClusterId(clusterId)); + clusterInstanceContext.setMinMembers(dataHolder.getMinInstances()); + clusterInstanceContext.setMaxMembers(dataHolder.getMaxInstances()); + } finally { + ApplicationHolder.releaseReadLock(); + } if (clusterInstanceContext == null) { clusterInstanceContext = new ClusterInstanceContext(clusterInstance.getInstanceId(), networkPartition.getPartitionAlgo(), http://git-wip-us.apache.org/repos/asf/stratos/blob/87bb6ea2/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 9ed5b03..f54654b 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 @@ -476,9 +476,9 @@ public class AutoscalerTopologyEventReceiver implements Runnable { ClusterContextFactory. getVMClusterContext(instanceId, cluster)); - } else { - clusterContext.addInstanceContext(instanceId, cluster); } + clusterContext.addInstanceContext(instanceId, cluster); + } if (clusterMonitor.hasMonitoringStarted().compareAndSet(false, true)) {
