You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by la...@apache.org on 2015/08/13 04:15:33 UTC
[1/2] stratos git commit: Fixing formatting issues
Repository: stratos
Updated Branches:
refs/heads/master 4b5a381bb -> a2749a9ec
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/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 105d3aa..98e97cf 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
@@ -70,8 +70,6 @@ public abstract class ParentComponentMonitor extends Monitor {
//Scheduler executor service to execute this monitor in a thread
private final ScheduledExecutorService scheduler = StratosThreadPool.getScheduledExecutorService(
"autoscaler.monitor.scheduler.thread.pool", 100);
- // future to cancel it when destroying monitors
- private ScheduledFuture<?> schedulerFuture;
//The monitors dependency tree with all the start-able/kill-able dependencies
protected DependencyTree startupDependencyTree;
//The monitors dependency tree with all the scaling dependencies
@@ -86,6 +84,8 @@ public abstract class ParentComponentMonitor extends Monitor {
protected Map<String, List<String>> terminatingInstancesMap;
//network partition contexts
protected Map<String, NetworkPartitionContext> networkPartitionContextsMap;
+ // future to cancel it when destroying monitors
+ private ScheduledFuture<?> schedulerFuture;
//Executor service to maintain the thread pool
private ExecutorService executorService;
@@ -207,7 +207,7 @@ public abstract class ParentComponentMonitor extends Monitor {
//starting a new instance of the child
Monitor monitor = aliasToActiveChildMonitorsMap.get(context.getId());
//Creating the new instance
- if(monitor instanceof ParentComponentMonitor) {
+ if (monitor instanceof ParentComponentMonitor) {
((ParentComponentMonitor) monitor).createInstanceOnTermination(instanceId);
} else {
monitor.createInstanceOnDemand(instanceId);
@@ -244,12 +244,12 @@ public abstract class ParentComponentMonitor extends Monitor {
Monitor monitor = aliasToActiveChildMonitorsMap.get(context.getId());
// Creating new instance
for (String instanceId : parentInstanceIds) {
- if(monitor.getInstancesByParentInstanceId(instanceId) == null ||
+ if (monitor.getInstancesByParentInstanceId(instanceId) == null ||
monitor.getInstancesByParentInstanceId(instanceId).isEmpty()) {
monitor.createInstanceOnDemand(instanceId);
} else {
log.info(String.format("Instance has already exists for [application] " +
- "%s [component] %s [instance-id] %s", getAppId(),
+ "%s [component] %s [instance-id] %s", getAppId(),
context.getId(), instanceId));
}
}
@@ -275,7 +275,7 @@ public abstract class ParentComponentMonitor extends Monitor {
if (networkPartitionContext != null) {
InstanceContext instanceContext = networkPartitionContext.
getInstanceContext(instanceId);
- ParentInstanceContext parentInstanceContext = (ParentInstanceContext)instanceContext;
+ ParentInstanceContext parentInstanceContext = (ParentInstanceContext) instanceContext;
if (instanceContext != null) {
if (parentInstanceContext.containsScalingEvent(id)) {
parentInstanceContext.removeScalingEvent(id);
@@ -302,7 +302,7 @@ public abstract class ParentComponentMonitor extends Monitor {
String instanceId = scalingDownBeyondMinEvent.getInstanceId();
InstanceContext instanceContext = getNetworkPartitionContext(networkPartitionId).
getInstanceContext(instanceId);
- ((ParentInstanceContext)instanceContext).addScalingDownBeyondMinEvent(scalingDownBeyondMinEvent);
+ ((ParentInstanceContext) instanceContext).addScalingDownBeyondMinEvent(scalingDownBeyondMinEvent);
}
@Override
@@ -323,7 +323,7 @@ public abstract class ParentComponentMonitor extends Monitor {
InstanceContext instanceContext = networkPartitionContext.
getInstanceContext(instanceId);
if (instanceContext != null) {
- ParentInstanceContext parentInstanceContext = (ParentInstanceContext)instanceContext;
+ ParentInstanceContext parentInstanceContext = (ParentInstanceContext) instanceContext;
if (parentInstanceContext.containsScalingEvent(id)) {
parentInstanceContext.removeScalingOverMaxEvent(id);
parentInstanceContext.addScalingOverMaxEvent(scalingUpBeyondMaxEvent);
@@ -362,18 +362,18 @@ public abstract class ParentComponentMonitor extends Monitor {
// no need to invoke start dependencies.
Monitor childMonitor = aliasToActiveChildMonitorsMap.get(childId);
- if(childMonitor != null) {
+ if (childMonitor != null) {
Instance instance = childMonitor.getInstance(instanceId);
boolean firstIteration = false;
- if(instance != null) {
- if(instance instanceof GroupInstance) {
- GroupInstance groupInstance = (GroupInstance)instance;
+ if (instance != null) {
+ if (instance instanceof GroupInstance) {
+ GroupInstance groupInstance = (GroupInstance) instance;
firstIteration = groupInstance.getPreviousState() == GroupStatus.Created;
- } else if(instance instanceof ClusterInstance) {
- ClusterInstance clusterInstance = (ClusterInstance)instance;
+ } else if (instance instanceof ClusterInstance) {
+ ClusterInstance clusterInstance = (ClusterInstance) instance;
firstIteration = clusterInstance.getPreviousState() == ClusterStatus.Created;
}
- if(firstIteration || childMonitor.hasStartupDependents()) {
+ if (firstIteration || childMonitor.hasStartupDependents()) {
startDep = startDependency(childId, instanceId);
}
} else {
@@ -666,9 +666,9 @@ public abstract class ParentComponentMonitor extends Monitor {
}
}
- if(log.isDebugEnabled()) {
+ if (log.isDebugEnabled()) {
log.debug(String.format("Calculating the group instances status for [application] " +
- "%s [group] %s [group-instance] %s [required-status] %s [no-of-instances] %s",
+ "%s [group] %s [group-instance] %s [required-status] %s [no-of-instances] %s",
appId, childId, instanceId, requiredStatus.toString(),
noOfInstancesOfRequiredStatus));
}
@@ -681,14 +681,14 @@ public abstract class ParentComponentMonitor extends Monitor {
//if terminated all the instances in this instances map should be in terminated state
if (noOfInstancesOfRequiredStatus == this.inactiveInstancesMap.size() &&
requiredStatus == GroupStatus.Terminated) {
- if(log.isDebugEnabled()) {
+ if (log.isDebugEnabled()) {
log.debug(String.format("Group instances in required status for [application] " +
"%s [group] %s [group-instance] %s [required-status] %s",
appId, childId, instanceId, GroupStatus.Terminated.toString()));
}
return true;
} else if (noOfInstancesOfRequiredStatus >= minInstances) {
- if(log.isDebugEnabled()) {
+ if (log.isDebugEnabled()) {
log.debug(String.format("Group instances in required status for [application] " +
"%s [group] %s [group-instance] %s [required-status] %s",
appId, childId, instanceId, requiredStatus.toString()));
@@ -697,7 +697,7 @@ public abstract class ParentComponentMonitor extends Monitor {
} else {
//of only one is inActive implies that the whole group is Inactive
if (requiredStatus == GroupStatus.Inactive && noOfInstancesOfRequiredStatus >= 1) {
- if(log.isDebugEnabled()) {
+ if (log.isDebugEnabled()) {
log.debug(String.format("Group instances in required status for [application] " +
"%s [group] %s [group-instance] %s [required-status] %s",
appId, childId, instanceId, GroupStatus.Inactive.toString()));
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java
index e7fc57c..3336776 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java
@@ -55,8 +55,12 @@ public class PolicyManager {
private static Map<String, ApplicationPolicy> applicationPolicyListMap;
- public Collection<DeploymentPolicy> getDeploymentPolicies() {
- return deploymentPolicyListMap.values();
+ private PolicyManager() {
+ // Initialize distributed object provider
+ DistributedObjectProvider distributedObjectProvider = ServiceReferenceHolder.getInstance().getDistributedObjectProvider();
+ autoscalePolicyListMap = distributedObjectProvider.getMap(AS_POLICY_ID_TO_AUTOSCALE_POLICY_MAP);
+ deploymentPolicyListMap = distributedObjectProvider.getMap(DEPLOYMENT_POLICY_ID_TO_DEPLOYMENT_POLICY_MAP);
+ applicationPolicyListMap = distributedObjectProvider.getMap(APPLICATION_ID_TO_APPLICATION_POLICY_MAP);
}
/* An instance of a PolicyManager is created when the class is loaded.
@@ -64,20 +68,12 @@ public class PolicyManager {
* PolicyManager is created only once. Hence it is singleton.
*/
- private static class InstanceHolder {
- private static final PolicyManager INSTANCE = new PolicyManager();
- }
-
public static PolicyManager getInstance() {
return InstanceHolder.INSTANCE;
}
- private PolicyManager() {
- // Initialize distributed object provider
- DistributedObjectProvider distributedObjectProvider = ServiceReferenceHolder.getInstance().getDistributedObjectProvider();
- autoscalePolicyListMap = distributedObjectProvider.getMap(AS_POLICY_ID_TO_AUTOSCALE_POLICY_MAP);
- deploymentPolicyListMap = distributedObjectProvider.getMap(DEPLOYMENT_POLICY_ID_TO_DEPLOYMENT_POLICY_MAP);
- applicationPolicyListMap = distributedObjectProvider.getMap(APPLICATION_ID_TO_APPLICATION_POLICY_MAP);
+ public Collection<DeploymentPolicy> getDeploymentPolicies() {
+ return deploymentPolicyListMap.values();
}
// Add the policy to information model and persist.
@@ -120,7 +116,6 @@ public class PolicyManager {
return true;
}
-
/**
* Add deployment policy to in memory map and persist.
*
@@ -276,7 +271,6 @@ public class PolicyManager {
return autoscalePolicyListMap.get(id);
}
-
private void addDeploymentPolicyToPolicyListMap(DeploymentPolicy policy) {
if (StringUtils.isEmpty(policy.getDeploymentPolicyID())) {
throw new RuntimeException("Application id is not found in the deployment policy");
@@ -347,7 +341,6 @@ public class PolicyManager {
return deploymentPolicyListMap.get(id);
}
-
public void addApplicationPolicy(ApplicationPolicy applicationPolicy) throws InvalidApplicationPolicyException {
String applicationPolicyId = applicationPolicy.getId();
if (log.isInfoEnabled()) {
@@ -426,4 +419,8 @@ public class PolicyManager {
public ApplicationPolicy[] getApplicationPolicies() {
return applicationPolicyListMap.values().toArray(new ApplicationPolicy[0]);
}
+
+ private static class InstanceHolder {
+ private static final PolicyManager INSTANCE = new PolicyManager();
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
index 3688c6b..b871e97 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
@@ -41,9 +41,8 @@ import java.util.Map;
public class AutoscalerRuleEvaluator {
private static final Log log = LogFactory.getLog(AutoscalerRuleEvaluator.class);
-
- private Map<String, KnowledgeBase> knowledgeBases;
private static volatile AutoscalerRuleEvaluator instance;
+ private Map<String, KnowledgeBase> knowledgeBases;
private AutoscalerRuleEvaluator() {
knowledgeBases = new HashMap<String, KnowledgeBase>();
@@ -67,6 +66,24 @@ public class AutoscalerRuleEvaluator {
return instance;
}
+ private static KnowledgeBase readKnowledgeBase(String drlFileName) {
+ KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+ String configDir = CarbonUtils.getCarbonConfigDirPath();
+ String droolsDir = configDir + File.separator + StratosConstants.DROOLS_DIR_NAME;
+ Resource resource = ResourceFactory.newFileResource(droolsDir + File.separator + drlFileName);
+ kbuilder.add(resource, ResourceType.DRL);
+ KnowledgeBuilderErrors errors = kbuilder.getErrors();
+ if (errors.size() > 0) {
+ for (KnowledgeBuilderError error : errors) {
+ log.error(error.getMessage());
+ }
+ throw new IllegalArgumentException("Could not parse knowledge");
+ }
+ KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+ kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
+ return kbase;
+ }
+
public void parseAndBuildKnowledgeBaseForDroolsFile(String drlFileName) {
KnowledgeBase knowledgeBase = readKnowledgeBase(drlFileName);
if (knowledgeBase == null) {
@@ -87,22 +104,4 @@ public class AutoscalerRuleEvaluator {
ksession.setGlobal("log", RuleLog.getInstance());
return ksession;
}
-
- private static KnowledgeBase readKnowledgeBase(String drlFileName) {
- KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
- String configDir = CarbonUtils.getCarbonConfigDirPath();
- String droolsDir = configDir + File.separator + StratosConstants.DROOLS_DIR_NAME;
- Resource resource = ResourceFactory.newFileResource(droolsDir + File.separator + drlFileName);
- kbuilder.add(resource, ResourceType.DRL);
- KnowledgeBuilderErrors errors = kbuilder.getErrors();
- if (errors.size() > 0) {
- for (KnowledgeBuilderError error : errors) {
- log.error(error.getMessage());
- }
- throw new IllegalArgumentException("Could not parse knowledge");
- }
- KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
- kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
- return kbase;
- }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/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 89633f7..1a8bfc9 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
@@ -43,9 +43,8 @@ import org.apache.stratos.common.constants.StratosConstants;
*/
public class RuleTasksDelegator {
- private static boolean arspiIsSet = false;
-
private static final Log log = LogFactory.getLog(RuleTasksDelegator.class);
+ private static boolean arspiIsSet = false;
public double getPredictedValueForNextMinute(float average, float gradient, float secondDerivative, int timeInterval) {
double predictedValue;
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/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 52c8dbe..f75fbc5 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
@@ -491,7 +491,7 @@ public class AutoscalerServiceImpl implements AutoscalerService {
return false;
} else {
log.info(String.format("Previous graceful un-deployment is in progress for " +
- "[application-id] %s , thus terminating instances directly",
+ "[application-id] %s , thus terminating instances directly",
applicationId));
appMonitor.setForce(true);
terminateAllMembersAndClustersForcefully(applicationId);
@@ -926,15 +926,15 @@ public class AutoscalerServiceImpl implements AutoscalerService {
//Stopping the cluster monitor thread
ClusterMonitor clusterMonitor = AutoscalerContext.getInstance().
getClusterMonitor(clusterId);
- if(clusterMonitor != null) {
+ if (clusterMonitor != null) {
clusterMonitor.destroy();
} else {
- if(log.isDebugEnabled()) {
+ if (log.isDebugEnabled()) {
log.debug(String.format("Cluster monitor cannot be found for [application] %s " +
"[cluster] %s", applicationId, clusterId));
}
}
- if(cluster != null) {
+ if (cluster != null) {
Collection<ClusterInstance> allClusterInstances = cluster.getClusterInstances();
for (ClusterInstance clusterInstance : allClusterInstances) {
ClusterStatusEventPublisher.sendClusterTerminatedEvent(applicationId, cluster.getServiceName(),
@@ -1132,7 +1132,7 @@ public class AutoscalerServiceImpl implements AutoscalerService {
for (NetworkPartitionRef networkPartition : deploymentPolicy.getNetworkPartitionRefs()) {
NetworkPartitionContext clusterLevelNetworkPartitionContext
= clusterMonitor.getClusterContext().getNetworkPartitionCtxt(networkPartition.getId());
- if(clusterLevelNetworkPartitionContext != null) {
+ if (clusterLevelNetworkPartitionContext != null) {
try {
addNewPartitionsToClusterMonitor(clusterLevelNetworkPartitionContext, networkPartition,
deploymentPolicy.getDeploymentPolicyID(), clusterMonitor.getClusterContext().getServiceId());
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
index b76322c..24a4e07 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
@@ -80,10 +80,6 @@ public class AutoscalerUtil {
return Holder.INSTANCE;
}
- private static class Holder {
- private static final AutoscalerUtil INSTANCE = new AutoscalerUtil();
- }
-
public static Applications getApplications() {
Applications applications;
@@ -266,80 +262,6 @@ public class AutoscalerUtil {
return toCommonProperties(properties);
}
- public synchronized void startApplicationMonitor(String applicationId) {
-
- AutoscalerContext autoscalerContext = AutoscalerContext.getInstance();
- if (autoscalerContext.getAppMonitor(applicationId) == null) {
- autoscalerContext.addApplicationPendingMonitor(applicationId);
- ServiceReferenceHolder.getInstance().getExecutorService().submit(new ApplicationMonitorAdder(applicationId));
-
- log.info(String.format("Monitor scheduled: [application] %s ", applicationId));
- } else {
- if (log.isDebugEnabled()) {
- log.debug(String.format("Application monitor thread already exists: " +
- "[application] %s ", applicationId));
- }
- }
- }
-
- private class ApplicationMonitorAdder implements Runnable {
- private String applicationId;
-
- public ApplicationMonitorAdder(String applicationId) {
- this.applicationId = applicationId;
- }
-
- public void run() {
- long startTime = System.currentTimeMillis();
- long endTime = startTime;
- int retries = 5;
- boolean success = false;
- ApplicationMonitor applicationMonitor = null;
- while (!success && retries != 0) {
-
- try {
- startTime = System.currentTimeMillis();
- log.info("Starting monitor: [application] " + applicationId);
- try {
- applicationMonitor = MonitorFactory.getApplicationMonitor(applicationId);
- } catch (PolicyValidationException e) {
- String msg = "Monitor creation failed: [application] " + applicationId;
- log.warn(msg, e);
- retries--;
- }
- success = true;
- endTime = System.currentTimeMillis();
- } catch (DependencyBuilderException e) {
- String msg = "Monitor creation failed: [application] " + applicationId;
- log.warn(msg, e);
- retries--;
- } catch (TopologyInConsistentException e) {
- String msg = "Monitor creation failed: [application] " + applicationId;
- log.warn(msg, e);
- retries--;
- }
- }
-
- if (applicationMonitor == null) {
- String msg = "Monitor creation failed, even after retrying for 5 times: "
- + "[application] " + applicationId;
- log.error(msg);
- throw new RuntimeException(msg);
- }
- AutoscalerContext autoscalerContext = AutoscalerContext.getInstance();
- autoscalerContext.removeApplicationPendingMonitor(applicationId);
- autoscalerContext.removeAppMonitor(applicationId);
- autoscalerContext.addAppMonitor(applicationMonitor);
-
- long startupTime = ((endTime - startTime) / 1000);
- if (log.isInfoEnabled()) {
- log.info(String.format("Monitor started successfully: [application] %s [dependents] %s " +
- "[startup-time] %d seconds", applicationMonitor.getId(),
- applicationMonitor.getStartupDependencyTree(), startupTime));
- }
- }
- }
-
public static Monitor.MonitorType findMonitorType(ApplicationChildContext context) {
if (context instanceof GroupChildContext) {
return Monitor.MonitorType.Group;
@@ -711,7 +633,6 @@ public class AutoscalerUtil {
}
}
-
/**
* Validates an application policy against the application
*
@@ -787,6 +708,150 @@ public class AutoscalerUtil {
return false;
}
+ public static void validateStartupOrders(String groupName, String[] startupOrders) throws InvalidServiceGroupException {
+
+ if (startupOrders == null || startupOrders.length == 0) {
+ if (log.isDebugEnabled()) {
+ log.debug("No Startup Order defined for group " + groupName);
+ }
+ return;
+ }
+
+ for (String startupOrder : startupOrders) {
+ // split comma separated startup orders
+ String[] splittedStartupOrders = startupOrder.split(",");
+ for (String splittedStartupOrder : splittedStartupOrders) {
+ if (!splittedStartupOrder.trim().startsWith("cartridge.") && !splittedStartupOrder.trim().startsWith("group.")) {
+ // invalid startup order; should prefixed by either 'cartridge.' or 'group.'
+ throw new InvalidServiceGroupException("Invalid cartridge group: startup order [" + startupOrder +
+ "] for group " + groupName +
+ ", should prefixed by either 'cartridge.' or 'group.'");
+ }
+ }
+ }
+ }
+
+ public static void validateScalingDependencies(String groupName, String[] scalingDependents) throws InvalidServiceGroupException {
+
+ if (scalingDependents == null || scalingDependents.length == 0) {
+ if (log.isDebugEnabled()) {
+ log.debug("No Scaling Dependents defined for group " + groupName);
+ }
+ return;
+ }
+
+ for (String scalingDependent : scalingDependents) {
+ // split comma separated scaling dependents
+ String[] splittedDependents = scalingDependent.split(",");
+ for (String splittedDependent : splittedDependents) {
+ if (!splittedDependent.trim().startsWith("cartridge.") && !splittedDependent.trim().startsWith("group.")) {
+ // invalid startup order; should prefixed by either 'cartridge.' or 'group.'
+ throw new InvalidServiceGroupException("Invalid cartridge group: Scaling Dependency [" +
+ scalingDependent + "] for group " + groupName +
+ ", should prefixed by either 'cartridge.' or 'group.'");
+ }
+ }
+ }
+ }
+
+ /**
+ * Validate the Auto Scalar policy removal
+ *
+ * @param autoscalePolicyId Auto Scalar policy id boolean
+ * @return
+ */
+ public static boolean removableAutoScalerPolicy(String autoscalePolicyId) {
+ Collection<ApplicationContext> applicationContexts = AutoscalerContext.getInstance().
+ getApplicationContexts();
+ for (ApplicationContext applicationContext : applicationContexts) {
+ if (applicationContext.getComponents().getCartridgeContexts() != null) {
+ for (CartridgeContext cartridgeContext : applicationContext.getComponents().
+ getCartridgeContexts()) {
+ if (autoscalePolicyId.equals(cartridgeContext.getSubscribableInfoContext().
+ getAutoscalingPolicy())) {
+ return false;
+ }
+ }
+ }
+
+ if (applicationContext.getComponents().getGroupContexts() != null) {
+ return findAutoscalingPolicyInGroup(applicationContext.getComponents().getGroupContexts(),
+ autoscalePolicyId);
+ }
+ }
+ return true;
+ }
+
+ public static boolean findAutoscalingPolicyInGroup(GroupContext[] groupContexts,
+ String autoscalePolicyId) {
+ for (GroupContext groupContext : groupContexts) {
+ if (groupContext.getCartridgeContexts() != null) {
+ for (CartridgeContext cartridgeContext : groupContext.getCartridgeContexts()) {
+ if (autoscalePolicyId.equals(cartridgeContext.getSubscribableInfoContext().
+ getAutoscalingPolicy())) {
+ return false;
+ }
+ }
+
+ }
+ if (groupContext.getGroupContexts() != null) {
+ return findAutoscalingPolicyInGroup(groupContext.getGroupContexts(),
+ autoscalePolicyId);
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Validate the deployment policy removal
+ *
+ * @param deploymentPolicyId
+ * @return
+ */
+ public static boolean removableDeploymentPolicy(String deploymentPolicyId) {
+ boolean canRemove = true;
+ Map<String, Application> applications = ApplicationHolder.getApplications().getApplications();
+ for (Application application : applications.values()) {
+ List<String> deploymentPolicyIdsReferredInApplication = AutoscalerUtil.
+ getDeploymentPolicyIdsReferredInApplication(application.getUniqueIdentifier());
+ for (String deploymentPolicyIdInApp : deploymentPolicyIdsReferredInApplication) {
+ if (deploymentPolicyId.equals(deploymentPolicyIdInApp)) {
+ canRemove = false;
+ }
+ }
+ }
+ return canRemove;
+ }
+
+ public static void readApplicationContextsFromRegistry() {
+ String[] resourcePaths = RegistryManager.getInstance().getApplicationContextResourcePaths();
+ if ((resourcePaths == null) || (resourcePaths.length == 0)) {
+ return;
+ }
+
+ for (String resourcePath : resourcePaths) {
+ ApplicationContext applicationContext = RegistryManager.getInstance().
+ getApplicationContextByResourcePath(resourcePath);
+ AutoscalerContext.getInstance().addApplicationContext(applicationContext);
+ }
+ }
+
+ public synchronized void startApplicationMonitor(String applicationId) {
+
+ AutoscalerContext autoscalerContext = AutoscalerContext.getInstance();
+ if (autoscalerContext.getAppMonitor(applicationId) == null) {
+ autoscalerContext.addApplicationPendingMonitor(applicationId);
+ ServiceReferenceHolder.getInstance().getExecutorService().submit(new ApplicationMonitorAdder(applicationId));
+
+ log.info(String.format("Monitor scheduled: [application] %s ", applicationId));
+ } else {
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Application monitor thread already exists: " +
+ "[application] %s ", applicationId));
+ }
+ }
+ }
+
public void updateApplicationsTopology(Application application)
throws ApplicationDefinitionException {
Application existingApplication = ApplicationHolder.getApplications().
@@ -889,133 +954,66 @@ public class AutoscalerUtil {
}
}
- public static void validateStartupOrders(String groupName, String[] startupOrders) throws InvalidServiceGroupException {
-
- if (startupOrders == null || startupOrders.length == 0) {
- if (log.isDebugEnabled()) {
- log.debug("No Startup Order defined for group " + groupName);
- }
- return;
- }
-
- for (String startupOrder : startupOrders) {
- // split comma separated startup orders
- String[] splittedStartupOrders = startupOrder.split(",");
- for (String splittedStartupOrder : splittedStartupOrders) {
- if (!splittedStartupOrder.trim().startsWith("cartridge.") && !splittedStartupOrder.trim().startsWith("group.")) {
- // invalid startup order; should prefixed by either 'cartridge.' or 'group.'
- throw new InvalidServiceGroupException("Invalid cartridge group: startup order [" + startupOrder +
- "] for group " + groupName +
- ", should prefixed by either 'cartridge.' or 'group.'");
- }
- }
- }
+ private static class Holder {
+ private static final AutoscalerUtil INSTANCE = new AutoscalerUtil();
}
- public static void validateScalingDependencies(String groupName, String[] scalingDependents) throws InvalidServiceGroupException {
+ private class ApplicationMonitorAdder implements Runnable {
+ private String applicationId;
- if (scalingDependents == null || scalingDependents.length == 0) {
- if (log.isDebugEnabled()) {
- log.debug("No Scaling Dependents defined for group " + groupName);
- }
- return;
+ public ApplicationMonitorAdder(String applicationId) {
+ this.applicationId = applicationId;
}
- for (String scalingDependent : scalingDependents) {
- // split comma separated scaling dependents
- String[] splittedDependents = scalingDependent.split(",");
- for (String splittedDependent : splittedDependents) {
- if (!splittedDependent.trim().startsWith("cartridge.") && !splittedDependent.trim().startsWith("group.")) {
- // invalid startup order; should prefixed by either 'cartridge.' or 'group.'
- throw new InvalidServiceGroupException("Invalid cartridge group: Scaling Dependency [" +
- scalingDependent + "] for group " + groupName +
- ", should prefixed by either 'cartridge.' or 'group.'");
- }
- }
- }
- }
+ public void run() {
+ long startTime = System.currentTimeMillis();
+ long endTime = startTime;
+ int retries = 5;
+ boolean success = false;
+ ApplicationMonitor applicationMonitor = null;
+ while (!success && retries != 0) {
- /**
- * Validate the Auto Scalar policy removal
- *
- * @param autoscalePolicyId Auto Scalar policy id boolean
- * @return
- */
- public static boolean removableAutoScalerPolicy(String autoscalePolicyId) {
- Collection<ApplicationContext> applicationContexts = AutoscalerContext.getInstance().
- getApplicationContexts();
- for (ApplicationContext applicationContext : applicationContexts) {
- if(applicationContext.getComponents().getCartridgeContexts() != null) {
- for(CartridgeContext cartridgeContext : applicationContext.getComponents().
- getCartridgeContexts()) {
- if(autoscalePolicyId.equals(cartridgeContext.getSubscribableInfoContext().
- getAutoscalingPolicy())) {
- return false;
+ try {
+ startTime = System.currentTimeMillis();
+ log.info("Starting monitor: [application] " + applicationId);
+ try {
+ applicationMonitor = MonitorFactory.getApplicationMonitor(applicationId);
+ } catch (PolicyValidationException e) {
+ String msg = "Monitor creation failed: [application] " + applicationId;
+ log.warn(msg, e);
+ retries--;
}
+ success = true;
+ endTime = System.currentTimeMillis();
+ } catch (DependencyBuilderException e) {
+ String msg = "Monitor creation failed: [application] " + applicationId;
+ log.warn(msg, e);
+ retries--;
+ } catch (TopologyInConsistentException e) {
+ String msg = "Monitor creation failed: [application] " + applicationId;
+ log.warn(msg, e);
+ retries--;
}
}
- if(applicationContext.getComponents().getGroupContexts() != null) {
- return findAutoscalingPolicyInGroup(applicationContext.getComponents().getGroupContexts(),
- autoscalePolicyId);
- }
- }
- return true;
- }
-
- public static boolean findAutoscalingPolicyInGroup(GroupContext[] groupContexts,
- String autoscalePolicyId) {
- for(GroupContext groupContext : groupContexts) {
- if(groupContext.getCartridgeContexts() != null) {
- for(CartridgeContext cartridgeContext : groupContext.getCartridgeContexts()) {
- if(autoscalePolicyId.equals(cartridgeContext.getSubscribableInfoContext().
- getAutoscalingPolicy())) {
- return false;
- }
- }
-
- }
- if(groupContext.getGroupContexts() != null) {
- return findAutoscalingPolicyInGroup(groupContext.getGroupContexts(),
- autoscalePolicyId);
+ if (applicationMonitor == null) {
+ String msg = "Monitor creation failed, even after retrying for 5 times: "
+ + "[application] " + applicationId;
+ log.error(msg);
+ throw new RuntimeException(msg);
}
- }
- return true;
- }
-
+ AutoscalerContext autoscalerContext = AutoscalerContext.getInstance();
+ autoscalerContext.removeApplicationPendingMonitor(applicationId);
+ autoscalerContext.removeAppMonitor(applicationId);
+ autoscalerContext.addAppMonitor(applicationMonitor);
- /**
- * Validate the deployment policy removal
- *
- * @param deploymentPolicyId
- * @return
- */
- public static boolean removableDeploymentPolicy(String deploymentPolicyId) {
- boolean canRemove = true;
- Map<String, Application> applications = ApplicationHolder.getApplications().getApplications();
- for (Application application : applications.values()) {
- List<String> deploymentPolicyIdsReferredInApplication = AutoscalerUtil.
- getDeploymentPolicyIdsReferredInApplication(application.getUniqueIdentifier());
- for (String deploymentPolicyIdInApp : deploymentPolicyIdsReferredInApplication) {
- if (deploymentPolicyId.equals(deploymentPolicyIdInApp)) {
- canRemove = false;
- }
+ long startupTime = ((endTime - startTime) / 1000);
+ if (log.isInfoEnabled()) {
+ log.info(String.format("Monitor started successfully: [application] %s [dependents] %s " +
+ "[startup-time] %d seconds", applicationMonitor.getId(),
+ applicationMonitor.getStartupDependencyTree(), startupTime));
}
}
- return canRemove;
- }
-
- public static void readApplicationContextsFromRegistry() {
- String[] resourcePaths = RegistryManager.getInstance().getApplicationContextResourcePaths();
- if ((resourcePaths == null) || (resourcePaths.length == 0)) {
- return;
- }
-
- for (String resourcePath : resourcePaths) {
- ApplicationContext applicationContext = RegistryManager.getInstance().
- getApplicationContextByResourcePath(resourcePath);
- AutoscalerContext.getInstance().addApplicationContext( applicationContext);
- }
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/ConfUtil.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/ConfUtil.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/ConfUtil.java
index 28c5f66..969490e 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/ConfUtil.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/ConfUtil.java
@@ -34,12 +34,10 @@ import java.util.HashMap;
public class ConfUtil {
private static Log log = LogFactory.getLog(ConfUtil.class);
-
- private XMLConfiguration config;
-
//To maintain the map of config files
private static HashMap<String, ConfUtil> instanceMap = new HashMap<String, ConfUtil>();
private static Object mutex = new Object();
+ private XMLConfiguration config;
private ConfUtil(String configFilePath) {
try {
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/ServiceReferenceHolder.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/ServiceReferenceHolder.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/ServiceReferenceHolder.java
index 36b048e..4cc175c 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/ServiceReferenceHolder.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/ServiceReferenceHolder.java
@@ -60,38 +60,38 @@ public class ServiceReferenceHolder {
return instance;
}
- public void setAxisConfiguration(AxisConfiguration axisConfiguration) {
- this.axisConfiguration = axisConfiguration;
- }
-
public AxisConfiguration getAxisConfiguration() {
return axisConfiguration;
}
- public void setDistributedObjectProvider(DistributedObjectProvider distributedObjectProvider) {
- this.distributedObjectProvider = distributedObjectProvider;
+ public void setAxisConfiguration(AxisConfiguration axisConfiguration) {
+ this.axisConfiguration = axisConfiguration;
}
public DistributedObjectProvider getDistributedObjectProvider() {
return distributedObjectProvider;
}
- public void setHazelcastInstance(HazelcastInstance hazelcastInstance) {
- this.hazelcastInstance = hazelcastInstance;
+ public void setDistributedObjectProvider(DistributedObjectProvider distributedObjectProvider) {
+ this.distributedObjectProvider = distributedObjectProvider;
}
public HazelcastInstance getHazelcastInstance() {
return hazelcastInstance;
}
- public void setRegistry(UserRegistry governanceSystemRegistry) {
- registry = governanceSystemRegistry;
+ public void setHazelcastInstance(HazelcastInstance hazelcastInstance) {
+ this.hazelcastInstance = hazelcastInstance;
}
public Registry getRegistry() {
return registry;
}
+ public void setRegistry(UserRegistry governanceSystemRegistry) {
+ registry = governanceSystemRegistry;
+ }
+
public TaskService getTaskService() {
return taskService;
}
@@ -116,19 +116,19 @@ public class ServiceReferenceHolder {
this.groupStatusProcessorChain = groupStatusProcessorChain;
}
- public void setExecutorService(ExecutorService executorService) {
- this.executorService = executorService;
- }
-
public ExecutorService getExecutorService() {
return executorService;
}
- public void setComponentStartUpSynchronizer(ComponentStartUpSynchronizer componentStartUpSynchronizer) {
- this.componentStartUpSynchronizer = componentStartUpSynchronizer;
+ public void setExecutorService(ExecutorService executorService) {
+ this.executorService = executorService;
}
public ComponentStartUpSynchronizer getComponentStartUpSynchronizer() {
return componentStartUpSynchronizer;
}
+
+ public void setComponentStartUpSynchronizer(ComponentStartUpSynchronizer componentStartUpSynchronizer) {
+ this.componentStartUpSynchronizer = componentStartUpSynchronizer;
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/AutoscalerUtilTest.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/AutoscalerUtilTest.java b/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/AutoscalerUtilTest.java
index 2f65281..c676ed1 100644
--- a/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/AutoscalerUtilTest.java
+++ b/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/AutoscalerUtilTest.java
@@ -79,7 +79,7 @@ public class AutoscalerUtilTest {
@Test
public void testRemovalOfAutoscalingPolicy() {
List<CartridgeContext> cartridgeContexts = new ArrayList<CartridgeContext>();
- for(int i = 0; i < 12; i++) {
+ for (int i = 0; i < 12; i++) {
CartridgeContext cartridgeContext = new CartridgeContext();
SubscribableInfoContext subscribableContext = new SubscribableInfoContext();
subscribableContext.setAlias("cart-" + i);
@@ -89,12 +89,12 @@ public class AutoscalerUtilTest {
cartridgeContexts.add(cartridgeContext);
}
List<GroupContext> groupContextList = new ArrayList<GroupContext>();
- for(int i = 0; i < 5; i++) {
+ for (int i = 0; i < 5; i++) {
GroupContext groupContext = new GroupContext();
groupContext.setAlias("group-" + i);
CartridgeContext[] cartridgeContexts1 = new CartridgeContext[2];
cartridgeContexts1[0] = cartridgeContexts.get(i);
- cartridgeContexts1[1] = cartridgeContexts.get(i+5);
+ cartridgeContexts1[1] = cartridgeContexts.get(i + 5);
groupContext.setCartridgeContexts(cartridgeContexts1);
groupContextList.add(groupContext);
@@ -123,7 +123,7 @@ public class AutoscalerUtilTest {
canRemove = AutoscalerUtil.removableAutoScalerPolicy("test");
assertEquals(canRemove, true);
- for(int i = 0; i < 12; i ++) {
+ for (int i = 0; i < 12; i++) {
canRemove = AutoscalerUtil.removableAutoScalerPolicy("auto-" + i);
assertEquals(canRemove, false);
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestMinimumRule.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestMinimumRule.java b/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestMinimumRule.java
index 2928d2d..e140209 100644
--- a/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestMinimumRule.java
+++ b/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestMinimumRule.java
@@ -45,6 +45,10 @@ public class TestMinimumRule {
private StatefulKnowledgeSession ksession;
private XMLConfiguration conf;
+ public static String get() {
+ return "null";
+ }
+
@Before
public void setUp() {
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
@@ -95,8 +99,4 @@ public class TestMinimumRule {
assertEquals(true, TestDelegator.isMinRuleFired());
}
-
- public static String get() {
- return "null";
- }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestObsoletedMemberRule.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestObsoletedMemberRule.java b/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestObsoletedMemberRule.java
index 2654529..bd75a63 100644
--- a/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestObsoletedMemberRule.java
+++ b/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestObsoletedMemberRule.java
@@ -46,6 +46,10 @@ public class TestObsoletedMemberRule {
private StatefulKnowledgeSession ksession;
private XMLConfiguration conf;
+ public static String get() {
+ return "null";
+ }
+
@Before
public void setUp() {
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
@@ -171,8 +175,4 @@ public class TestObsoletedMemberRule {
}
-
- public static String get() {
- return "null";
- }
}
[2/2] stratos git commit: Fixing formatting issues
Posted by la...@apache.org.
Fixing formatting issues
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/a2749a9e
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/a2749a9e
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/a2749a9e
Branch: refs/heads/master
Commit: a2749a9ecb8206ee21ce616287c91ef7548df3e7
Parents: 4b5a381
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Fri Aug 7 16:13:15 2015 -0500
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Wed Aug 12 09:17:56 2015 -0500
----------------------------------------------------------------------
.../applications/ApplicationUtils.java | 11 +-
.../dependency/DependencyBuilder.java | 44 +--
.../applications/dependency/DependencyTree.java | 13 +-
.../context/ApplicationChildContext.java | 7 +-
.../parser/DefaultApplicationParser.java | 58 ++-
.../applications/parser/ParserUtils.java | 18 +-
.../applications/payload/BasicPayloadData.java | 26 +-
.../applications/payload/PayloadFactory.java | 2 +-
.../pojo/ApplicationClusterContext.java | 17 +-
.../applications/pojo/ApplicationContext.java | 4 +-
.../applications/pojo/ComponentContext.java | 8 +-
.../pojo/SubscribableInfoContext.java | 16 +-
.../client/AutoscalerCloudControllerClient.java | 25 +-
.../autoscaler/context/AutoscalerContext.java | 6 +-
.../application/ParentInstanceContext.java | 4 +-
.../context/cluster/AbstractClusterContext.java | 2 +-
.../context/cluster/ClusterInstanceContext.java | 8 +-
.../context/member/MemberStatsContext.java | 48 +--
.../partition/ClusterLevelPartitionContext.java | 76 ++--
.../network/NetworkPartitionContext.java | 28 +-
.../InstanceNotificationPublisher.java | 16 +-
.../AutoscalerTopologyEventReceiver.java | 2 +-
.../stratos/autoscaler/monitor/Monitor.java | 25 +-
.../autoscaler/monitor/MonitorFactory.java | 10 +-
.../monitor/cluster/ClusterMonitor.java | 50 ++-
.../monitor/component/ApplicationMonitor.java | 14 +-
.../monitor/component/GroupMonitor.java | 24 +-
.../component/ParentComponentMonitor.java | 40 +-
.../autoscaler/pojo/policy/PolicyManager.java | 27 +-
.../rule/AutoscalerRuleEvaluator.java | 39 +-
.../autoscaler/rule/RuleTasksDelegator.java | 3 +-
.../services/impl/AutoscalerServiceImpl.java | 10 +-
.../stratos/autoscaler/util/AutoscalerUtil.java | 382 +++++++++----------
.../stratos/autoscaler/util/ConfUtil.java | 4 +-
.../autoscaler/util/ServiceReferenceHolder.java | 32 +-
.../stratos/autoscaler/AutoscalerUtilTest.java | 8 +-
.../stratos/autoscaler/TestMinimumRule.java | 8 +-
.../autoscaler/TestObsoletedMemberRule.java | 8 +-
38 files changed, 549 insertions(+), 574 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ApplicationUtils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ApplicationUtils.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ApplicationUtils.java
index 874666e..c8de90f 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ApplicationUtils.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ApplicationUtils.java
@@ -37,11 +37,10 @@ import java.util.Set;
import java.util.regex.Pattern;
public class ApplicationUtils {
- private static final Log log = LogFactory.getLog(ApplicationUtils.class);
-
public static final String TOKEN_PAYLOAD_PARAM_NAME = "TOKEN";
public static final String DEPLOYMENT = "DEPLOYMENT";
public static final String PAYLOAD_PARAMETER = "payload_parameter.";
+ private static final Log log = LogFactory.getLog(ApplicationUtils.class);
public static Pattern ALIAS_PATTERN = Pattern.compile("([a-z0-9]+([-][a-z0-9])*)+");
public static boolean isAliasValid(String alias) {
@@ -139,12 +138,12 @@ public class ApplicationUtils {
public static PayloadData createPayload(String appId, String groupName, Cartridge cartridge, String subscriptionKey, int tenantId, String clusterId,
String hostName, String repoUrl, String alias, Map<String, String> customPayloadEntries, String[] dependencyAliases,
org.apache.stratos.common.Properties properties, String oauthToken, String[] dependencyClusterIDs,
- String[] exportMetadata, String[] importMetadata,String lvsVirtualIP)
+ String[] exportMetadata, String[] importMetadata, String lvsVirtualIP)
throws ApplicationDefinitionException {
//Create the payload
BasicPayloadData basicPayloadData = createBasicPayload(appId, groupName, cartridge, subscriptionKey,
- clusterId, hostName, repoUrl, alias, tenantId, dependencyAliases, dependencyClusterIDs, exportMetadata, importMetadata,lvsVirtualIP);
+ clusterId, hostName, repoUrl, alias, tenantId, dependencyAliases, dependencyClusterIDs, exportMetadata, importMetadata, lvsVirtualIP);
//Populate the basic payload details
basicPayloadData.populatePayload();
@@ -212,7 +211,7 @@ public class ApplicationUtils {
String subscriptionKey, String clusterId,
String hostName, String repoUrl, String alias,
int tenantId, String[] dependencyAliases, String[] dependencyCLusterIDs,
- String[] exportMetadata, String[] importMetadata,String lvsVirtualIP) {
+ String[] exportMetadata, String[] importMetadata, String lvsVirtualIP) {
BasicPayloadData basicPayloadData = new BasicPayloadData();
basicPayloadData.setAppId(appId);
@@ -224,7 +223,7 @@ public class ApplicationUtils {
basicPayloadData.setPortMappings(createPortMappingPayloadString(cartridge));
basicPayloadData.setServiceName(cartridge.getType());
basicPayloadData.setProvider(cartridge.getProvider());
- basicPayloadData.setLvsVirtualIP(lvsVirtualIP);
+ basicPayloadData.setLvsVirtualIP(lvsVirtualIP);
if (repoUrl != null) {
basicPayloadData.setGitRepositoryUrl(repoUrl);
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/DependencyBuilder.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/DependencyBuilder.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/DependencyBuilder.java
index 7d3b59e..fe5ae12 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/DependencyBuilder.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/DependencyBuilder.java
@@ -39,15 +39,31 @@ public class DependencyBuilder {
}
- private static class Holder {
- private static final DependencyBuilder INSTANCE = new DependencyBuilder();
- }
-
public static DependencyBuilder getInstance() {
return Holder.INSTANCE;
}
/**
+ * Utility method to get the group alias from the startup order Eg: group.mygroup
+ *
+ * @param startupOrder startup order
+ * @return group alias
+ */
+ public static String getGroupFromStartupOrder(String startupOrder) {
+ return startupOrder.substring(AutoscalerConstants.GROUP.length() + 1);
+ }
+
+ /**
+ * Utility method to get the cluster alias from startup order Eg: cartridge.myphp
+ *
+ * @param startupOrder startup order
+ * @return cluster alias
+ */
+ public static String getClusterFromStartupOrder(String startupOrder) {
+ return startupOrder.substring(AutoscalerConstants.CARTRIDGE.length() + 1);
+ }
+
+ /**
* This will build the dependency tree based on the given dependencies
*
* @param component it will give the necessary information to build the tree
@@ -236,23 +252,7 @@ public class DependencyBuilder {
return scalingDependentLists;
}
- /**
- * Utility method to get the group alias from the startup order Eg: group.mygroup
- *
- * @param startupOrder startup order
- * @return group alias
- */
- public static String getGroupFromStartupOrder(String startupOrder) {
- return startupOrder.substring(AutoscalerConstants.GROUP.length() + 1);
- }
-
- /**
- * Utility method to get the cluster alias from startup order Eg: cartridge.myphp
- *
- * @param startupOrder startup order
- * @return cluster alias
- */
- public static String getClusterFromStartupOrder(String startupOrder) {
- return startupOrder.substring(AutoscalerConstants.CARTRIDGE.length() + 1);
+ private static class Holder {
+ private static final DependencyBuilder INSTANCE = new DependencyBuilder();
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/DependencyTree.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/DependencyTree.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/DependencyTree.java
index 04af9b1..00e3fd5 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/DependencyTree.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/DependencyTree.java
@@ -230,10 +230,6 @@ public class DependencyTree {
allChildrenOfAppContext);
}
- public void setTerminationBehavior(TerminationBehavior terminationBehavior) {
- this.terminationBehavior = terminationBehavior;
- }
-
public boolean isTerminateDependent() {
return this.getTerminationBehavior() == TerminationBehavior.TERMINATE_DEPENDENT;
}
@@ -242,13 +238,12 @@ public class DependencyTree {
return this.getTerminationBehavior() == TerminationBehavior.TERMINATE_ALL;
}
-
public TerminationBehavior getTerminationBehavior() {
return terminationBehavior;
}
- public enum TerminationBehavior {
- TERMINATE_ALL, TERMINATE_NONE, TERMINATE_DEPENDENT
+ public void setTerminationBehavior(TerminationBehavior terminationBehavior) {
+ this.terminationBehavior = terminationBehavior;
}
public String getId() {
@@ -281,4 +276,8 @@ public class DependencyTree {
}
}
}
+
+ public enum TerminationBehavior {
+ TERMINATE_ALL, TERMINATE_NONE, TERMINATE_DEPENDENT
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/context/ApplicationChildContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/context/ApplicationChildContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/context/ApplicationChildContext.java
index 1e4f3fd..56e2840 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/context/ApplicationChildContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/context/ApplicationChildContext.java
@@ -29,17 +29,16 @@ import java.util.Stack;
*/
public abstract class ApplicationChildContext {
- private String id;
protected boolean started;
+ protected boolean hasStartupDependents;
+ protected boolean isGroupScalingEnabled;
+ private String id;
private boolean terminated;
private ClusterStatus status;
private Stack<ClusterStatus> statusLifeCycle;
private List<ApplicationChildContext> applicationChildContextList;
private ApplicationChildContext parent;
- protected boolean hasStartupDependents;
- protected boolean isGroupScalingEnabled;
-
public ApplicationChildContext(String id, boolean killDependent) {
applicationChildContextList = new ArrayList<ApplicationChildContext>();
statusLifeCycle = new Stack<ClusterStatus>();
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
index 7ac88eb..d9378ab 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
@@ -57,10 +57,10 @@ import java.util.*;
*/
public class DefaultApplicationParser implements ApplicationParser {
- private static final String METADATA_APPENDER = "-";
public static final String ALIAS = "alias";
public static final String CARTRIDGE_TYPE = "type";
public static final String LOAD_BALANCER = "lb";
+ private static final String METADATA_APPENDER = "-";
private static Log log = LogFactory.getLog(DefaultApplicationParser.class);
private List<ApplicationClusterContext> applicationClusterContexts;
@@ -73,6 +73,29 @@ public class DefaultApplicationParser implements ApplicationParser {
}
+ /**
+ * Validates terminationBehavior. The terminationBehavior should be one of the following:
+ * 1. terminate-none
+ * 2. terminate-dependents
+ * 3. terminate-all
+ *
+ * @throws ApplicationDefinitionException if terminationBehavior is different to what is
+ * listed above
+ */
+ private static void validateTerminationBehavior(String terminationBehavior) throws ApplicationDefinitionException {
+
+ if (!(terminationBehavior == null ||
+ AutoscalerConstants.TERMINATE_NONE.equals(terminationBehavior) ||
+ AutoscalerConstants.TERMINATE_DEPENDENTS.equals(terminationBehavior) ||
+ AutoscalerConstants.TERMINATE_ALL.equals(terminationBehavior))) {
+ throw new ApplicationDefinitionException("Invalid termination behaviour found: [ " +
+ terminationBehavior + " ], should be one of '" +
+ AutoscalerConstants.TERMINATE_NONE + "', '" +
+ AutoscalerConstants.TERMINATE_DEPENDENTS + "', '" +
+ AutoscalerConstants.TERMINATE_ALL + "'");
+ }
+ }
+
@Override
public Application parse(ApplicationContext applicationContext)
throws ApplicationDefinitionException, CartridgeGroupNotFoundException,
@@ -153,7 +176,7 @@ public class DefaultApplicationParser implements ApplicationParser {
if (!ApplicationUtils.isAliasValid(alias)) {
handleError(String.format("Alias is not valid: [application-id] %s " +
- "[cartridge-type] %s [alias] %s [valid-pattern] %s", applicationId, cartridgeType, alias,
+ "[cartridge-type] %s [alias] %s [valid-pattern] %s", applicationId, cartridgeType, alias,
ApplicationUtils.ALIAS_PATTERN.pattern()));
}
@@ -235,7 +258,6 @@ public class DefaultApplicationParser implements ApplicationParser {
return subscribableInfoContextMap;
}
-
/**
* Builds the Application structure
*
@@ -334,7 +356,6 @@ public class DefaultApplicationParser implements ApplicationParser {
return application;
}
-
/**
* Parse Subscription Information
*
@@ -455,7 +476,7 @@ public class DefaultApplicationParser implements ApplicationParser {
subscribableInfoContext.getDeploymentPolicy(), isLB,
tenantRange, subscribableInfoContext.getDependencyAliases(),
subscribableInfoContext.getProperties(), arrDependencyClusterIDs, arrExportMetadata,
- arrImportMetadata,subscribableInfoContext.getLvsVirtualIP());
+ arrImportMetadata, subscribableInfoContext.getLvsVirtualIP());
appClusterCtxt.setAutoscalePolicyName(subscribableInfoContext.getAutoscalingPolicy());
appClusterCtxt.setProperties(subscribableInfoContext.getProperties());
@@ -529,29 +550,6 @@ public class DefaultApplicationParser implements ApplicationParser {
}
/**
- * Validates terminationBehavior. The terminationBehavior should be one of the following:
- * 1. terminate-none
- * 2. terminate-dependents
- * 3. terminate-all
- *
- * @throws ApplicationDefinitionException if terminationBehavior is different to what is
- * listed above
- */
- private static void validateTerminationBehavior(String terminationBehavior) throws ApplicationDefinitionException {
-
- if (!(terminationBehavior == null ||
- AutoscalerConstants.TERMINATE_NONE.equals(terminationBehavior) ||
- AutoscalerConstants.TERMINATE_DEPENDENTS.equals(terminationBehavior) ||
- AutoscalerConstants.TERMINATE_ALL.equals(terminationBehavior))) {
- throw new ApplicationDefinitionException("Invalid termination behaviour found: [ " +
- terminationBehavior + " ], should be one of '" +
- AutoscalerConstants.TERMINATE_NONE + "', '" +
- AutoscalerConstants.TERMINATE_DEPENDENTS + "', '" +
- AutoscalerConstants.TERMINATE_ALL + "'");
- }
- }
-
- /**
* Parse Group information
*
* @param appId Application id
@@ -942,12 +940,12 @@ public class DefaultApplicationParser implements ApplicationParser {
String alias, String clusterId, String hostname,
String deploymentPolicy, boolean isLB, String tenantRange,
String[] dependencyAliases, Properties properties, String[] dependencyClustorIDs,
- String[] exportMetadata, String[] importMetadata,String lvsVirtualIP)
+ String[] exportMetadata, String[] importMetadata, String lvsVirtualIP)
throws ApplicationDefinitionException {
// Create text payload
PayloadData payloadData = ApplicationUtils.createPayload(appId, groupName, cartridge, subscriptionKey, tenantId, clusterId,
- hostname, repoUrl, alias, null, dependencyAliases, properties, oauthToken, dependencyClustorIDs, exportMetadata, importMetadata,lvsVirtualIP);
+ hostname, repoUrl, alias, null, dependencyAliases, properties, oauthToken, dependencyClustorIDs, exportMetadata, importMetadata, lvsVirtualIP);
String textPayload = payloadData.toString();
if (log.isDebugEnabled()) {
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/ParserUtils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/ParserUtils.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/ParserUtils.java
index 904ab53..aa42b7f 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/ParserUtils.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/ParserUtils.java
@@ -72,13 +72,13 @@ public class ParserUtils {
for (String commaSeparatedStartupOrder : startupOrderArr) {
// convertStartupOrder all Startup Orders to aliases-based
List<String> components = Arrays.asList(commaSeparatedStartupOrder.split(","));
- for(String component : components) {
+ for (String component : components) {
boolean aliasFound = false;
- if(component.startsWith(AutoscalerConstants.GROUP)) {
+ if (component.startsWith(AutoscalerConstants.GROUP)) {
String groupAlias = component.substring(AutoscalerConstants.GROUP.length() + 1);
- if(groupContext.getGroupContexts() != null) {
- for(GroupContext context : groupContext.getGroupContexts()) {
- if(context.getAlias().equals(groupAlias)) {
+ if (groupContext.getGroupContexts() != null) {
+ for (GroupContext context : groupContext.getGroupContexts()) {
+ if (context.getAlias().equals(groupAlias)) {
aliasFound = true;
}
}
@@ -87,15 +87,15 @@ public class ParserUtils {
} else {
String cartridgeAlias = component.substring(
AutoscalerConstants.CARTRIDGE.length() + 1);
- if(groupContext.getCartridgeContexts() != null) {
- for(CartridgeContext context : groupContext.getCartridgeContexts()) {
- if(context.getSubscribableInfoContext().getAlias().equals(cartridgeAlias)) {
+ if (groupContext.getCartridgeContexts() != null) {
+ for (CartridgeContext context : groupContext.getCartridgeContexts()) {
+ if (context.getSubscribableInfoContext().getAlias().equals(cartridgeAlias)) {
aliasFound = true;
}
}
}
}
- if(!aliasFound) {
+ if (!aliasFound) {
String msg = "The startup-order defined in the [group] " + groupContext.getName()
+ " is not correct. [startup-order-alias] " + component +
" is not there in the application.";
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/BasicPayloadData.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/BasicPayloadData.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/BasicPayloadData.java
index ebe17aa..86fbac7 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/BasicPayloadData.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/BasicPayloadData.java
@@ -32,7 +32,7 @@ import java.io.Serializable;
public class BasicPayloadData implements Serializable {
private static Log log = LogFactory.getLog(BasicPayloadData.class);
-
+ protected StringBuilder payloadBuilder;
private String appId;
private String groupName;
private String serviceName;
@@ -56,9 +56,7 @@ public class BasicPayloadData implements Serializable {
private String[] dependencyClusterIDs;
private String[] exportMetadataKeys;
private String[] importMetadataKeys;
- private String lvsVirtualIP;
-
- protected StringBuilder payloadBuilder;
+ private String lvsVirtualIP;
public BasicPayloadData() {
@@ -129,10 +127,10 @@ public class BasicPayloadData implements Serializable {
if (getExportMetadataKeys() != null) {
payloadBuilder.append("IMPORT_METADATA_KEYS=" + getImportMetadataKeys());
}
- payloadBuilder.append(",");
- if(getLvsVirtualIP()!=null && !getLvsVirtualIP().equals("")){
- payloadBuilder.append("LVS_VIRTUAL_IP=" +getLvsVirtualIP());
- }
+ payloadBuilder.append(",");
+ if (getLvsVirtualIP() != null && !getLvsVirtualIP().equals("")) {
+ payloadBuilder.append("LVS_VIRTUAL_IP=" + getLvsVirtualIP());
+ }
}
public String getServiceName() {
@@ -394,11 +392,11 @@ public class BasicPayloadData implements Serializable {
this.importMetadataKeys = importMetadataKeys;
}
- public String getLvsVirtualIP() {
- return lvsVirtualIP;
- }
+ public String getLvsVirtualIP() {
+ return lvsVirtualIP;
+ }
- public void setLvsVirtualIP(String lvsVirtualIP) {
- this.lvsVirtualIP = lvsVirtualIP;
- }
+ public void setLvsVirtualIP(String lvsVirtualIP) {
+ this.lvsVirtualIP = lvsVirtualIP;
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/PayloadFactory.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/PayloadFactory.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/PayloadFactory.java
index e022f7b..f4ad48b 100755
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/PayloadFactory.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/PayloadFactory.java
@@ -26,8 +26,8 @@ import org.apache.stratos.autoscaler.exception.application.ApplicationDefinition
public class PayloadFactory {
- private static final String LB_IDENTIFIER = "lb";
public static final String DATA_IDENTIFIER = "data";
+ private static final String LB_IDENTIFIER = "lb";
private static Log log = LogFactory.getLog(PayloadFactory.class);
/**
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ApplicationClusterContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ApplicationClusterContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ApplicationClusterContext.java
index 721a948..cd48cd4 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ApplicationClusterContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ApplicationClusterContext.java
@@ -45,15 +45,6 @@ public class ApplicationClusterContext implements Serializable {
private Properties properties;
private String[] dependencyClusterIds;
-
- public PersistenceContext getPersistenceContext() {
- return persistenceContext;
- }
-
- public void setPersistenceContext(PersistenceContext persistenceContext) {
- this.persistenceContext = persistenceContext;
- }
-
private PersistenceContext persistenceContext;
public ApplicationClusterContext(String cartridgeType, String clusterId, String hostName,
@@ -69,6 +60,14 @@ public class ApplicationClusterContext implements Serializable {
this.dependencyClusterIds = dependencyClusterIds;
}
+ public PersistenceContext getPersistenceContext() {
+ return persistenceContext;
+ }
+
+ public void setPersistenceContext(PersistenceContext persistenceContext) {
+ this.persistenceContext = persistenceContext;
+ }
+
public String getClusterId() {
return clusterId;
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ApplicationContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ApplicationContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ApplicationContext.java
index ec79fcf..5c2b1f2 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ApplicationContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ApplicationContext.java
@@ -25,12 +25,10 @@ import java.io.Serializable;
public class ApplicationContext implements Serializable {
- private static final long serialVersionUID = 6704036501869668646L;
-
public static final String STATUS_CREATED = "Created";
public static final String STATUS_DEPLOYED = "Deployed";
public static final String STATUS_UNDEPLOYING = "Undeploying";
-
+ private static final long serialVersionUID = 6704036501869668646L;
private String applicationId;
private String alias;
private boolean multiTenant;
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ComponentContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ComponentContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ComponentContext.java
index 98a0d5d..d3fc2e6 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ComponentContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ComponentContext.java
@@ -54,11 +54,11 @@ public class ComponentContext implements Serializable {
this.dependencyContext = dependencyContext;
}
- public void setApplicationClusterContexts(ApplicationClusterContext[] applicationClusterContexts) {
- this.applicationClusterContexts = applicationClusterContexts;
- }
-
public ApplicationClusterContext[] getApplicationClusterContexts() {
return applicationClusterContexts;
}
+
+ public void setApplicationClusterContexts(ApplicationClusterContext[] applicationClusterContexts) {
+ this.applicationClusterContexts = applicationClusterContexts;
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/SubscribableInfoContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/SubscribableInfoContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/SubscribableInfoContext.java
index 4ecb4fa..c4b57f0 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/SubscribableInfoContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/SubscribableInfoContext.java
@@ -36,8 +36,8 @@ public class SubscribableInfoContext implements Serializable {
private ArtifactRepositoryContext artifactRepositoryContext;
private Properties properties;
private PersistenceContext persistenceContext;
- //This is the virtual IP that we need to pass for use LVS as Load Balancer
- private String lvsVirtualIP;
+ //This is the virtual IP that we need to pass for use LVS as Load Balancer
+ private String lvsVirtualIP;
public String getAlias() {
return alias;
@@ -111,11 +111,11 @@ public class SubscribableInfoContext implements Serializable {
this.persistenceContext = persistenceContext;
}
- public String getLvsVirtualIP() {
- return lvsVirtualIP;
- }
+ public String getLvsVirtualIP() {
+ return lvsVirtualIP;
+ }
- public void setLvsVirtualIP(String lvsVirtualIP) {
- this.lvsVirtualIP = lvsVirtualIP;
- }
+ public void setLvsVirtualIP(String lvsVirtualIP) {
+ this.lvsVirtualIP = lvsVirtualIP;
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/AutoscalerCloudControllerClient.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/AutoscalerCloudControllerClient.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/AutoscalerCloudControllerClient.java
index 9504d53..0124206 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/AutoscalerCloudControllerClient.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/AutoscalerCloudControllerClient.java
@@ -52,18 +52,6 @@ public class AutoscalerCloudControllerClient {
private static CloudControllerServiceStub stub;
- /* An instance of a CloudControllerClient is created when the class is loaded.
- * Since the class is loaded only once, it is guaranteed that an object of
- * CloudControllerClient is created only once. Hence it is singleton.
- */
- private static class InstanceHolder {
- private static final AutoscalerCloudControllerClient INSTANCE = new AutoscalerCloudControllerClient();
- }
-
- public static AutoscalerCloudControllerClient getInstance() {
- return InstanceHolder.INSTANCE;
- }
-
private AutoscalerCloudControllerClient() {
try {
XMLConfiguration conf = ConfUtil.getInstance(null).getConfiguration();
@@ -81,6 +69,10 @@ public class AutoscalerCloudControllerClient {
}
}
+ public static AutoscalerCloudControllerClient getInstance() {
+ return InstanceHolder.INSTANCE;
+ }
+
public synchronized MemberContext startInstance(PartitionRef partition,
String clusterId, String clusterInstanceId,
String networkPartitionId,
@@ -182,7 +174,6 @@ public class AutoscalerCloudControllerClient {
}
}
-
private Volume[] convertVolumesToStubVolumes(VolumeContext[] volumeContexts) {
ArrayList<Volume> volumes = new ArrayList<Volume>();
@@ -233,4 +224,12 @@ public class AutoscalerCloudControllerClient {
log.debug(String.format("Service call terminateInstances() returned in %dms", (endTime - startTime)));
}
}
+
+ /* An instance of a CloudControllerClient is created when the class is loaded.
+ * Since the class is loaded only once, it is guaranteed that an object of
+ * CloudControllerClient is created only once. Hence it is singleton.
+ */
+ private static class InstanceHolder {
+ private static final AutoscalerCloudControllerClient INSTANCE = new AutoscalerCloudControllerClient();
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/AutoscalerContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/AutoscalerContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/AutoscalerContext.java
index 3a988e6..0af9b56 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/AutoscalerContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/AutoscalerContext.java
@@ -49,12 +49,10 @@ public class AutoscalerContext {
private static final String AS_APPLICATION_ID_TO_APPLICATION_MONITOR_MAP = "AS_APPLICATION_ID_TO_APPLICATION_MONITOR_MAP";
private static final String AS_PENDING_APPLICATION_MONITOR_LIST = "AS_PENDING_APPLICATION_MONITOR_LIST";
private static final String AS_APPLICATIOIN_ID_TO_NETWORK_PARTITION_ALGO_CTX_MAP = "AS_APPLICATIOIN_ID_TO_NETWORK_PARTITION_ALGO_CTX_MAP";
- private boolean clustered;
- private boolean coordinator;
-
private static volatile AutoscalerContext instance;
private final transient DistributedObjectProvider distributedObjectProvider;
-
+ private boolean clustered;
+ private boolean coordinator;
// Map<ApplicationId, ApplicationContext>
private Map<String, ApplicationContext> applicationContextMap;
// Map<ClusterId, AbstractClusterMonitor>
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/application/ParentInstanceContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/application/ParentInstanceContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/application/ParentInstanceContext.java
index 5d7b626..53adbcc 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/application/ParentInstanceContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/application/ParentInstanceContext.java
@@ -33,14 +33,14 @@ import java.util.concurrent.ConcurrentHashMap;
* This will hold the application instance related info.
*/
public class ParentInstanceContext extends InstanceContext {
+ //partitions of this network partition
+ private final List<ParentLevelPartitionContext> partitionCtxts;
//key=id of the child, value=ScalingEvent
private Map<String, ScalingEvent> idToScalingEvent;
//key=id of the child, value=ScalingUpBeyondMaxEvent
private Map<String, ScalingUpBeyondMaxEvent> idToScalingOverMaxEvent;
//key=id of the child, value=ScalingDownBeyondMinEvent
private Map<String, ScalingDownBeyondMinEvent> idToScalingDownBeyondMinEvent;
- //partitions of this network partition
- private final List<ParentLevelPartitionContext> partitionCtxts;
public ParentInstanceContext(String id) {
super(id);
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/AbstractClusterContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/AbstractClusterContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/AbstractClusterContext.java
index ae12c7e..43608f5 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/AbstractClusterContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/AbstractClusterContext.java
@@ -36,8 +36,8 @@ public class AbstractClusterContext implements Serializable {
// cluster id
protected String clusterId;
- private String serviceId;
protected Map<String, ClusterInstance> clusterInstanceMap;
+ private String serviceId;
public AbstractClusterContext(String clusterId, String serviceId) {
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/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 3c87e3e..5ee45ae 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
@@ -507,15 +507,15 @@ public class ClusterInstanceContext extends InstanceContext {
return minCheckKnowledgeSession;
}
- public StatefulKnowledgeSession getMaxCheckKnowledgeSession() {
- return maxCheckKnowledgeSession;
- }
-
public void setMinCheckKnowledgeSession(
StatefulKnowledgeSession minCheckKnowledgeSession) {
this.minCheckKnowledgeSession = minCheckKnowledgeSession;
}
+ public StatefulKnowledgeSession getMaxCheckKnowledgeSession() {
+ return maxCheckKnowledgeSession;
+ }
+
public StatefulKnowledgeSession getObsoleteCheckKnowledgeSession() {
return obsoleteCheckKnowledgeSession;
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/member/MemberStatsContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/member/MemberStatsContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/member/MemberStatsContext.java
index 6981095..4f89f79 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/member/MemberStatsContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/member/MemberStatsContext.java
@@ -54,54 +54,54 @@ public class MemberStatsContext {
return memoryConsumption;
}
- public void setAverageLoadAverage(float value) {
- loadAverage.setAverage(value);
- }
-
- public void setAverageMemoryConsumption(float value) {
- memoryConsumption.setAverage(value);
- }
-
- public void setGradientOfLoadAverage(float value) {
- loadAverage.setGradient(value);
- }
-
- public void setGradientOfMemoryConsumption(float value) {
- memoryConsumption.setGradient(value);
- }
-
- public void setSecondDerivativeOfLoadAverage(float value) {
- loadAverage.setSecondDerivative(value);
- }
-
- public void setSecondDerivativeOfMemoryConsumption(float value) {
- memoryConsumption.setSecondDerivative(value);
- }
-
public float getAverageLoadAverage() {
return loadAverage.getAverage();
}
+ public void setAverageLoadAverage(float value) {
+ loadAverage.setAverage(value);
+ }
+
public float getAverageMemoryConsumption() {
return memoryConsumption.getAverage();
}
+ public void setAverageMemoryConsumption(float value) {
+ memoryConsumption.setAverage(value);
+ }
+
public float getGradientOfLoadAverage() {
return loadAverage.getGradient();
}
+ public void setGradientOfLoadAverage(float value) {
+ loadAverage.setGradient(value);
+ }
+
public float getGradientOfMemoryConsumption() {
return memoryConsumption.getGradient();
}
+ public void setGradientOfMemoryConsumption(float value) {
+ memoryConsumption.setGradient(value);
+ }
+
public float getSecondDerivativeOfLoadAverage() {
return loadAverage.getSecondDerivative();
}
+ public void setSecondDerivativeOfLoadAverage(float value) {
+ loadAverage.setSecondDerivative(value);
+ }
+
public float getSecondDerivativeOfMemoryConsumption() {
return memoryConsumption.getSecondDerivative();
}
+ public void setSecondDerivativeOfMemoryConsumption(float value) {
+ memoryConsumption.setSecondDerivative(value);
+ }
+
public String getInstanceId() {
return instanceId;
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/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 3ef2e45..69dba49 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
@@ -93,6 +93,36 @@ public class ClusterLevelPartitionContext extends PartitionContext implements Se
this.pendingMembers = new ArrayList<MemberContext>();
}
+ public ClusterLevelPartitionContext(PartitionRef partition, String networkPartitionId, String deploymentPolicyId) {
+
+ super(partition, networkPartitionId, deploymentPolicyId);
+ this.pendingMembers = new ArrayList<MemberContext>();
+ this.activeMembers = new ArrayList<MemberContext>();
+ this.terminationPendingMembers = new ArrayList<MemberContext>();
+ this.obsoletedMembers = new ConcurrentHashMap<String, MemberContext>();
+ memberStatsContexts = new ConcurrentHashMap<String, MemberStatsContext>();
+
+ terminationPendingStartedTime = new HashMap<String, Long>();
+ // check if a different value has been set for expiryTime
+ XMLConfiguration conf = ConfUtil.getInstance(null).getConfiguration();
+ pendingMemberExpiryTime = conf.getLong(StratosConstants.PENDING_MEMBER_EXPIRY_TIMEOUT, 900000);
+ obsoltedMemberExpiryTime = conf.getLong(StratosConstants.OBSOLETED_MEMBER_EXPIRY_TIMEOUT, 86400000);
+ spinTerminateParallel = conf.getBoolean(StratosConstants.SPIN_TERMINATE_PARALLEL, false);
+ terminationPendingMemberExpiryTime = conf.getLong(StratosConstants.PENDING_TERMINATION_MEMBER_EXPIRY_TIMEOUT, 1800000);
+ if (log.isDebugEnabled()) {
+ log.debug("Member expiry time is set to: " + pendingMemberExpiryTime);
+ log.debug("Member obsoleted expiry time is set to: " + obsoltedMemberExpiryTime);
+ log.debug("Member pending termination expiry time is set to: " + terminationPendingMemberExpiryTime);
+ }
+
+ Thread th = new Thread(new PendingMemberWatcher(this));
+ th.start();
+ Thread th2 = new Thread(new ObsoletedMemberWatcher(this));
+ th2.start();
+ Thread th3 = new Thread(new TerminationPendingMemberWatcher(this));
+ th3.start();
+ }
+
public void terminateAllRemainingInstances() {
// Forcefully deleting remaining active members
@@ -137,36 +167,6 @@ public class ClusterLevelPartitionContext extends PartitionContext implements Se
}
}
- public ClusterLevelPartitionContext(PartitionRef partition, String networkPartitionId, String deploymentPolicyId) {
-
- super(partition, networkPartitionId, deploymentPolicyId);
- this.pendingMembers = new ArrayList<MemberContext>();
- this.activeMembers = new ArrayList<MemberContext>();
- this.terminationPendingMembers = new ArrayList<MemberContext>();
- this.obsoletedMembers = new ConcurrentHashMap<String, MemberContext>();
- memberStatsContexts = new ConcurrentHashMap<String, MemberStatsContext>();
-
- terminationPendingStartedTime = new HashMap<String, Long>();
- // check if a different value has been set for expiryTime
- XMLConfiguration conf = ConfUtil.getInstance(null).getConfiguration();
- pendingMemberExpiryTime = conf.getLong(StratosConstants.PENDING_MEMBER_EXPIRY_TIMEOUT, 900000);
- obsoltedMemberExpiryTime = conf.getLong(StratosConstants.OBSOLETED_MEMBER_EXPIRY_TIMEOUT, 86400000);
- spinTerminateParallel = conf.getBoolean(StratosConstants.SPIN_TERMINATE_PARALLEL, false);
- terminationPendingMemberExpiryTime = conf.getLong(StratosConstants.PENDING_TERMINATION_MEMBER_EXPIRY_TIMEOUT, 1800000);
- if (log.isDebugEnabled()) {
- log.debug("Member expiry time is set to: " + pendingMemberExpiryTime);
- log.debug("Member obsoleted expiry time is set to: " + obsoltedMemberExpiryTime);
- log.debug("Member pending termination expiry time is set to: " + terminationPendingMemberExpiryTime);
- }
-
- Thread th = new Thread(new PendingMemberWatcher(this));
- th.start();
- Thread th2 = new Thread(new ObsoletedMemberWatcher(this));
- th2.start();
- Thread th3 = new Thread(new TerminationPendingMemberWatcher(this));
- th3.start();
- }
-
public long getTerminationPendingStartedTimeOfMember(String memberId) {
return terminationPendingStartedTime.get(memberId);
}
@@ -488,7 +488,7 @@ public class ClusterLevelPartitionContext extends PartitionContext implements Se
public int getNonTerminatedMemberCount() {
int nonTerminatedMemberCount = 0;
- if(spinTerminateParallel) {
+ if (spinTerminateParallel) {
// Returning all the pending members as there shouldn't be a spawning
// before complete termination.
// Will be applicable only when having min1*max1 situation
@@ -653,8 +653,8 @@ public class ClusterLevelPartitionContext extends PartitionContext implements Se
}
private class PendingMemberWatcher implements Runnable {
- private ClusterLevelPartitionContext ctxt;
private final Log log = LogFactory.getLog(PendingMemberWatcher.class);
+ private ClusterLevelPartitionContext ctxt;
public PendingMemberWatcher(ClusterLevelPartitionContext ctxt) {
this.ctxt = ctxt;
@@ -675,16 +675,16 @@ public class ClusterLevelPartitionContext extends PartitionContext implements Se
String clusterInstanceId = pendingMember.getClusterInstanceId();
String clusterId = pendingMember.getClusterId();
String serviceName = pendingMember.getCartridgeType();
- Service service = TopologyManager.getTopology().
+ Service service = TopologyManager.getTopology().
getService(serviceName);
ClusterStatus status = ClusterStatus.Terminated;
- if(service != null) {
+ if (service != null) {
Cluster cluster = service.getCluster(clusterId);
- if(cluster != null) {
+ if (cluster != null) {
ClusterInstance instance = cluster.
getInstanceContexts(clusterInstanceId);
- if(instance!= null) {
+ if (instance != null) {
status = instance.getStatus();
}
}
@@ -725,8 +725,8 @@ public class ClusterLevelPartitionContext extends PartitionContext implements Se
}
private class ObsoletedMemberWatcher implements Runnable {
- private ClusterLevelPartitionContext ctxt;
private final Log log = LogFactory.getLog(ObsoletedMemberWatcher.class);
+ private ClusterLevelPartitionContext ctxt;
public ObsoletedMemberWatcher(ClusterLevelPartitionContext ctxt) {
this.ctxt = ctxt;
@@ -792,8 +792,8 @@ public class ClusterLevelPartitionContext extends PartitionContext implements Se
* This thread is responsible for moving member to obsolete list if pending termination timeout happens
*/
private class TerminationPendingMemberWatcher implements Runnable {
- private ClusterLevelPartitionContext ctxt;
private final Log log = LogFactory.getLog(TerminationPendingMemberWatcher.class);
+ private ClusterLevelPartitionContext ctxt;
public TerminationPendingMemberWatcher(ClusterLevelPartitionContext ctxt) {
this.ctxt = ctxt;
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/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 678e898..0e79647 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
@@ -121,8 +121,8 @@ public class NetworkPartitionContext {
public List<InstanceContext> getInstanceIdToInstanceContextMap(String parentInstanceId) {
List<InstanceContext> instanceContexts = new ArrayList<InstanceContext>();
- for(InstanceContext instanceContext : instanceIdToInstanceContextMap.values()) {
- if(instanceContext.getParentInstanceId().equals(parentInstanceId)) {
+ for (InstanceContext instanceContext : instanceIdToInstanceContextMap.values()) {
+ if (instanceContext.getParentInstanceId().equals(parentInstanceId)) {
instanceContexts.add(instanceContext);
}
}
@@ -160,8 +160,8 @@ public class NetworkPartitionContext {
public List<InstanceContext> getActiveInstances(String parentInstanceId) {
List<InstanceContext> instanceContexts = new ArrayList<InstanceContext>();
- for(InstanceContext instanceContext : activeInstances) {
- if(instanceContext.getParentInstanceId().equals(parentInstanceId)) {
+ for (InstanceContext instanceContext : activeInstances) {
+ if (instanceContext.getParentInstanceId().equals(parentInstanceId)) {
instanceContexts.add(instanceContext);
}
}
@@ -170,8 +170,8 @@ public class NetworkPartitionContext {
public List<InstanceContext> getPendingInstances(String parentInstanceId) {
List<InstanceContext> instanceContexts = new ArrayList<InstanceContext>();
- for(InstanceContext instanceContext : pendingInstances) {
- if(instanceContext.getParentInstanceId().equals(parentInstanceId)) {
+ for (InstanceContext instanceContext : pendingInstances) {
+ if (instanceContext.getParentInstanceId().equals(parentInstanceId)) {
instanceContexts.add(instanceContext);
}
}
@@ -188,8 +188,8 @@ public class NetworkPartitionContext {
public int getPendingInstancesCount(String parentInstanceId) {
List<InstanceContext> instanceContexts = new ArrayList<InstanceContext>();
- for(InstanceContext instanceContext : pendingInstances) {
- if(instanceContext.getParentInstanceId().equals(parentInstanceId)) {
+ for (InstanceContext instanceContext : pendingInstances) {
+ if (instanceContext.getParentInstanceId().equals(parentInstanceId)) {
instanceContexts.add(instanceContext);
}
}
@@ -203,8 +203,8 @@ public class NetworkPartitionContext {
public int getActiveInstancesCount(String parentInstanceId) {
List<InstanceContext> instanceContexts = new ArrayList<InstanceContext>();
- for(InstanceContext instanceContext : activeInstances) {
- if(instanceContext.getParentInstanceId().equals(parentInstanceId)) {
+ for (InstanceContext instanceContext : activeInstances) {
+ if (instanceContext.getParentInstanceId().equals(parentInstanceId)) {
instanceContexts.add(instanceContext);
}
}
@@ -321,14 +321,14 @@ public class NetworkPartitionContext {
public int getNonTerminatedInstancesCount(String parentInstanceId) {
List<InstanceContext> instanceContexts = new ArrayList<InstanceContext>();
- for(InstanceContext instanceContext : activeInstances) {
- if(instanceContext.getParentInstanceId().equals(parentInstanceId)) {
+ for (InstanceContext instanceContext : activeInstances) {
+ if (instanceContext.getParentInstanceId().equals(parentInstanceId)) {
instanceContexts.add(instanceContext);
}
}
- for(InstanceContext instanceContext : pendingInstances) {
- if(instanceContext.getParentInstanceId().equals(parentInstanceId)) {
+ for (InstanceContext instanceContext : pendingInstances) {
+ if (instanceContext.getParentInstanceId().equals(parentInstanceId)) {
instanceContexts.add(instanceContext);
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/publisher/InstanceNotificationPublisher.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/publisher/InstanceNotificationPublisher.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/publisher/InstanceNotificationPublisher.java
index a33329a..52d3af1 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/publisher/InstanceNotificationPublisher.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/publisher/InstanceNotificationPublisher.java
@@ -31,14 +31,6 @@ import org.apache.stratos.messaging.util.MessagingUtil;
public class InstanceNotificationPublisher {
private static final Log log = LogFactory.getLog(InstanceNotificationPublisher.class);
- /* An instance of InstanceNotificationPublisher is created when the class is loaded.
- * Since the class is loaded only once, it is guaranteed that an object of
- * InstanceNotificationPublisher is created only once. Hence it is singleton.
- */
- private static class InstanceHolder {
- private static final InstanceNotificationPublisher INSTANCE = new InstanceNotificationPublisher();
- }
-
public static InstanceNotificationPublisher getInstance() {
return InstanceHolder.INSTANCE;
}
@@ -66,4 +58,12 @@ public class InstanceNotificationPublisher {
log.info(String.format("Publishing Instance Cleanup Event: [member] %s", memberId));
publish(new InstanceCleanupMemberEvent(memberId));
}
+
+ /* An instance of InstanceNotificationPublisher is created when the class is loaded.
+ * Since the class is loaded only once, it is guaranteed that an object of
+ * InstanceNotificationPublisher is created only once. Hence it is singleton.
+ */
+ private static class InstanceHolder {
+ private static final InstanceNotificationPublisher INSTANCE = new InstanceNotificationPublisher();
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/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 119c9c6..3a8c457 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
@@ -93,7 +93,7 @@ public class AutoscalerTopologyEventReceiver {
getApplications().values()) {
ApplicationContext applicationContext =
AutoscalerContext.getInstance().
- getApplicationContext(application.getUniqueIdentifier());
+ getApplicationContext(application.getUniqueIdentifier());
if (applicationContext != null && applicationContext.getStatus().
equals(ApplicationContext.STATUS_DEPLOYED)) {
if (AutoscalerUtil.allClustersInitialized(application)) {
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/Monitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/Monitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/Monitor.java
index a32e024..170d99f 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/Monitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/Monitor.java
@@ -27,11 +27,6 @@ import java.util.*;
* Abstract class for the monitoring functionality in Autoscaler.
*/
public abstract class Monitor implements EventHandler, Runnable {
- //Monitor types
- public enum MonitorType {
- Application, Group, Cluster
- }
-
//Id of the monitor, cluster=clusterId, group=group-alias, application=app-alias
protected String id;
//The parent app which this monitor relates to
@@ -42,7 +37,6 @@ public abstract class Monitor implements EventHandler, Runnable {
protected boolean hasStartupDependents;
//monitors map, key=InstanceId and value=ClusterInstance/GroupInstance/ApplicationInstance
protected Map<String, Instance> instanceIdToInstanceMap;
-
public Monitor() {
this.instanceIdToInstanceMap = new HashMap<String, Instance>();
}
@@ -75,13 +69,6 @@ public abstract class Monitor implements EventHandler, Runnable {
}
/**
- * Return the type of the monitor.
- *
- * @return monitor type
- */
- public abstract MonitorType getMonitorType();
-
- /**
* Set the id of the monitor
*
* @param id id of the monitor
@@ -91,6 +78,13 @@ public abstract class Monitor implements EventHandler, Runnable {
}
/**
+ * Return the type of the monitor.
+ *
+ * @return monitor type
+ */
+ public abstract MonitorType getMonitorType();
+
+ /**
* To get the appId of the monitor
*
* @return application id of the monitor
@@ -216,4 +210,9 @@ public abstract class Monitor implements EventHandler, Runnable {
public boolean hasInstance() {
return !instanceIdToInstanceMap.isEmpty();
}
+
+ //Monitor types
+ public enum MonitorType {
+ Application, Group, Cluster
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/MonitorFactory.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/MonitorFactory.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/MonitorFactory.java
index 0b265e6..cf7e06e 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/MonitorFactory.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/MonitorFactory.java
@@ -148,10 +148,10 @@ public class MonitorFactory {
//Find whether any other instances exists in group
// which has not been added to in-memory model in the restart
ApplicationMonitor applicationMonitor = AutoscalerContext.getInstance().getAppMonitor(appId);
- if(applicationMonitor != null && applicationMonitor.isRestarting()) {
+ if (applicationMonitor != null && applicationMonitor.isRestarting()) {
Collection<Instance> instances = parentMonitor.getInstances();
- for(Instance instance : instances) {
- if(!instanceIds.contains(instance.getInstanceId())) {
+ for (Instance instance : instances) {
+ if (!instanceIds.contains(instance.getInstanceId())) {
instanceIds.add(instance.getInstanceId());
}
}
@@ -241,8 +241,8 @@ public class MonitorFactory {
//Find whether any other instances exists in group
// which has not been added to in-memory model in the restart
Collection<Instance> instances = parentMonitor.getInstances();
- for(Instance instance : instances) {
- if(!parentInstanceIds.contains(instance.getInstanceId())) {
+ for (Instance instance : instances) {
+ if (!parentInstanceIds.contains(instance.getInstanceId())) {
parentInstanceIds.add(instance.getInstanceId());
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/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 d4a2746..43493bd 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
@@ -84,23 +84,21 @@ import java.util.concurrent.atomic.AtomicBoolean;
*/
public class ClusterMonitor extends Monitor {
+ private static final Log log = LogFactory.getLog(ClusterMonitor.class);
private final ScheduledExecutorService scheduler;
private final ExecutorService executorService;
-
protected boolean hasFaultyMember = false;
protected ClusterContext clusterContext;
+ protected String serviceType;
+ protected String clusterId;
// future to cancel it when destroying monitors
private ScheduledFuture<?> schedulerFuture;
- protected String serviceType;
private AtomicBoolean monitoringStarted;
- protected String clusterId;
private Cluster cluster;
private int monitoringIntervalMilliseconds;
//has scaling dependents
private boolean hasScalingDependents;
private boolean groupScalingEnabledSubtree;
-
- private static final Log log = LogFactory.getLog(ClusterMonitor.class);
private String deploymentPolicyId;
@@ -121,6 +119,27 @@ public class ClusterMonitor extends Monitor {
this.deploymentPolicyId = deploymentPolicyId;
}
+ private static void createClusterInstance(String serviceType,
+ String clusterId, String alias, String instanceId,
+ String partitionId, String networkPartitionId) {
+
+ try {
+ CloudControllerServiceClient.getInstance().createClusterInstance(
+ serviceType, clusterId, alias, instanceId, partitionId,
+ networkPartitionId);
+ } catch (RemoteException e) {
+ String msg = " Exception occurred in creating cluster instance with cluster-id [" + clusterId
+ + "] instance-id [" + instanceId + "] service-type [" + serviceType + "]"
+ + "] alias [" + alias + "] partition-id [" + partitionId + "]"
+ + "] network-parition-id [" + networkPartitionId + "]"
+ + " .Reason [" + e.getMessage() + "]";
+ log.error(msg);
+ throw new RuntimeException(msg, e);
+ }
+
+
+ }
+
@Override
public MonitorType getMonitorType() {
return MonitorType.Cluster;
@@ -246,27 +265,6 @@ public class ClusterMonitor extends Monitor {
return groupScalingEnabledSubtree;
}
- private static void createClusterInstance(String serviceType,
- String clusterId, String alias, String instanceId,
- String partitionId, String networkPartitionId) {
-
- try {
- CloudControllerServiceClient.getInstance().createClusterInstance(
- serviceType, clusterId, alias, instanceId, partitionId,
- networkPartitionId);
- } catch (RemoteException e) {
- String msg = " Exception occurred in creating cluster instance with cluster-id [" + clusterId
- + "] instance-id [" + instanceId + "] service-type [" + serviceType + "]"
- + "] alias [" + alias + "] partition-id [" + partitionId + "]"
- + "] network-parition-id [" + networkPartitionId + "]"
- + " .Reason [" + e.getMessage() + "]";
- log.error(msg);
- throw new RuntimeException(msg, e);
- }
-
-
- }
-
public void handleAverageLoadAverageEvent(
AverageLoadAverageEvent averageLoadAverageEvent) {
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/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 c917f2d..41b6e1f 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
@@ -120,7 +120,7 @@ public class ApplicationMonitor extends ParentComponentMonitor {
getInstanceIdToInstanceContextMap().values()) {
ApplicationInstance instance = (ApplicationInstance) instanceIdToInstanceMap.
get(instanceContext.getId());
- ParentInstanceContext parentInstanceContext = (ParentInstanceContext)instanceContext;
+ ParentInstanceContext parentInstanceContext = (ParentInstanceContext) instanceContext;
//stopping the monitoring when the group is inactive/Terminating/Terminated
if (instance.getStatus().getCode() <= ApplicationStatus.Active.getCode()) {
//Gives priority to scaling max out rather than dependency scaling
@@ -152,7 +152,7 @@ public class ApplicationMonitor extends ParentComponentMonitor {
if (application != null) {
List<String> defaultNetworkPartitions = getDefaultNetworkPartitions(application);
//Checking for whether minimum application instances are there.
- if(defaultNetworkPartitions != null) {
+ if (defaultNetworkPartitions != null) {
checkForMinimumApplicationInstances(application, defaultNetworkPartitions);
}
@@ -328,7 +328,7 @@ public class ApplicationMonitor extends ParentComponentMonitor {
}
}
//Starting the dependencies
- if(!instanceIds.isEmpty()) {
+ if (!instanceIds.isEmpty()) {
startDependency(application, instanceIds);
}
@@ -339,10 +339,10 @@ public class ApplicationMonitor extends ParentComponentMonitor {
for (NetworkPartitionContext networkPartitionContext : networkPartitionContextsMap.values()) {
String nPartitionId = networkPartitionContext.getId();
- if(!defaultNetworkPartitions.contains(nPartitionId)) {
+ if (!defaultNetworkPartitions.contains(nPartitionId)) {
log.info("The [application] " + appId + " runtime cannot be in [network-partition] "
+ nPartitionId + " as it is removed from the [application-policy]...!");
- for(InstanceContext instanceContext: networkPartitionContext.
+ for (InstanceContext instanceContext : networkPartitionContext.
getInstanceIdToInstanceContextMap().values()) {
//Handling application instance termination
ApplicationBuilder.handleApplicationInstanceTerminatingEvent(this.appId,
@@ -554,7 +554,7 @@ public class ApplicationMonitor extends ParentComponentMonitor {
getInstanceByNetworkPartitionId(context.getId());
if (appInstance != null) {
//use the existing instance in the Topology to create the data
- if(!isRestarting) {
+ if (!isRestarting) {
this.setRestarting(true);
}
instanceId = handleApplicationInstanceCreation(application, context, appInstance);
@@ -588,7 +588,7 @@ public class ApplicationMonitor extends ParentComponentMonitor {
" [appInstanceId] " + instance.getInstanceId());
}
}
- if(!instanceIds.isEmpty()) {
+ if (!instanceIds.isEmpty()) {
startDependency(application, instanceIds);
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/a2749a9e/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 eee0a3a..c3e89ee 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
@@ -125,7 +125,7 @@ public class GroupMonitor extends ParentComponentMonitor {
for (InstanceContext instanceContext : networkPartitionContext.
getInstanceIdToInstanceContextMap().values()) {
- ParentInstanceContext parentInstanceContext = (ParentInstanceContext)instanceContext;
+ ParentInstanceContext parentInstanceContext = (ParentInstanceContext) instanceContext;
GroupInstance instance = (GroupInstance) instanceIdToInstanceMap.
get(instanceContext.getId());
//stopping the monitoring when the group is inactive/Terminating/Terminated
@@ -158,7 +158,7 @@ public class GroupMonitor extends ParentComponentMonitor {
Collection<Instance> parentInstances = parent.getInstances();
for (Instance parentInstance : parentInstances) {
- if(parentInstance.getNetworkPartitionId().equals(networkPartitionContext.getId())) {
+ if (parentInstance.getNetworkPartitionId().equals(networkPartitionContext.getId())) {
int nonTerminatedInstancesCount = networkPartitionContext.
getNonTerminatedInstancesCount(parentInstance.getInstanceId());
int minInstances = networkPartitionContext.
@@ -183,8 +183,8 @@ public class GroupMonitor extends ParentComponentMonitor {
if (activeAppInstances > 0) {
//Creating new group instance based on the existing parent instances
log.info("Creating a group instance of [application] "
- + appId + " [group] " + id +
- " as the the minimum required instances are not met");
+ + appId + " [group] " + id +
+ " as the the minimum required instances are not met");
createInstanceOnDemand(parentInstanceContext.getId());
}
@@ -204,10 +204,10 @@ public class GroupMonitor extends ParentComponentMonitor {
InstanceContext instanceContext = contextList.get(i);
//scale down only when extra instances found
log.info("Terminating a group instance of [application] "
- + appId + " [group] " + id + " as it exceeded the " +
- "maximum no of instances by " + instancesToBeTerminated);
+ + appId + " [group] " + id + " as it exceeded the " +
+ "maximum no of instances by " + instancesToBeTerminated);
- handleScalingDownBeyondMin((ParentInstanceContext)instanceContext,
+ handleScalingDownBeyondMin((ParentInstanceContext) instanceContext,
networkPartitionContext, true);
}
@@ -282,7 +282,7 @@ public class GroupMonitor extends ParentComponentMonitor {
} else {
if (groupScalingEnabled) {
if (nwPartitionContext.getNonTerminatedInstancesCount() >
- nwPartitionContext.getMinInstanceCount()) {
+ nwPartitionContext.getMinInstanceCount()) {
//send terminating to the specific group instance in the scale down
ApplicationBuilder.handleGroupTerminatingEvent(this.appId, this.id,
instanceContext.getId());
@@ -505,7 +505,7 @@ public class GroupMonitor extends ParentComponentMonitor {
getAppMonitor(appId);
//In case if the group instance is not in terminating while application is
// terminating, changing the status to terminating
- if(applicationMonitor.isTerminating() && instance.getStatus().getCode() < 3) {
+ if (applicationMonitor.isTerminating() && instance.getStatus().getCode() < 3) {
//Sending group instance terminating event
ApplicationBuilder.handleGroupTerminatingEvent(appId, id, instanceId);
}
@@ -672,8 +672,8 @@ public class GroupMonitor extends ParentComponentMonitor {
* @return the group level network partition context
*/
private NetworkPartitionContext getGroupLevelNetworkPartitionContext(String groupAlias,
- String appId,
- Instance parentInstanceContext) {
+ String appId,
+ Instance parentInstanceContext) {
NetworkPartitionContext parentLevelNetworkPartitionContext;
String deploymentPolicyId = AutoscalerUtil.getDeploymentPolicyIdByAlias(appId, groupAlias);
DeploymentPolicy deploymentPolicy = PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId);
@@ -780,7 +780,7 @@ public class GroupMonitor extends ParentComponentMonitor {
* Creates the group instance and adds the required context objects
*
* @param group the group
- * @param parentInstance the parent instance context
+ * @param parentInstance the parent instance context
* @param partitionContext partition-context used to create the group instance
* @param parentLevelNetworkPartitionContext the group level network partition context
*/