Updating Partition context with min and max
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/16c49768 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/16c49768 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/16c49768 Branch: refs/heads/master Commit: 16c49768204c63cb2b52858e0f5e021b5203f112 Parents: 935faaf Author: Lahiru Sandaruwan <[email protected]> Authored: Mon Dec 1 00:40:08 2014 +0530 Committer: Lahiru Sandaruwan <[email protected]> Committed: Mon Dec 1 00:40:08 2014 +0530 ---------------------------------------------------------------------- .../partition/ClusterLevelPartitionContext.java | 22 +++++++++++++------- .../partition/GroupLevelPartitionContext.java | 4 ++-- .../context/partition/PartitionContext.java | 11 +++++----- .../ClusterLevelNetworkPartitionContext.java | 15 ++++++++++++- 4 files changed, 35 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/16c49768/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 59bedb4..19a20cb 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 @@ -86,9 +86,9 @@ public class ClusterLevelPartitionContext extends PartitionContext implements Se this.terminationPendingMembers = new ArrayList<MemberContext>(); } - public ClusterLevelPartitionContext(ChildLevelPartition childLevelPartition, Partition partition) { + public ClusterLevelPartitionContext(ChildLevelPartition childLevelPartition, Partition partition, int max) { - super(partition, childLevelPartition); + super(partition, childLevelPartition, max); this.minimumMemberCount = partition.getPartitionMin(); this.pendingMembers = new ArrayList<MemberContext>(); this.activeMembers = new ArrayList<MemberContext>(); @@ -383,7 +383,13 @@ public class ClusterLevelPartitionContext extends PartitionContext implements Se this.networkPartitionId = networkPartitionId; } - + @Override + public int getActiveInstanceCount() { + //return active cluster member count + return 0; + } + + public Map<String, MemberStatsContext> getMemberStatsContexts() { return memberStatsContexts; } @@ -581,11 +587,11 @@ public class ClusterLevelPartitionContext extends PartitionContext implements Se } - @Override - public int getCurrentElementCount() { - //TODO find and return correct member instance count - return 0; - } +// @Override +// public int getCurrentElementCount() { +// //TODO find and return correct member instance count +// return 0; +// } private class PendingMemberWatcher implements Runnable { private ClusterLevelPartitionContext ctxt; http://git-wip-us.apache.org/repos/asf/stratos/blob/16c49768/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 a648255..a53284b 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 @@ -87,8 +87,8 @@ public class GroupLevelPartitionContext extends PartitionContext implements Seri pendingInstanceExpiryTime = instanceExpiryTime; } - public GroupLevelPartitionContext(Partition partition, ChildLevelPartition childLevelPartition) { - super(partition, childLevelPartition); + public GroupLevelPartitionContext(Partition partition, ChildLevelPartition childLevelPartition, int max) { + super(partition, childLevelPartition, max); this.setPartition(partition); this.minimumInstanceCount = partition.getPartitionMin(); this.partitionId = partition.getId(); http://git-wip-us.apache.org/repos/asf/stratos/blob/16c49768/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 d9113fd..d33933a 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 @@ -31,12 +31,13 @@ import java.util.*; * */ -public class PartitionContext implements Serializable{ +public abstract class PartitionContext implements Serializable{ private static final long serialVersionUID = -2920388667345980487L; private static final Log log = LogFactory.getLog(ClusterLevelPartitionContext.class); protected String partitionId; private Partition partition; + private int max; private ChildLevelPartition childLevelPartition; private String networkPartitionId; // properties @@ -47,10 +48,11 @@ public class PartitionContext implements Serializable{ } - public PartitionContext(Partition partition, ChildLevelPartition childLevelPartition) { + public PartitionContext(Partition partition, ChildLevelPartition childLevelPartition, int max) { this.partition = partition; this.childLevelPartition = childLevelPartition; + this.max = max; } public Partition getPartition() { @@ -77,10 +79,7 @@ public class PartitionContext implements Serializable{ this.networkPartitionId = networkPartitionId; } - public int getCurrentElementCount() { - //TODO find and return correct member instance count - return 0; - } + public abstract int getActiveInstanceCount(); public ChildLevelPartition getChildLevelPartition() { return childLevelPartition; http://git-wip-us.apache.org/repos/asf/stratos/blob/16c49768/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/ClusterLevelNetworkPartitionContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/ClusterLevelNetworkPartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/ClusterLevelNetworkPartitionContext.java index 2f68b33..45dd636 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/ClusterLevelNetworkPartitionContext.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/ClusterLevelNetworkPartitionContext.java @@ -36,13 +36,18 @@ public class ClusterLevelNetworkPartitionContext extends NetworkPartitionContext private static final long serialVersionUID = 572769304374110159L; private final String id; + private final String partitionAlgorithm; + private int min; + private Map<String, ClusterInstanceContext> instanceIdToClusterInstanceContextMap; - public ClusterLevelNetworkPartitionContext(String id) { + public ClusterLevelNetworkPartitionContext(String id, String partitionAlgorithm, int min) { //super(id, partitionAlgo, partitions); this.id = id; + this.partitionAlgorithm = partitionAlgorithm; + this.min = min; setInstanceIdToClusterInstanceContextMap(new HashMap<String, ClusterInstanceContext>()); @@ -101,4 +106,12 @@ public class ClusterLevelNetworkPartitionContext extends NetworkPartitionContext public void setInstanceIdToClusterInstanceContextMap(Map<String, ClusterInstanceContext> instanceIdToClusterInstanceContextMap) { this.instanceIdToClusterInstanceContextMap = instanceIdToClusterInstanceContextMap; } + + public int getMin() { + return min; + } + + public String getPartitionAlgorithm() { + return partitionAlgorithm; + } }
