Merging parent and cluster level networkPartitionContext to networkPartitionContext
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/f1e5488e Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/f1e5488e Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/f1e5488e Branch: refs/heads/master Commit: f1e5488e59cb74d36e7657e013e1b8abae5f1da8 Parents: 0f2b3c7 Author: reka <[email protected]> Authored: Mon Jul 27 15:15:56 2015 +0530 Committer: reka <[email protected]> Committed: Wed Jul 29 16:11:07 2015 +0530 ---------------------------------------------------------------------- .../applications/topic/ApplicationBuilder.java | 11 +- .../context/cluster/ClusterContext.java | 34 +- .../ClusterLevelNetworkPartitionContext.java | 92 ---- .../network/NetworkPartitionContext.java | 328 +++++++++++++- .../ParentLevelNetworkPartitionContext.java | 437 ------------------- .../monitor/cluster/ClusterMonitor.java | 23 +- .../monitor/component/ApplicationMonitor.java | 22 +- .../monitor/component/GroupMonitor.java | 56 ++- .../component/ParentComponentMonitor.java | 5 +- .../autoscaler/rule/RuleTasksDelegator.java | 5 +- .../services/impl/AutoscalerServiceImpl.java | 13 +- .../cluster/ClusterStatusActiveProcessor.java | 4 +- .../cluster/ClusterStatusInactiveProcessor.java | 4 +- .../ClusterStatusTerminatedProcessor.java | 4 +- .../stratos/autoscaler/util/AutoscalerUtil.java | 8 +- 15 files changed, 411 insertions(+), 635 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java index 5b5ec90..686e158 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java @@ -25,7 +25,6 @@ import org.apache.stratos.autoscaler.applications.pojo.ApplicationClusterContext import org.apache.stratos.autoscaler.applications.pojo.ApplicationContext; import org.apache.stratos.autoscaler.client.AutoscalerCloudControllerClient; import org.apache.stratos.autoscaler.context.AutoscalerContext; -import org.apache.stratos.autoscaler.context.partition.network.ParentLevelNetworkPartitionContext; import org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext; import org.apache.stratos.autoscaler.event.publisher.ClusterStatusEventPublisher; import org.apache.stratos.autoscaler.monitor.Monitor; @@ -428,8 +427,8 @@ public class ApplicationBuilder { monitor1.destroy(); } } - org.apache.stratos.autoscaler.context.partition.network.ParentLevelNetworkPartitionContext networkPartitionContext = - (org.apache.stratos.autoscaler.context.partition.network.ParentLevelNetworkPartitionContext) monitor. + org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext networkPartitionContext = + (org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext) monitor. getNetworkPartitionContext(groupInstance.getNetworkPartitionId()); networkPartitionContext.removeInstanceContext(instanceId); if (groupInstance.getPartitionId() != null) { @@ -659,7 +658,7 @@ public class ApplicationBuilder { ApplicationMonitor applicationMonitor = AutoscalerContext.getInstance().getAppMonitor(appId); if (applicationMonitor != null) { - ParentLevelNetworkPartitionContext context = (ParentLevelNetworkPartitionContext) + NetworkPartitionContext context = (NetworkPartitionContext) applicationMonitor.getNetworkPartitionContext(networkPartitionId); if (status == ApplicationStatus.Active) { if (log.isDebugEnabled()) { @@ -700,8 +699,8 @@ public class ApplicationBuilder { String instanceId, String parentInstanceId) { GroupMonitor monitor = getGroupMonitor(appId, groupId); if (monitor != null) { - org.apache.stratos.autoscaler.context.partition.network.ParentLevelNetworkPartitionContext context - = (org.apache.stratos.autoscaler.context.partition.network.ParentLevelNetworkPartitionContext) monitor.getNetworkPartitionContext(networkPartitionId); + org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext context + = (org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext) monitor.getNetworkPartitionContext(networkPartitionId); if (status == GroupStatus.Active) { if (log.isDebugEnabled()) { log.debug("Moving pending group instance to active list in [group] " + groupId http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/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 f7f2fc6..235b7b7 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 @@ -23,7 +23,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.stratos.autoscaler.applications.ApplicationHolder; import org.apache.stratos.autoscaler.context.member.MemberStatsContext; import org.apache.stratos.autoscaler.context.partition.ClusterLevelPartitionContext; -import org.apache.stratos.autoscaler.context.partition.network.ClusterLevelNetworkPartitionContext; +import org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext; import org.apache.stratos.autoscaler.exception.AutoScalerException; import org.apache.stratos.autoscaler.exception.partition.PartitionValidationException; import org.apache.stratos.autoscaler.exception.policy.PolicyValidationException; @@ -56,7 +56,7 @@ public class ClusterContext extends AbstractClusterContext { private static final Log log = LogFactory.getLog(ClusterContext.class); // Map<NetworkpartitionId, Network Partition Context> - protected Map<String, ClusterLevelNetworkPartitionContext> networkPartitionCtxts; + protected Map<String, NetworkPartitionContext> networkPartitionCtxts; private String autoscalingPolicyId; @@ -66,12 +66,12 @@ public class ClusterContext extends AbstractClusterContext { boolean hasScalingDependents, String deploymentPolicyId) { super(clusterId, serviceId); - this.networkPartitionCtxts = new ConcurrentHashMap<String, ClusterLevelNetworkPartitionContext>(); + this.networkPartitionCtxts = new ConcurrentHashMap<String, NetworkPartitionContext>(); this.autoscalingPolicyId = autoscalingPolicyId; this.deploymentPolicyId = deploymentPolicyId; } - public Map<String, ClusterLevelNetworkPartitionContext> getNetworkPartitionCtxts() { + public Map<String, NetworkPartitionContext> getNetworkPartitionCtxts() { return networkPartitionCtxts; } @@ -79,11 +79,11 @@ public class ClusterContext extends AbstractClusterContext { return PolicyManager.getInstance().getAutoscalePolicy(autoscalingPolicyId); } - public ClusterLevelNetworkPartitionContext getNetworkPartitionCtxt(String networkPartitionId) { + public NetworkPartitionContext getNetworkPartitionCtxt(String networkPartitionId) { return networkPartitionCtxts.get(networkPartitionId); } - public void setPartitionCtxt(Map<String, ClusterLevelNetworkPartitionContext> partitionCtxt) { + public void setPartitionCtxt(Map<String, NetworkPartitionContext> partitionCtxt) { this.networkPartitionCtxts = partitionCtxt; } @@ -91,15 +91,15 @@ public class ClusterContext extends AbstractClusterContext { return networkPartitionCtxts.containsKey(partitionId); } - public void addNetworkPartitionCtxt(ClusterLevelNetworkPartitionContext ctxt) { + public void addNetworkPartitionCtxt(NetworkPartitionContext ctxt) { this.networkPartitionCtxts.put(ctxt.getId(), ctxt); } - public ClusterLevelNetworkPartitionContext getPartitionCtxt(String id) { + public NetworkPartitionContext getPartitionCtxt(String id) { return this.networkPartitionCtxts.get(id); } - public ClusterLevelNetworkPartitionContext getNetworkPartitionCtxt(Member member) { + public NetworkPartitionContext getNetworkPartitionCtxt(Member member) { String networkPartitionId = member.getNetworkPartitionId(); if (networkPartitionCtxts.containsKey(networkPartitionId)) { @@ -112,7 +112,7 @@ public class ClusterContext extends AbstractClusterContext { public void addInstanceContext(String instanceId, Cluster cluster, boolean hasScalingDependents, boolean groupScalingEnabledSubtree) throws PolicyValidationException, PartitionValidationException { - ClusterLevelNetworkPartitionContext networkPartitionContext = null; + NetworkPartitionContext networkPartitionContext = null; ClusterInstance clusterInstance = cluster.getInstanceContexts(instanceId); String deploymentPolicyName = AutoscalerUtil.getDeploymentPolicyIdByAlias(cluster.getAppId(), @@ -137,11 +137,11 @@ public class ClusterContext extends AbstractClusterContext { if (networkPartition == null) { //Parent should have the partition specified - networkPartitionContext = new ClusterLevelNetworkPartitionContext( + networkPartitionContext = new NetworkPartitionContext( clusterInstance.getNetworkPartitionId()); } else { - networkPartitionContext = new ClusterLevelNetworkPartitionContext(networkPartition.getId(), - networkPartition.getPartitionAlgo(), 0); + networkPartitionContext = new NetworkPartitionContext(networkPartition.getId(), + networkPartition.getPartitionAlgo()); } } @@ -167,10 +167,10 @@ public class ClusterContext extends AbstractClusterContext { } - private ClusterLevelNetworkPartitionContext parseDeploymentPolicy( + private NetworkPartitionContext parseDeploymentPolicy( ClusterInstance clusterInstance, Cluster cluster, - ClusterLevelNetworkPartitionContext clusterLevelNetworkPartitionContext, + NetworkPartitionContext clusterLevelNetworkPartitionContext, boolean hasGroupScalingDependent, boolean groupScalingEnabledSubtree) throws PolicyValidationException, PartitionValidationException { @@ -224,10 +224,10 @@ public class ClusterContext extends AbstractClusterContext { return clusterLevelNetworkPartitionContext; } - private ClusterLevelNetworkPartitionContext addPartition( + private NetworkPartitionContext addPartition( ClusterInstance clusterInstance, Cluster cluster, - ClusterLevelNetworkPartitionContext clusterLevelNetworkPartitionContext, + NetworkPartitionContext clusterLevelNetworkPartitionContext, PartitionRef partition, boolean hasScalingDependents, boolean groupScalingEnabledSubtree) throws PolicyValidationException, PartitionValidationException { http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/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 deleted file mode 100644 index 6ea75fe..0000000 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/ClusterLevelNetworkPartitionContext.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.stratos.autoscaler.context.partition.network; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.io.Serializable; - -/** - * Holds runtime data of a network partition. - */ -public class ClusterLevelNetworkPartitionContext extends NetworkPartitionContext implements Serializable { - - private static final Log log = LogFactory.getLog(ClusterLevelNetworkPartitionContext.class); - private static final long serialVersionUID = 572769304374110159L; - - private String partitionAlgorithm; - private int min; - - public ClusterLevelNetworkPartitionContext(String id, String partitionAlgorithm, int min) { - super(id); - this.partitionAlgorithm = partitionAlgorithm; - this.min = min; - - } - - public ClusterLevelNetworkPartitionContext(String id) { - super(id); - } - - - public int hashCode() { - - final int prime = 31; - int result = 1; - result = prime * result + ((this.getId() == null) ? 0 : this.getId().hashCode()); - return result; - - } - - public boolean equals(final Object obj) { - - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (!(obj instanceof ClusterLevelNetworkPartitionContext)) { - return false; - } - final ClusterLevelNetworkPartitionContext other = (ClusterLevelNetworkPartitionContext) obj; - if (this.getId() == null) { - if (other.getId() != null) { - return false; - } - } else if (!this.getId().equals(other.getId())) { - return false; - } - return true; - } - - - public String getId() { - return super.getId(); - } - - public int getMin() { - return min; - } - - public String getPartitionAlgorithm() { - return partitionAlgorithm; - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/NetworkPartitionContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/NetworkPartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/NetworkPartitionContext.java index 4335f01..b92032e 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/NetworkPartitionContext.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/NetworkPartitionContext.java @@ -21,6 +21,7 @@ package org.apache.stratos.autoscaler.context.partition.network; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.autoscaler.context.InstanceContext; +import org.apache.stratos.autoscaler.context.partition.GroupLevelPartitionContext; import java.util.*; import java.util.concurrent.ConcurrentHashMap; @@ -28,18 +29,325 @@ import java.util.concurrent.ConcurrentHashMap; /** * This will keep track of network partition level information. */ -public abstract class NetworkPartitionContext { +public class NetworkPartitionContext { private static final Log log = LogFactory.getLog(NetworkPartitionContext.class); //id of the network partition context - protected final String id; + private String id; //group instances kept inside a partition - protected Map<String, InstanceContext> instanceIdToInstanceContextMap; - private int pendingMembersFailureCount = 0; + private Map<String, InstanceContext> instanceIdToInstanceContextMap; + //network partition level min and max + private int minInstanceCount = 0, maxInstanceCount = 0; + //active instances + private List<InstanceContext> activeInstances; + //pending instances + private List<InstanceContext> pendingInstances; + //terminating pending instances + private List<InstanceContext> terminatingPending; + //partition algorithm + private String partitionAlgorithm; + //partition min + private int min; - protected NetworkPartitionContext(String id) { + //Group level partition contexts + private List<GroupLevelPartitionContext> partitionContexts; + + public NetworkPartitionContext(String id, String partitionAlgo) { + this.id = id; + this.partitionAlgorithm = partitionAlgo; + partitionContexts = new ArrayList<GroupLevelPartitionContext>(); + pendingInstances = new ArrayList<InstanceContext>(); + activeInstances = new ArrayList<InstanceContext>(); + terminatingPending = new ArrayList<InstanceContext>(); + + } + + public NetworkPartitionContext(String id) { this.id = id; - instanceIdToInstanceContextMap = new ConcurrentHashMap<String, InstanceContext>(); + partitionContexts = new ArrayList<GroupLevelPartitionContext>(); + pendingInstances = new ArrayList<InstanceContext>(); + activeInstances = new ArrayList<InstanceContext>(); + terminatingPending = new ArrayList<InstanceContext>(); + } + + + public int getMinInstanceCount() { + return minInstanceCount; + } + + public void setMinInstanceCount(int minInstanceCount) { + this.minInstanceCount = minInstanceCount; + } + + public int getMaxInstanceCount() { + return maxInstanceCount; + } + + public void setMaxInstanceCount(int maxInstanceCount) { + this.maxInstanceCount = maxInstanceCount; + } + + public int hashCode() { + + final int prime = 31; + int result = 1; + result = prime * result + ((id == null) ? 0 : id.hashCode()); + return result; + + } + + public boolean equals(final Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + return true; + } + + @Override + public String toString() { + return "NetworkPartitionContext [id=" + id + "partitionAlgorithm=" + partitionAlgorithm + ", minInstanceCount=" + + minInstanceCount + ", maxInstanceCount=" + maxInstanceCount + "]"; + } + + + public String getPartitionAlgorithm() { + return partitionAlgorithm; + } + + public List<InstanceContext> getInstanceIdToInstanceContextMap(String parentInstanceId) { + List<InstanceContext> instanceContexts = new ArrayList<InstanceContext>(); + for(InstanceContext instanceContext : instanceIdToInstanceContextMap.values()) { + if(instanceContext.getParentInstanceId().equals(parentInstanceId)) { + instanceContexts.add(instanceContext); + } + } + return instanceContexts; + } + + public List<GroupLevelPartitionContext> getPartitionCtxts() { + + return partitionContexts; + } + + public GroupLevelPartitionContext getPartitionCtxt(String partitionId) { + + for (GroupLevelPartitionContext partitionContext : partitionContexts) { + if (partitionContext.getPartitionId().equals(partitionId)) { + return partitionContext; + } + } + return null; + } + + public void addPartitionContext(GroupLevelPartitionContext partitionContext) { + partitionContexts.add(partitionContext); + } + + + public GroupLevelPartitionContext getPartitionContextById(String partitionId) { + for (GroupLevelPartitionContext partitionContext : partitionContexts) { + if (partitionContext.getPartitionId().equals(partitionId)) { + return partitionContext; + } + } + return null; + } + + public List<InstanceContext> getActiveInstances(String parentInstanceId) { + List<InstanceContext> instanceContexts = new ArrayList<InstanceContext>(); + for(InstanceContext instanceContext : activeInstances) { + if(instanceContext.getParentInstanceId().equals(parentInstanceId)) { + instanceContexts.add(instanceContext); + } + } + return instanceContexts; + } + + public List<InstanceContext> getPendingInstances(String parentInstanceId) { + List<InstanceContext> instanceContexts = new ArrayList<InstanceContext>(); + for(InstanceContext instanceContext : pendingInstances) { + if(instanceContext.getParentInstanceId().equals(parentInstanceId)) { + instanceContexts.add(instanceContext); + } + } + return instanceContexts; + } + + public void addPendingInstance(InstanceContext context) { + this.pendingInstances.add(context); + } + + public int getPendingInstancesCount() { + return this.pendingInstances.size(); + } + + public int getPendingInstancesCount(String parentInstanceId) { + List<InstanceContext> instanceContexts = new ArrayList<InstanceContext>(); + for(InstanceContext instanceContext : pendingInstances) { + if(instanceContext.getParentInstanceId().equals(parentInstanceId)) { + instanceContexts.add(instanceContext); + } + } + return instanceContexts.size(); + } + + + public int getActiveInstancesCount() { + return this.activeInstances.size(); + } + + public int getActiveInstancesCount(String parentInstanceId) { + List<InstanceContext> instanceContexts = new ArrayList<InstanceContext>(); + for(InstanceContext instanceContext : activeInstances) { + if(instanceContext.getParentInstanceId().equals(parentInstanceId)) { + instanceContexts.add(instanceContext); + } + } + return instanceContexts.size(); + } + + public InstanceContext getActiveInstance(String instanceId) { + for (InstanceContext instanceContext : activeInstances) { + if (instanceId.equals(instanceContext.getId())) { + return instanceContext; + } + } + return null; + } + + public InstanceContext getPendingInstance(String instanceId) { + for (InstanceContext instanceContext : pendingInstances) { + if (instanceId.equals(instanceContext.getId())) { + return instanceContext; + } + } + return null; + } + + + public void movePendingInstanceToActiveInstances(String instanceId) { + if (instanceId == null) { + return; + } + synchronized (pendingInstances) { + Iterator<InstanceContext> iterator = pendingInstances.listIterator(); + while (iterator.hasNext()) { + InstanceContext pendingInstance = iterator.next(); + if (pendingInstance == null) { + iterator.remove(); + continue; + } + if (instanceId.equals(pendingInstance.getId())) { + // member is activated + // remove from pending list + iterator.remove(); + // add to the activated list + this.activeInstances.add(pendingInstance); + if (log.isDebugEnabled()) { + log.debug(String.format("Pending instance is removed and added to the " + + "activated instance list. [Instance Id] %s", instanceId)); + } + break; + } + } + } + } + + public void moveActiveInstanceToTerminationPendingInstances(String instanceId) { + if (instanceId == null) { + return; + } + synchronized (activeInstances) { + Iterator<InstanceContext> iterator = activeInstances.listIterator(); + while (iterator.hasNext()) { + InstanceContext activeInstance = iterator.next(); + if (activeInstance == null) { + iterator.remove(); + continue; + } + if (instanceId.equals(activeInstance.getId())) { + // member is activated + // remove from pending list + iterator.remove(); + // add to the activated list + this.terminatingPending.add(activeInstance); + if (log.isDebugEnabled()) { + log.debug(String.format("Active instance is removed and added to the " + + "termination pending instance list. [Instance Id] %s", instanceId)); + } + break; + } + } + } + } + + public void movePendingInstanceToTerminationPendingInstances(String instanceId) { + if (instanceId == null) { + return; + } + synchronized (pendingInstances) { + Iterator<InstanceContext> iterator = pendingInstances.listIterator(); + while (iterator.hasNext()) { + InstanceContext pendingInstance = iterator.next(); + if (pendingInstance == null) { + iterator.remove(); + continue; + } + if (instanceId.equals(pendingInstance.getId())) { + // member is activated + // remove from pending list + iterator.remove(); + // add to the activated list + this.terminatingPending.add(pendingInstance); + if (log.isDebugEnabled()) { + log.debug(String.format("Pending instance is removed and added to the " + + "termination pending instance list. [Instance Id] %s", instanceId)); + } + break; + } + } + } + } + + public int getNonTerminatedInstancesCount() { + return this.activeInstances.size() + this.pendingInstances.size(); + } + + public int getNonTerminatedInstancesCount(String parentInstanceId) { + List<InstanceContext> instanceContexts = new ArrayList<InstanceContext>(); + + for(InstanceContext instanceContext : activeInstances) { + if(instanceContext.getParentInstanceId().equals(parentInstanceId)) { + instanceContexts.add(instanceContext); + } + } + + for(InstanceContext instanceContext : pendingInstances) { + if(instanceContext.getParentInstanceId().equals(parentInstanceId)) { + instanceContexts.add(instanceContext); + } + } + return instanceContexts.size(); + } + + public boolean removeTerminationPendingInstance(String instanceId) { + if (id == null) { + return false; + } + synchronized (pendingInstances) { + for (Iterator<InstanceContext> iterator = pendingInstances.iterator(); iterator.hasNext(); ) { + InstanceContext pendingInstance = iterator.next(); + if (id.equals(pendingInstance.getId())) { + iterator.remove(); + return true; + } + + } + } + return false; } public String getId() { @@ -70,4 +378,12 @@ public abstract class NetworkPartitionContext { public boolean containsInstanceContext(String instanceId) { return this.instanceIdToInstanceContextMap.containsKey(instanceId); } + + public int getMin() { + return min; + } + + public void setMin(int min) { + this.min = min; + } } http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/ParentLevelNetworkPartitionContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/ParentLevelNetworkPartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/ParentLevelNetworkPartitionContext.java deleted file mode 100644 index 3367e7a..0000000 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/network/ParentLevelNetworkPartitionContext.java +++ /dev/null @@ -1,437 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.stratos.autoscaler.context.partition.network; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.stratos.autoscaler.context.InstanceContext; -import org.apache.stratos.autoscaler.context.partition.GroupLevelPartitionContext; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -/** - * Holds runtime data of a network partition. - */ -public class ParentLevelNetworkPartitionContext extends NetworkPartitionContext implements Serializable { - private static final Log log = LogFactory.getLog(ParentLevelNetworkPartitionContext.class); - private int scaleDownRequestsCount = 0; - - private int minInstanceCount = 0, maxInstanceCount = 0; - private int requiredInstanceCountBasedOnStats; - private int requiredInstanceCountBasedOnDependencies; - - //active instances - private List<InstanceContext> activeInstances; - //pending instances - private List<InstanceContext> pendingInstances; - //terminating pending instances - private List<InstanceContext> terminatingPending; - private String partitionAlgorithm; - - //Group level partition contexts - private List<GroupLevelPartitionContext> partitionContexts; - - //details required for partition selection algorithms - private int currentPartitionIndex; - - - public ParentLevelNetworkPartitionContext(String id, String partitionAlgo) { - super(id); - this.partitionAlgorithm = partitionAlgo; - partitionContexts = new ArrayList<GroupLevelPartitionContext>(); - requiredInstanceCountBasedOnStats = minInstanceCount; - requiredInstanceCountBasedOnDependencies = minInstanceCount; - pendingInstances = new ArrayList<InstanceContext>(); - activeInstances = new ArrayList<InstanceContext>(); - terminatingPending = new ArrayList<InstanceContext>(); - - } - - public ParentLevelNetworkPartitionContext(String id) { - super(id); - partitionContexts = new ArrayList<GroupLevelPartitionContext>(); - requiredInstanceCountBasedOnStats = minInstanceCount; - requiredInstanceCountBasedOnDependencies = minInstanceCount; - pendingInstances = new ArrayList<InstanceContext>(); - activeInstances = new ArrayList<InstanceContext>(); - terminatingPending = new ArrayList<InstanceContext>(); - } - - - public int getMinInstanceCount() { - return minInstanceCount; - } - - public void setMinInstanceCount(int minInstanceCount) { - this.minInstanceCount = minInstanceCount; - } - - public int getMaxInstanceCount() { - return maxInstanceCount; - } - - public void setMaxInstanceCount(int maxInstanceCount) { - this.maxInstanceCount = maxInstanceCount; - } - - public int hashCode() { - - final int prime = 31; - int result = 1; - result = prime * result + ((super.getId() == null) ? 0 : super.getId().hashCode()); - return result; - - } - - public boolean equals(final Object obj) { - - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (!(obj instanceof ParentLevelNetworkPartitionContext)) { - return false; - } - final ParentLevelNetworkPartitionContext other = (ParentLevelNetworkPartitionContext) obj; - if (super.getId() == null) { - if (super.getId() != null) { - return false; - } - } else if (!super.getId().equals(super.getId())) { - return false; - } - return true; - } - - @Override - public String toString() { - return "NetworkPartitionContext [id=" + super.getId() + "partitionAlgorithm=" + partitionAlgorithm + ", minInstanceCount=" + - minInstanceCount + ", maxInstanceCount=" + maxInstanceCount + "]"; - } - - public int getCurrentPartitionIndex() { - return currentPartitionIndex; - } - - public void setCurrentPartitionIndex(int currentPartitionIndex) { - this.currentPartitionIndex = currentPartitionIndex; - } - - public String getId() { - return super.getId(); - } - - - public String getPartitionAlgorithm() { - return partitionAlgorithm; - } - - public int getScaleDownRequestsCount() { - return scaleDownRequestsCount; - } - - public void resetScaleDownRequestsCount() { - this.scaleDownRequestsCount = 0; - } - - public void increaseScaleDownRequestsCount() { - this.scaleDownRequestsCount += 1; - } - - public float getRequiredInstanceCountBasedOnStats() { - return requiredInstanceCountBasedOnStats; - } - - public void setRequiredInstanceCountBasedOnStats(int requiredInstanceCountBasedOnStats) { - this.requiredInstanceCountBasedOnStats = requiredInstanceCountBasedOnStats; - } - - public List<InstanceContext> getInstanceIdToInstanceContextMap(String parentInstanceId) { - List<InstanceContext> instanceContexts = new ArrayList<InstanceContext>(); - for(InstanceContext instanceContext : instanceIdToInstanceContextMap.values()) { - if(instanceContext.getParentInstanceId().equals(parentInstanceId)) { - instanceContexts.add(instanceContext); - } - } - return instanceContexts; - } - - public int getRequiredInstanceCountBasedOnDependencies() { - return requiredInstanceCountBasedOnDependencies; - } - - public void setRequiredInstanceCountBasedOnDependencies(int requiredInstanceCountBasedOnDependencies) { - this.requiredInstanceCountBasedOnDependencies = requiredInstanceCountBasedOnDependencies; - } - - public List<GroupLevelPartitionContext> getPartitionCtxts() { - - return partitionContexts; - } - - public GroupLevelPartitionContext getPartitionCtxt(String partitionId) { - - for (GroupLevelPartitionContext partitionContext : partitionContexts) { - if (partitionContext.getPartitionId().equals(partitionId)) { - return partitionContext; - } - } - return null; - } - - public void addPartitionContext(GroupLevelPartitionContext partitionContext) { - partitionContexts.add(partitionContext); - } - - - public GroupLevelPartitionContext getPartitionContextById(String partitionId) { - for (GroupLevelPartitionContext partitionContext : partitionContexts) { - if (partitionContext.getPartitionId().equals(partitionId)) { - return partitionContext; - } - } - return null; - } - - public List<InstanceContext> getActiveInstances() { - return activeInstances; - } - - public List<InstanceContext> getActiveInstances(String parentInstanceId) { - List<InstanceContext> instanceContexts = new ArrayList<InstanceContext>(); - for(InstanceContext instanceContext : activeInstances) { - if(instanceContext.getParentInstanceId().equals(parentInstanceId)) { - instanceContexts.add(instanceContext); - } - } - return instanceContexts; - } - - public void setActiveInstances(List<InstanceContext> activeInstances) { - this.activeInstances = activeInstances; - } - - public List<InstanceContext> getPendingInstances() { - return pendingInstances; - } - - public List<InstanceContext> getPendingInstances(String parentInstanceId) { - List<InstanceContext> instanceContexts = new ArrayList<InstanceContext>(); - for(InstanceContext instanceContext : pendingInstances) { - if(instanceContext.getParentInstanceId().equals(parentInstanceId)) { - instanceContexts.add(instanceContext); - } - } - return instanceContexts; - } - - public void setPendingInstances(List<InstanceContext> pendingInstances) { - this.pendingInstances = pendingInstances; - } - - public void addPendingInstance(InstanceContext context) { - this.pendingInstances.add(context); - } - - public int getPendingInstancesCount() { - return this.pendingInstances.size(); - } - - public int getPendingInstancesCount(String parentInstanceId) { - List<InstanceContext> instanceContexts = new ArrayList<InstanceContext>(); - for(InstanceContext instanceContext : pendingInstances) { - if(instanceContext.getParentInstanceId().equals(parentInstanceId)) { - instanceContexts.add(instanceContext); - } - } - return instanceContexts.size(); - } - - - public int getActiveInstancesCount() { - return this.activeInstances.size(); - } - - public int getActiveInstancesCount(String parentInstanceId) { - List<InstanceContext> instanceContexts = new ArrayList<InstanceContext>(); - for(InstanceContext instanceContext : activeInstances) { - if(instanceContext.getParentInstanceId().equals(parentInstanceId)) { - instanceContexts.add(instanceContext); - } - } - return instanceContexts.size(); - } - - public InstanceContext getActiveInstance(String instanceId) { - for (InstanceContext instanceContext : activeInstances) { - if (instanceId.equals(instanceContext.getId())) { - return instanceContext; - } - } - return null; - } - - public InstanceContext getPendingInstance(String instanceId) { - for (InstanceContext instanceContext : pendingInstances) { - if (instanceId.equals(instanceContext.getId())) { - return instanceContext; - } - } - return null; - } - - - public void movePendingInstanceToActiveInstances(String instanceId) { - if (instanceId == null) { - return; - } - synchronized (pendingInstances) { - Iterator<InstanceContext> iterator = pendingInstances.listIterator(); - while (iterator.hasNext()) { - InstanceContext pendingInstance = iterator.next(); - if (pendingInstance == null) { - iterator.remove(); - continue; - } - if (instanceId.equals(pendingInstance.getId())) { - // member is activated - // remove from pending list - iterator.remove(); - // add to the activated list - this.activeInstances.add(pendingInstance); - if (log.isDebugEnabled()) { - log.debug(String.format("Pending instance is removed and added to the " + - "activated instance list. [Instance Id] %s", instanceId)); - } - break; - } - } - } - } - - public void moveActiveInstanceToTerminationPendingInstances(String instanceId) { - if (instanceId == null) { - return; - } - synchronized (activeInstances) { - Iterator<InstanceContext> iterator = activeInstances.listIterator(); - while (iterator.hasNext()) { - InstanceContext activeInstance = iterator.next(); - if (activeInstance == null) { - iterator.remove(); - continue; - } - if (instanceId.equals(activeInstance.getId())) { - // member is activated - // remove from pending list - iterator.remove(); - // add to the activated list - this.terminatingPending.add(activeInstance); - if (log.isDebugEnabled()) { - log.debug(String.format("Active instance is removed and added to the " + - "termination pending instance list. [Instance Id] %s", instanceId)); - } - break; - } - } - } - } - - public void movePendingInstanceToTerminationPendingInstances(String instanceId) { - if (instanceId == null) { - return; - } - synchronized (pendingInstances) { - Iterator<InstanceContext> iterator = pendingInstances.listIterator(); - while (iterator.hasNext()) { - InstanceContext pendingInstance = iterator.next(); - if (pendingInstance == null) { - iterator.remove(); - continue; - } - if (instanceId.equals(pendingInstance.getId())) { - // member is activated - // remove from pending list - iterator.remove(); - // add to the activated list - this.terminatingPending.add(pendingInstance); - if (log.isDebugEnabled()) { - log.debug(String.format("Pending instance is removed and added to the " + - "termination pending instance list. [Instance Id] %s", instanceId)); - } - break; - } - } - } - } - - public int getNonTerminatedInstancesCount() { - return this.activeInstances.size() + this.pendingInstances.size(); - } - - public int getNonTerminatedInstancesCount(String parentInstanceId) { - List<InstanceContext> instanceContexts = new ArrayList<InstanceContext>(); - - for(InstanceContext instanceContext : activeInstances) { - if(instanceContext.getParentInstanceId().equals(parentInstanceId)) { - instanceContexts.add(instanceContext); - } - } - - for(InstanceContext instanceContext : pendingInstances) { - if(instanceContext.getParentInstanceId().equals(parentInstanceId)) { - instanceContexts.add(instanceContext); - } - } - return instanceContexts.size(); - } - - public List<InstanceContext> getTerminatingPending() { - return terminatingPending; - } - - public void setTerminatingPending(List<InstanceContext> terminatingPending) { - this.terminatingPending = terminatingPending; - } - - public boolean removeTerminationPendingInstance(String instanceId) { - if (id == null) { - return false; - } - synchronized (pendingInstances) { - for (Iterator<InstanceContext> iterator = pendingInstances.iterator(); iterator.hasNext(); ) { - InstanceContext pendingInstance = iterator.next(); - if (id.equals(pendingInstance.getId())) { - iterator.remove(); - return true; - } - - } - } - return false; - } - - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/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 4303f26..b9b6050 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 @@ -29,7 +29,6 @@ import org.apache.stratos.autoscaler.context.cluster.ClusterContextFactory; import org.apache.stratos.autoscaler.context.cluster.ClusterInstanceContext; import org.apache.stratos.autoscaler.context.member.MemberStatsContext; import org.apache.stratos.autoscaler.context.partition.ClusterLevelPartitionContext; -import org.apache.stratos.autoscaler.context.partition.network.ClusterLevelNetworkPartitionContext; import org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext; import org.apache.stratos.autoscaler.event.publisher.ClusterStatusEventPublisher; import org.apache.stratos.autoscaler.event.publisher.InstanceNotificationPublisher; @@ -332,7 +331,7 @@ public class ClusterMonitor extends Monitor { public synchronized void monitor() { try { - for (ClusterLevelNetworkPartitionContext networkPartitionContext : getNetworkPartitionCtxts()) { + for (NetworkPartitionContext networkPartitionContext : getNetworkPartitionCtxts()) { final Collection<InstanceContext> clusterInstanceContexts = networkPartitionContext. getInstanceIdToInstanceContextMap().values(); @@ -825,7 +824,7 @@ public class ClusterMonitor extends Monitor { clusterId, clusterInstanceId, networkPartitionId, value)); } if (clusterInstanceId.equals(StratosConstants.NOT_DEFINED)) { - ClusterLevelNetworkPartitionContext networkPartitionContext = getNetworkPartitionContext(networkPartitionId); + NetworkPartitionContext networkPartitionContext = getNetworkPartitionContext(networkPartitionId); if (null != networkPartitionContext) { int totalActiveMemberCount = 0; for (InstanceContext clusterInstanceContext : @@ -880,7 +879,7 @@ public class ClusterMonitor extends Monitor { } if (clusterInstanceId.equals(StratosConstants.NOT_DEFINED)) { - ClusterLevelNetworkPartitionContext networkPartitionContext = getNetworkPartitionContext(networkPartitionId); + NetworkPartitionContext networkPartitionContext = getNetworkPartitionContext(networkPartitionId); if (null != networkPartitionContext) { int totalActiveMemberCount = 0; for (InstanceContext clusterInstanceContext : networkPartitionContext @@ -933,7 +932,7 @@ public class ClusterMonitor extends Monitor { } if (clusterInstanceId.equals(StratosConstants.NOT_DEFINED)) { - ClusterLevelNetworkPartitionContext networkPartitionContext = getNetworkPartitionContext(networkPartitionId); + NetworkPartitionContext networkPartitionContext = getNetworkPartitionContext(networkPartitionId); if (null != networkPartitionContext) { int totalActiveMemberCount = 0; for (InstanceContext clusterInstanceContext : networkPartitionContext @@ -1482,18 +1481,18 @@ public class ClusterMonitor extends Monitor { } - public Map<String, ClusterLevelNetworkPartitionContext> getAllNetworkPartitionCtxts() { + public Map<String, NetworkPartitionContext> getAllNetworkPartitionCtxts() { return (this.clusterContext).getNetworkPartitionCtxts(); } public ClusterInstanceContext getClusterInstanceContext(String networkPartitionId, String instanceId) { Map<String, - ClusterLevelNetworkPartitionContext> clusterLevelNetworkPartitionContextMap = + NetworkPartitionContext> clusterLevelNetworkPartitionContextMap = (this.clusterContext).getNetworkPartitionCtxts(); if (StringUtils.isBlank(networkPartitionId)) { throw new RuntimeException("Network partition id is null"); } - ClusterLevelNetworkPartitionContext networkPartitionContext = + NetworkPartitionContext networkPartitionContext = clusterLevelNetworkPartitionContextMap.get(networkPartitionId); if (networkPartitionContext == null) { throw new RuntimeException("Network partition context not found: [network-partition-id] " + @@ -1503,14 +1502,14 @@ public class ClusterMonitor extends Monitor { return (ClusterInstanceContext) networkPartitionContext.getInstanceContext(instanceId); } - public ClusterLevelNetworkPartitionContext getNetworkPartitionContext(String networkPartitionId) { + public NetworkPartitionContext getNetworkPartitionContext(String networkPartitionId) { Map<String, - ClusterLevelNetworkPartitionContext> clusterLevelNetworkPartitionContextMap = + NetworkPartitionContext> clusterLevelNetworkPartitionContextMap = (this.clusterContext).getNetworkPartitionCtxts(); if (StringUtils.isBlank(networkPartitionId)) { throw new RuntimeException("Network partition id is null"); } - ClusterLevelNetworkPartitionContext networkPartitionContext = + NetworkPartitionContext networkPartitionContext = clusterLevelNetworkPartitionContextMap.get(networkPartitionId); if (networkPartitionContext == null) { throw new RuntimeException("Network partition context not found: [network-partition-id] " + @@ -1520,7 +1519,7 @@ public class ClusterMonitor extends Monitor { return networkPartitionContext; } - public Collection<ClusterLevelNetworkPartitionContext> getNetworkPartitionCtxts() { + public Collection<NetworkPartitionContext> getNetworkPartitionCtxts() { return (this.clusterContext).getNetworkPartitionCtxts().values(); } http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java index 1f815cd..af00873 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java @@ -30,7 +30,6 @@ import org.apache.stratos.autoscaler.context.AutoscalerContext; import org.apache.stratos.autoscaler.context.InstanceContext; import org.apache.stratos.autoscaler.context.application.ApplicationInstanceContext; import org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext; -import org.apache.stratos.autoscaler.context.partition.network.ParentLevelNetworkPartitionContext; import org.apache.stratos.autoscaler.exception.application.DependencyBuilderException; import org.apache.stratos.autoscaler.exception.application.MonitorNotFoundException; import org.apache.stratos.autoscaler.exception.application.TopologyInConsistentException; @@ -48,7 +47,6 @@ import org.apache.stratos.messaging.domain.application.Application; import org.apache.stratos.messaging.domain.application.ApplicationStatus; import org.apache.stratos.messaging.domain.application.GroupStatus; import org.apache.stratos.messaging.domain.instance.ApplicationInstance; -import org.apache.stratos.messaging.domain.instance.Instance; import org.apache.stratos.messaging.domain.topology.ClusterStatus; import org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleState; @@ -169,7 +167,7 @@ public class ApplicationMonitor extends ParentComponentMonitor { private void handleScalingMaxOut(InstanceContext instanceContext, NetworkPartitionContext networkPartitionContext) { - if (((ParentLevelNetworkPartitionContext) networkPartitionContext).getPendingInstancesCount() == 0) { + if (((NetworkPartitionContext) networkPartitionContext).getPendingInstancesCount() == 0) { //handling the application bursting only when there are no pending instances found try { if (log.isInfoEnabled()) { @@ -311,8 +309,8 @@ public class ApplicationMonitor extends ParentComponentMonitor { log.info("Detected a newly updated [network-partition] " + networkPartitionId + " for [application] " + appId + ". Hence new application instance " + "creation is going to start now!"); - ParentLevelNetworkPartitionContext context = - new ParentLevelNetworkPartitionContext(networkPartitionId); + NetworkPartitionContext context = + new NetworkPartitionContext(networkPartitionId); //If application instances found in the ApplicationsTopology, // then have to add them first before creating new one ApplicationInstance appInstance = (ApplicationInstance) application. @@ -547,8 +545,8 @@ public class ApplicationMonitor extends ParentComponentMonitor { } for (String networkPartitionIds : nextNetworkPartitions) { - ParentLevelNetworkPartitionContext context = - new ParentLevelNetworkPartitionContext(networkPartitionIds); + NetworkPartitionContext context = + new NetworkPartitionContext(networkPartitionIds); //If application instances found in the ApplicationsTopology, // then have to add them first before creating new one ApplicationInstance appInstance = (ApplicationInstance) application. @@ -575,8 +573,8 @@ public class ApplicationMonitor extends ParentComponentMonitor { Map<String, ApplicationInstance> instanceMap = application.getInstanceIdToInstanceContextMap(); for (ApplicationInstance instance : instanceMap.values()) { if (!instanceIds.contains(instance.getInstanceId())) { - ParentLevelNetworkPartitionContext context = - new ParentLevelNetworkPartitionContext(instance.getNetworkPartitionId()); + NetworkPartitionContext context = + new NetworkPartitionContext(instance.getNetworkPartitionId()); //If application instances found in the ApplicationsTopology, // then have to add them first before creating new one ApplicationInstance appInstance = (ApplicationInstance) application. @@ -610,7 +608,7 @@ public class ApplicationMonitor extends ParentComponentMonitor { * @return instance Id */ private String handleApplicationInstanceCreation(Application application, - ParentLevelNetworkPartitionContext context, + NetworkPartitionContext context, ApplicationInstance instanceExist) { ApplicationInstance instance; ApplicationInstanceContext instanceContext; @@ -703,8 +701,8 @@ public class ApplicationMonitor extends ParentComponentMonitor { for (String networkPartitionId : nextNetworkPartitions) { if (!this.getNetworkPartitionContextsMap().containsKey(networkPartitionId)) { String instanceId; - ParentLevelNetworkPartitionContext context = new - ParentLevelNetworkPartitionContext(networkPartitionId); + NetworkPartitionContext context = new + NetworkPartitionContext(networkPartitionId); ApplicationInstance appInstance = (ApplicationInstance) application. getInstanceByNetworkPartitionId(context.getId()); http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/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 9224997..ee519a6 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 @@ -22,7 +22,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.autoscaler.algorithms.PartitionAlgorithm; import org.apache.stratos.autoscaler.applications.ApplicationHolder; -import org.apache.stratos.autoscaler.applications.dependency.context.ApplicationChildContext; import org.apache.stratos.autoscaler.applications.topic.ApplicationBuilder; import org.apache.stratos.autoscaler.context.AutoscalerContext; import org.apache.stratos.autoscaler.context.InstanceContext; @@ -30,7 +29,6 @@ import org.apache.stratos.autoscaler.context.group.GroupInstanceContext; import org.apache.stratos.autoscaler.context.partition.GroupLevelPartitionContext; import org.apache.stratos.autoscaler.context.partition.PartitionContext; import org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext; -import org.apache.stratos.autoscaler.context.partition.network.ParentLevelNetworkPartitionContext; import org.apache.stratos.autoscaler.exception.application.DependencyBuilderException; import org.apache.stratos.autoscaler.exception.application.MonitorNotFoundException; import org.apache.stratos.autoscaler.exception.application.TopologyInConsistentException; @@ -156,8 +154,8 @@ public class GroupMonitor extends ParentComponentMonitor { } } - ParentLevelNetworkPartitionContext parentNetworkPartitionContext - = (ParentLevelNetworkPartitionContext) networkPartitionContext; + NetworkPartitionContext parentNetworkPartitionContext + = (NetworkPartitionContext) networkPartitionContext; Collection<Instance> parentInstances = parent.getInstances(); for (Instance parentInstance : parentInstances) { @@ -180,7 +178,7 @@ public class GroupMonitor extends ParentComponentMonitor { //keep on scale-up/scale-down only if the application is active ApplicationMonitor appMonitor = AutoscalerContext.getInstance(). getAppMonitor(appId); - int activeAppInstances = ((ParentLevelNetworkPartitionContext) appMonitor. + int activeAppInstances = ((NetworkPartitionContext) appMonitor. getNetworkPartitionContext(parentNetworkPartitionContext.getId())). getActiveInstancesCount(); if (activeAppInstances > 0) { @@ -200,7 +198,7 @@ public class GroupMonitor extends ParentComponentMonitor { if (activeInstances > maxInstances) { int instancesToBeTerminated = activeInstances - maxInstances; List<InstanceContext> contexts = - ((ParentLevelNetworkPartitionContext) networkPartitionContext). + ((NetworkPartitionContext) networkPartitionContext). getInstanceIdToInstanceContextMap(parentInstance.getInstanceId()); List<InstanceContext> contextList = new ArrayList<InstanceContext>(contexts); for (int i = 0; i < instancesToBeTerminated; i++) { @@ -265,8 +263,8 @@ public class GroupMonitor extends ParentComponentMonitor { // if it is a force scale-down if (allChildrenScaleDown || forceScaleDown) { if (hasScalingDependents) { - ParentLevelNetworkPartitionContext parentLevelNetworkPartitionContext - = (ParentLevelNetworkPartitionContext) nwPartitionContext; + NetworkPartitionContext parentLevelNetworkPartitionContext + = (NetworkPartitionContext) nwPartitionContext; if (parentLevelNetworkPartitionContext.getNonTerminatedInstancesCount() > parentLevelNetworkPartitionContext.getMinInstanceCount()) { //Will scale down based on dependent manner @@ -286,8 +284,8 @@ public class GroupMonitor extends ParentComponentMonitor { } else { if (groupScalingEnabled) { - ParentLevelNetworkPartitionContext parentLevelNetworkPartitionContext - = (ParentLevelNetworkPartitionContext) nwPartitionContext; + NetworkPartitionContext parentLevelNetworkPartitionContext + = (NetworkPartitionContext) nwPartitionContext; if (parentLevelNetworkPartitionContext.getNonTerminatedInstancesCount() > parentLevelNetworkPartitionContext.getMinInstanceCount()) { //send terminating to the specific group instance in the scale down @@ -316,7 +314,7 @@ public class GroupMonitor extends ParentComponentMonitor { private void createGroupInstanceOnScaling(final NetworkPartitionContext networkPartitionContext, final String parentInstanceId) { if (groupScalingEnabled) { - if (((ParentLevelNetworkPartitionContext) networkPartitionContext). + if (((NetworkPartitionContext) networkPartitionContext). getPendingInstancesCount(parentInstanceId) == 0) { //one of the child is loaded and max out. // Hence creating new group instance @@ -373,15 +371,15 @@ public class GroupMonitor extends ParentComponentMonitor { log.debug("This [Group] " + id + " [scale-up] dependencies. " + "Hence notifying the [parent] " + parent.getId()); } - ParentLevelNetworkPartitionContext parentLevelNetworkPartitionContext - = (ParentLevelNetworkPartitionContext) networkPartitionContext; + NetworkPartitionContext parentLevelNetworkPartitionContext + = (NetworkPartitionContext) networkPartitionContext; //notifying the parent when scale dependents found int maxInstances = parentLevelNetworkPartitionContext.getMaxInstanceCount(); if (groupScalingEnabled && maxInstances > parentLevelNetworkPartitionContext. getNonTerminatedInstancesCount()) { //increase group by one more instance and calculate the factor for the group scaling // and notify parent to scale all the dependent in parallel with this factor - float minInstances = ((ParentLevelNetworkPartitionContext) + float minInstances = ((NetworkPartitionContext) networkPartitionContext).getMinInstanceCount(); float factor = (minInstances + 1) / minInstances; @@ -611,8 +609,8 @@ public class GroupMonitor extends ParentComponentMonitor { get(networkPartitionId); float factor = scalingEvent.getFactor(); - ParentLevelNetworkPartitionContext parentLevelNetworkPartitionContext - = (ParentLevelNetworkPartitionContext) networkPartitionContext; + NetworkPartitionContext parentLevelNetworkPartitionContext + = (NetworkPartitionContext) networkPartitionContext; int currentInstances = parentLevelNetworkPartitionContext. getNonTerminatedInstancesCount(parentInstanceId); float requiredInstances = factor * parentLevelNetworkPartitionContext.getMinInstanceCount(); @@ -684,16 +682,16 @@ public class GroupMonitor extends ParentComponentMonitor { * @param parentInstanceContext the parent instance context * @return the group level network partition context */ - private ParentLevelNetworkPartitionContext getGroupLevelNetworkPartitionContext(String groupAlias, + private NetworkPartitionContext getGroupLevelNetworkPartitionContext(String groupAlias, String appId, Instance parentInstanceContext) { - ParentLevelNetworkPartitionContext parentLevelNetworkPartitionContext; + NetworkPartitionContext parentLevelNetworkPartitionContext; String deploymentPolicyId = AutoscalerUtil.getDeploymentPolicyIdByAlias(appId, groupAlias); DeploymentPolicy deploymentPolicy = PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId); String networkPartitionId = parentInstanceContext.getNetworkPartitionId(); if (this.getNetworkPartitionContextsMap().containsKey(networkPartitionId)) { - parentLevelNetworkPartitionContext = (ParentLevelNetworkPartitionContext) this.getNetworkPartitionContextsMap(). + parentLevelNetworkPartitionContext = (NetworkPartitionContext) this.getNetworkPartitionContextsMap(). get(networkPartitionId); } else { if (deploymentPolicy != null) { @@ -706,16 +704,16 @@ public class GroupMonitor extends ParentComponentMonitor { } if (networkPartition != null) { - parentLevelNetworkPartitionContext = new ParentLevelNetworkPartitionContext( + parentLevelNetworkPartitionContext = new NetworkPartitionContext( networkPartitionId, networkPartition.getPartitionAlgo()); } else { - parentLevelNetworkPartitionContext = new ParentLevelNetworkPartitionContext( + parentLevelNetworkPartitionContext = new NetworkPartitionContext( networkPartitionId); } } else { - parentLevelNetworkPartitionContext = new ParentLevelNetworkPartitionContext( + parentLevelNetworkPartitionContext = new NetworkPartitionContext( networkPartitionId); } if (log.isInfoEnabled()) { @@ -736,7 +734,7 @@ public class GroupMonitor extends ParentComponentMonitor { * @param groupAlias alias of the group */ private void addPartitionContext(Instance parentInstanceContext, - ParentLevelNetworkPartitionContext networkPartitionContext, String groupAlias) { + NetworkPartitionContext networkPartitionContext, String groupAlias) { String networkPartitionId = parentInstanceContext.getNetworkPartitionId(); @@ -799,7 +797,7 @@ public class GroupMonitor extends ParentComponentMonitor { */ private String createGroupInstanceAndAddToMonitor(Group group, Instance parentInstanceContext, PartitionContext partitionContext, - ParentLevelNetworkPartitionContext parentLevelNetworkPartitionContext, + NetworkPartitionContext parentLevelNetworkPartitionContext, GroupInstance groupInstance) { String partitionId = null; @@ -856,7 +854,7 @@ public class GroupMonitor extends ParentComponentMonitor { Instance parentInstanceContext = getParentInstanceContext(parentInstanceId); // Get existing or create new GroupLevelNetworkPartitionContext - ParentLevelNetworkPartitionContext parentLevelNetworkPartitionContext = + NetworkPartitionContext parentLevelNetworkPartitionContext = getGroupLevelNetworkPartitionContext(group.getUniqueIdentifier(), this.appId, parentInstanceContext); //adding the partitionContext to the network partition context @@ -921,7 +919,7 @@ public class GroupMonitor extends ParentComponentMonitor { * @return the partition-context */ private PartitionContext getPartitionContext( - ParentLevelNetworkPartitionContext parentLevelNetworkPartitionContext, + NetworkPartitionContext parentLevelNetworkPartitionContext, String parentPartitionId) { PartitionContext partitionContext = null; // Get partitionContext to create instance in @@ -962,7 +960,7 @@ public class GroupMonitor extends ParentComponentMonitor { " in order to satisfy the demand on scaling for " + "[parent-instance] " + parentInstanceId); // Get existing or create new GroupLevelNetworkPartitionContext - ParentLevelNetworkPartitionContext parentLevelNetworkPartitionContext = + NetworkPartitionContext parentLevelNetworkPartitionContext = getGroupLevelNetworkPartitionContext(group.getUniqueIdentifier(), this.appId, parentInstanceContext); //adding the partitionContext to the network partition context @@ -1061,7 +1059,7 @@ public class GroupMonitor extends ParentComponentMonitor { * * @param parentLevelNetworkPartitionContext the group level network partition context */ - public void addNetworkPartitionContext(ParentLevelNetworkPartitionContext + public void addNetworkPartitionContext(NetworkPartitionContext parentLevelNetworkPartitionContext) { this.getNetworkPartitionContextsMap().put(parentLevelNetworkPartitionContext.getId(), parentLevelNetworkPartitionContext); @@ -1087,7 +1085,7 @@ public class GroupMonitor extends ParentComponentMonitor { + id + " upon termination of an group instance for [parent-instance] " + parentInstanceId); // Get existing or create new GroupLevelNetworkPartitionContext - ParentLevelNetworkPartitionContext parentLevelNetworkPartitionContext = + NetworkPartitionContext parentLevelNetworkPartitionContext = getGroupLevelNetworkPartitionContext(group.getUniqueIdentifier(), this.appId, parentInstanceContext); http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java index ef61fa2..e033f93 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java @@ -29,7 +29,6 @@ import org.apache.stratos.autoscaler.applications.dependency.DependencyTree; import org.apache.stratos.autoscaler.applications.dependency.context.ApplicationChildContext; import org.apache.stratos.autoscaler.applications.topic.ApplicationBuilder; import org.apache.stratos.autoscaler.context.InstanceContext; -import org.apache.stratos.autoscaler.context.partition.network.ParentLevelNetworkPartitionContext; import org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext; import org.apache.stratos.autoscaler.event.publisher.ClusterStatusEventPublisher; import org.apache.stratos.autoscaler.exception.application.DependencyBuilderException; @@ -671,8 +670,8 @@ public abstract class ParentComponentMonitor extends Monitor { } if (!groupInstances.isEmpty()) { - ParentLevelNetworkPartitionContext networkPartitionContext = - (ParentLevelNetworkPartitionContext) ((GroupMonitor) monitor). + NetworkPartitionContext networkPartitionContext = + (NetworkPartitionContext) ((GroupMonitor) monitor). getNetworkPartitionContextsMap().get(networkPartitionId); int minInstances = networkPartitionContext.getMinInstanceCount(); //if terminated all the instances in this instances map should be in terminated state http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java index 51443a1..87d71a7 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java @@ -32,11 +32,10 @@ import org.apache.stratos.autoscaler.context.cluster.ClusterContext; import org.apache.stratos.autoscaler.context.cluster.ClusterInstanceContext; import org.apache.stratos.autoscaler.context.member.MemberStatsContext; import org.apache.stratos.autoscaler.context.partition.ClusterLevelPartitionContext; -import org.apache.stratos.autoscaler.context.partition.network.ClusterLevelNetworkPartitionContext; +import org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext; import org.apache.stratos.autoscaler.event.publisher.InstanceNotificationPublisher; import org.apache.stratos.autoscaler.monitor.cluster.ClusterMonitor; import org.apache.stratos.cloud.controller.stub.domain.MemberContext; -import org.apache.stratos.common.client.CloudControllerServiceClient; import org.apache.stratos.common.constants.StratosConstants; /** @@ -186,7 +185,7 @@ public class RuleTasksDelegator { int minimumCountOfNetworkPartition; ClusterMonitor clusterMonitor = AutoscalerContext.getInstance().getClusterMonitor(clusterId); ClusterContext clusterContext = clusterMonitor.getClusterContext(); - ClusterLevelNetworkPartitionContext clusterLevelNetworkPartitionContext = + NetworkPartitionContext clusterLevelNetworkPartitionContext = clusterContext.getNetworkPartitionCtxt(nwPartitionId); ClusterInstanceContext clusterInstanceContext = (ClusterInstanceContext) clusterLevelNetworkPartitionContext. http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java index 9e52e61..c3bb2c7 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java @@ -25,7 +25,6 @@ import org.apache.stratos.autoscaler.algorithms.networkpartition.NetworkPartitio import org.apache.stratos.autoscaler.applications.ApplicationHolder; import org.apache.stratos.autoscaler.applications.parser.ApplicationParser; import org.apache.stratos.autoscaler.applications.parser.DefaultApplicationParser; -import org.apache.stratos.autoscaler.applications.pojo.*; import org.apache.stratos.autoscaler.applications.pojo.ApplicationClusterContext; import org.apache.stratos.autoscaler.applications.pojo.ApplicationContext; import org.apache.stratos.autoscaler.applications.pojo.ArtifactRepositoryContext; @@ -39,7 +38,7 @@ import org.apache.stratos.autoscaler.context.AutoscalerContext; import org.apache.stratos.autoscaler.context.InstanceContext; import org.apache.stratos.autoscaler.context.cluster.ClusterInstanceContext; import org.apache.stratos.autoscaler.context.partition.ClusterLevelPartitionContext; -import org.apache.stratos.autoscaler.context.partition.network.ClusterLevelNetworkPartitionContext; +import org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext; import org.apache.stratos.autoscaler.event.publisher.ClusterStatusEventPublisher; import org.apache.stratos.autoscaler.exception.*; import org.apache.stratos.autoscaler.exception.application.ApplicationDefinitionException; @@ -57,7 +56,6 @@ import org.apache.stratos.autoscaler.pojo.policy.deployment.ApplicationPolicy; import org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy; import org.apache.stratos.autoscaler.registry.RegistryManager; import org.apache.stratos.autoscaler.services.AutoscalerService; -import org.apache.stratos.autoscaler.stub.pojo.*; import org.apache.stratos.autoscaler.util.AutoscalerUtil; import org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidCartridgeTypeExceptionException; import org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidPartitionExceptionException; @@ -1132,7 +1130,7 @@ public class AutoscalerServiceImpl implements AutoscalerService { //Following if statement checks the relevant clusters for the updated deployment policy if (deploymentPolicy.getDeploymentPolicyID().equals(clusterMonitor.getDeploymentPolicyId())) { for (NetworkPartitionRef networkPartition : deploymentPolicy.getNetworkPartitionRefs()) { - ClusterLevelNetworkPartitionContext clusterLevelNetworkPartitionContext + NetworkPartitionContext clusterLevelNetworkPartitionContext = clusterMonitor.getClusterContext().getNetworkPartitionCtxt(networkPartition.getId()); if(clusterLevelNetworkPartitionContext != null) { try { @@ -1165,7 +1163,7 @@ public class AutoscalerServiceImpl implements AutoscalerService { } } - private void removeOldPartitionsFromClusterMonitor(ClusterLevelNetworkPartitionContext clusterLevelNetworkPartitionContext, + private void removeOldPartitionsFromClusterMonitor(NetworkPartitionContext clusterLevelNetworkPartitionContext, NetworkPartitionRef networkPartition) { for (InstanceContext instanceContext : clusterLevelNetworkPartitionContext.getInstanceIdToInstanceContextMap().values()) { @@ -1197,7 +1195,7 @@ public class AutoscalerServiceImpl implements AutoscalerService { } } - private void addNewPartitionsToClusterMonitor(ClusterLevelNetworkPartitionContext clusterLevelNetworkPartitionContext, + private void addNewPartitionsToClusterMonitor(NetworkPartitionContext clusterLevelNetworkPartitionContext, NetworkPartitionRef networkPartitionRef, String deploymentPolicyID, String cartridgeType) throws RemoteException, CloudControllerServiceInvalidPartitionExceptionException, @@ -1207,7 +1205,8 @@ public class AutoscalerServiceImpl implements AutoscalerService { for (PartitionRef partition : networkPartitionRef.getPartitionRefs()) { //Iterating through instances - for (InstanceContext instanceContext : clusterLevelNetworkPartitionContext.getInstanceIdToInstanceContextMap().values()) { + for (InstanceContext instanceContext : clusterLevelNetworkPartitionContext. + getInstanceIdToInstanceContextMap().values()) { ClusterInstanceContext clusterInstanceContext = (ClusterInstanceContext) instanceContext; if (null == clusterInstanceContext.getPartitionCtxt(partition.getId())) { http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusActiveProcessor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusActiveProcessor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusActiveProcessor.java index 978f742..a8521d5 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusActiveProcessor.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusActiveProcessor.java @@ -22,7 +22,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.autoscaler.context.AutoscalerContext; import org.apache.stratos.autoscaler.context.cluster.ClusterInstanceContext; -import org.apache.stratos.autoscaler.context.partition.network.ClusterLevelNetworkPartitionContext; +import org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext; import org.apache.stratos.autoscaler.event.publisher.ClusterStatusEventPublisher; import org.apache.stratos.autoscaler.monitor.cluster.ClusterMonitor; import org.apache.stratos.autoscaler.status.processor.StatusProcessor; @@ -64,7 +64,7 @@ public class ClusterStatusActiveProcessor extends ClusterStatusProcessor { ClusterMonitor monitor = AutoscalerContext.getInstance(). getClusterMonitor(clusterId); boolean clusterActive = false; - for (ClusterLevelNetworkPartitionContext clusterLevelNetworkPartitionContext : + for (NetworkPartitionContext clusterLevelNetworkPartitionContext : monitor.getNetworkPartitionCtxts()) { //minimum check per partition ClusterInstanceContext instanceContext = http://git-wip-us.apache.org/repos/asf/stratos/blob/f1e5488e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusInactiveProcessor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusInactiveProcessor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusInactiveProcessor.java index 7d7a2e8..10b84fa 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusInactiveProcessor.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusInactiveProcessor.java @@ -22,7 +22,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.autoscaler.context.AutoscalerContext; import org.apache.stratos.autoscaler.context.cluster.ClusterInstanceContext; -import org.apache.stratos.autoscaler.context.partition.network.ClusterLevelNetworkPartitionContext; +import org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext; import org.apache.stratos.autoscaler.event.publisher.ClusterStatusEventPublisher; import org.apache.stratos.autoscaler.monitor.cluster.ClusterMonitor; import org.apache.stratos.autoscaler.status.processor.StatusProcessor; @@ -85,7 +85,7 @@ public class ClusterStatusInactiveProcessor extends ClusterStatusProcessor { private boolean getClusterInactive(String instanceId, ClusterMonitor monitor) { boolean clusterInactive = false; - for (ClusterLevelNetworkPartitionContext clusterLevelNetworkPartitionContext : + for (NetworkPartitionContext clusterLevelNetworkPartitionContext : monitor.getAllNetworkPartitionCtxts().values()) { ClusterInstanceContext instanceContext = (ClusterInstanceContext) clusterLevelNetworkPartitionContext.
