Repository: stratos Updated Branches: refs/heads/master dd68738a4 -> f1b25fe46
fixing a compilation issue Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/f1b25fe4 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/f1b25fe4 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/f1b25fe4 Branch: refs/heads/master Commit: f1b25fe4684103e97c3fa5cc1ff072f4dea23d34 Parents: dd68738 Author: reka <[email protected]> Authored: Thu Nov 27 17:38:50 2014 +0530 Committer: reka <[email protected]> Committed: Thu Nov 27 17:38:50 2014 +0530 ---------------------------------------------------------------------- ...ntComponentLevelNetworkPartitionContext.java | 10 ++--- .../monitor/application/ApplicationMonitor.java | 41 +++++++++++++------- 2 files changed, 33 insertions(+), 18 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/f1b25fe4/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ParentComponentLevelNetworkPartitionContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ParentComponentLevelNetworkPartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ParentComponentLevelNetworkPartitionContext.java index e9ca470..d566c31 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ParentComponentLevelNetworkPartitionContext.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ParentComponentLevelNetworkPartitionContext.java @@ -56,7 +56,7 @@ public class ParentComponentLevelNetworkPartitionContext extends NetworkPartitio private int currentPartitionIndex; //partitions of this network partition - private final Map<String, PartitionContext> partitionCtxts; + private final Map<String, ClusterLevelPartitionContext> partitionCtxts; public ParentComponentLevelNetworkPartitionContext(String id, String partitionAlgo, Partition[] partitions) { @@ -68,7 +68,7 @@ public class ParentComponentLevelNetworkPartitionContext extends NetworkPartitio } else { this.partitions = Arrays.copyOf(partitions, partitions.length); } - partitionCtxts = new HashMap<String, PartitionContext>(); + partitionCtxts = new HashMap<String, ClusterLevelPartitionContext>(); for (Partition partition : partitions) { minInstanceCount += partition.getPartitionMin(); maxInstanceCount += partition.getPartitionMax(); @@ -144,15 +144,15 @@ public class ParentComponentLevelNetworkPartitionContext extends NetworkPartitio return id; } - public Map<String, PartitionContext> getPartitionCtxts() { + public Map<String, ClusterLevelPartitionContext> getPartitionCtxts() { return partitionCtxts; } - public PartitionContext getPartitionCtxt(String partitionId) { + public ClusterLevelPartitionContext getPartitionCtxt(String partitionId) { return partitionCtxts.get(partitionId); } - public void addPartitionContext(PartitionContext partitionContext) { + public void addPartitionContext(ClusterLevelPartitionContext partitionContext) { partitionCtxts.put(partitionContext.getPartitionId(), partitionContext); } http://git-wip-us.apache.org/repos/asf/stratos/blob/f1b25fe4/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/application/ApplicationMonitor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/application/ApplicationMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/application/ApplicationMonitor.java index 096cf06..78cf8c2 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/application/ApplicationMonitor.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/application/ApplicationMonitor.java @@ -21,6 +21,7 @@ package org.apache.stratos.autoscaler.monitor.application; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.autoscaler.ParentComponentLevelNetworkPartitionContext; +import org.apache.stratos.autoscaler.applications.ApplicationHolder; import org.apache.stratos.autoscaler.applications.topic.ApplicationBuilder; import org.apache.stratos.autoscaler.exception.DependencyBuilderException; import org.apache.stratos.autoscaler.exception.PolicyValidationException; @@ -185,6 +186,32 @@ public class ApplicationMonitor extends ParentComponentMonitor { private void createInstanceAndStartDependency(Application application) throws TopologyInConsistentException, PolicyValidationException { List<String> instanceIds = new ArrayList<String>(); + DeploymentPolicy deploymentPolicy = getDeploymentPolicy(application); + String instanceId; + for (PartitionGroup partitionGroup : deploymentPolicy.getPartitionGroups()) { + instanceId = createApplicationInstance(application, partitionGroup.getId()); + ParentComponentLevelNetworkPartitionContext context = new ParentComponentLevelNetworkPartitionContext(partitionGroup.getId(), + partitionGroup.getPartitionAlgo(), + partitionGroup.getPartitions()); + context.addInstanceContext(application.getInstanceContexts(instanceId)); + this.addNetworkPartitionContext(context); + + instanceIds.add(instanceId); + } + startDependency(application, instanceIds); + + + } + + public void createInstanceOnBurstingForApplication() throws TopologyInConsistentException { + //TODO get lock + Application application = ApplicationHolder.getApplications().getApplication(appId); + if(application == null) { + String msg = "Application cannot be found in the Topology."; + } + } + + private DeploymentPolicy getDeploymentPolicy(Application application) throws PolicyValidationException { String deploymentPolicyName = application.getDeploymentPolicy(); if (deploymentPolicyName == null) { String msg = "Deployment Policy is not specified to the [Application]:" + appId; @@ -202,20 +229,8 @@ public class ApplicationMonitor extends ParentComponentMonitor { throw new PolicyValidationException(msg); } } - String instanceId; - for (PartitionGroup partitionGroup : deploymentPolicy.getPartitionGroups()) { - instanceId = createApplicationInstance(application, partitionGroup.getId()); - ParentComponentLevelNetworkPartitionContext context = new ParentComponentLevelNetworkPartitionContext(partitionGroup.getId(), - partitionGroup.getPartitionAlgo(), - partitionGroup.getPartitions()); - context.addInstanceContext(application.getInstanceContexts(instanceId)); - this.addNetworkPartitionContext(context); - - instanceIds.add(instanceId); - } - startDependency(application, instanceIds); - + return deploymentPolicy; } private String createApplicationInstance(Application application, String networkPartitionId) {
