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/05/19 12:01:13 UTC

[6/6] stratos git commit: Update references of Network partition contexs

Update references of Network partition contexs


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/080614ca
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/080614ca
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/080614ca

Branch: refs/heads/master
Commit: 080614ca0c20f78285f47702a6b8c9d98f0a9fea
Parents: dcbc80c
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Tue May 19 13:17:41 2015 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Tue May 19 15:30:57 2015 +0530

----------------------------------------------------------------------
 .../applications/topic/ApplicationBuilder.java  |  5 +-
 .../monitor/component/ApplicationMonitor.java   |  2 +-
 .../monitor/component/GroupMonitor.java         | 61 +++++++++++---------
 3 files changed, 37 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/080614ca/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
index b0315b1..7a4df82 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
@@ -652,7 +652,7 @@ public class ApplicationBuilder {
         ApplicationMonitor applicationMonitor = AutoscalerContext.getInstance().getAppMonitor(appId);
 
         if (applicationMonitor != null) {
-            NetworkPartitionContext context = applicationMonitor.
+            GroupLevelNetworkPartitionContext context = (GroupLevelNetworkPartitionContext) applicationMonitor.
                     getNetworkPartitionContext(networkPartitionId);
             if (status == ApplicationStatus.Active) {
                 if (log.isDebugEnabled()) {
@@ -693,7 +693,8 @@ public class ApplicationBuilder {
                                            String instanceId, String parentInstanceId) {
         GroupMonitor monitor = getGroupMonitor(appId, groupId);
         if (monitor != null) {
-            NetworkPartitionContext context = monitor.getNetworkPartitionContext(networkPartitionId);
+            GroupLevelNetworkPartitionContext context
+                    = (GroupLevelNetworkPartitionContext) monitor.getNetworkPartitionContext(networkPartitionId);
             if (status == GroupStatus.Active) {
                 if (log.isDebugEnabled()) {
                     log.debug("Moving pending group instance to active list in [group] " + groupId

http://git-wip-us.apache.org/repos/asf/stratos/blob/080614ca/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 f0dfd50..2d5ef12 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
@@ -144,7 +144,7 @@ public class ApplicationMonitor extends ParentComponentMonitor {
 
     private void handleScalingMaxOut(InstanceContext instanceContext,
                                      NetworkPartitionContext networkPartitionContext) {
-        if (networkPartitionContext.getPendingInstancesCount() == 0) {
+        if (((ApplicationLevelNetworkPartitionContext) networkPartitionContext).getPendingInstancesCount() == 0) {
             //handling the application bursting only when there are no pending instances found
             try {
                 if (log.isInfoEnabled()) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/080614ca/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 a890824..b9f90b4 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
@@ -155,24 +155,26 @@ public class GroupMonitor extends ParentComponentMonitor {
                         }
                     }
 
-                    int nonTerminatedInstancesCount = networkPartitionContext.
+                    GroupLevelNetworkPartitionContext groupLevelNetworkPartitionContext
+                            = (GroupLevelNetworkPartitionContext) networkPartitionContext;
+                    int nonTerminatedInstancesCount = groupLevelNetworkPartitionContext.
                             getNonTerminatedInstancesCount();
-                    int minInstances = ((GroupLevelNetworkPartitionContext) networkPartitionContext).
+                    int minInstances = groupLevelNetworkPartitionContext.
                             getMinInstanceCount();
-                    int maxInstances = ((GroupLevelNetworkPartitionContext) networkPartitionContext).
+                    int maxInstances = groupLevelNetworkPartitionContext.
                             getMaxInstanceCount();
-                    int activeInstances = networkPartitionContext.getActiveInstancesCount();
+                    int activeInstances = groupLevelNetworkPartitionContext.getActiveInstancesCount();
                     if (nonTerminatedInstancesCount < minInstances) {
                         int instancesToBeCreated = minInstances - nonTerminatedInstancesCount;
                         for (int i = 0; i < instancesToBeCreated; i++) {
                             for (InstanceContext parentInstanceContext : parent.
-                                    getNetworkPartitionContext(networkPartitionContext.getId()).
+                                    getNetworkPartitionContext(groupLevelNetworkPartitionContext.getId()).
                                     getInstanceIdToInstanceContextMap().values()) {
                                 //keep on scale-up/scale-down only if the application is active
                                 ApplicationMonitor appMonitor = AutoscalerContext.getInstance().
                                         getAppMonitor(appId);
-                                int activeAppInstances = appMonitor.
-                                        getNetworkPartitionContext(networkPartitionContext.getId()).
+                                int activeAppInstances = ((GroupLevelNetworkPartitionContext) appMonitor.
+                                        getNetworkPartitionContext(groupLevelNetworkPartitionContext.getId())).
                                         getActiveInstancesCount();
                                 if (activeAppInstances > 0) {
                                     //Creating new group instance based on the existing parent instances
@@ -245,30 +247,31 @@ public class GroupMonitor extends ParentComponentMonitor {
         // if it is a force scale-down
         if (allChildrenScaleDown || forceScaleDown) {
             if (hasScalingDependents) {
-                if (nwPartitionContext.getNonTerminatedInstancesCount() >
-                        ((GroupLevelNetworkPartitionContext)
-                                nwPartitionContext).getMinInstanceCount()) {
+                GroupLevelNetworkPartitionContext groupLevelNetworkPartitionContext
+                        = (GroupLevelNetworkPartitionContext) nwPartitionContext;
+                if (groupLevelNetworkPartitionContext.getNonTerminatedInstancesCount() >
+                        groupLevelNetworkPartitionContext.getMinInstanceCount()) {
                     //Will scale down based on dependent manner
-                    float minInstances = ((GroupLevelNetworkPartitionContext)
-                            nwPartitionContext).getMinInstanceCount();
+                    float minInstances = groupLevelNetworkPartitionContext.getMinInstanceCount();
                     float factor =
-                            (nwPartitionContext.getNonTerminatedInstancesCount() - 1) / minInstances;
-                    ScalingEvent scalingEvent = new ScalingEvent(this.id, nwPartitionContext.getId(),
+                            (groupLevelNetworkPartitionContext.getNonTerminatedInstancesCount() - 1) / minInstances;
+                    ScalingEvent scalingEvent = new ScalingEvent(this.id, groupLevelNetworkPartitionContext.getId(),
                             instanceContext.getId(), factor);
                     this.parent.onChildScalingEvent(scalingEvent);
                 } else {
                     //Parent has to handle this scale down as by dependent scale down
                     ScalingDownBeyondMinEvent newScalingDownBeyondMinEvent =
                             new ScalingDownBeyondMinEvent(this.id,
-                                    nwPartitionContext.getId(), instanceContext.getParentInstanceId());
+                                    groupLevelNetworkPartitionContext.getId(), instanceContext.getParentInstanceId());
                     this.parent.onChildScalingDownBeyondMinEvent(newScalingDownBeyondMinEvent);
                 }
 
             } else {
                 if (groupScalingEnabled) {
-                    if (nwPartitionContext.getNonTerminatedInstancesCount() >
-                            ((GroupLevelNetworkPartitionContext)
-                                    nwPartitionContext).getMinInstanceCount()) {
+                    GroupLevelNetworkPartitionContext groupLevelNetworkPartitionContext
+                            = (GroupLevelNetworkPartitionContext) nwPartitionContext;
+                    if (groupLevelNetworkPartitionContext.getNonTerminatedInstancesCount() >
+                            groupLevelNetworkPartitionContext.getMinInstanceCount()) {
                         //send terminating to the specific group instance in the scale down
                         ApplicationBuilder.handleGroupTerminatingEvent(this.appId, this.id,
                                 instanceContext.getId());
@@ -295,7 +298,7 @@ public class GroupMonitor extends ParentComponentMonitor {
     private void createGroupInstanceOnScaling(final NetworkPartitionContext networkPartitionContext,
                                               final String parentInstanceId) {
         if (groupScalingEnabled) {
-            if (networkPartitionContext.getPendingInstancesCount() == 0) {
+            if (((GroupLevelNetworkPartitionContext)networkPartitionContext).getPendingInstancesCount() == 0) {
                 //one of the child is loaded and max out.
                 // Hence creating new group instance
                 if (log.isDebugEnabled()) {
@@ -352,10 +355,11 @@ public class GroupMonitor extends ParentComponentMonitor {
             log.debug("This [Group] " + id + " [scale-up] dependencies. " +
                     "Hence notifying the [parent] " + parent.getId());
         }
+        GroupLevelNetworkPartitionContext groupLevelNetworkPartitionContext
+                = (GroupLevelNetworkPartitionContext) networkPartitionContext;
         //notifying the parent when scale dependents found
-        int maxInstances = ((GroupLevelNetworkPartitionContext)
-                networkPartitionContext).getMaxInstanceCount();
-        if (groupScalingEnabled && maxInstances > networkPartitionContext.
+        int maxInstances = groupLevelNetworkPartitionContext.getMaxInstanceCount();
+        if (groupScalingEnabled && maxInstances > groupLevelNetworkPartitionContext.
                 getNonTerminatedInstancesCount()) {
             //increase group by one more instance and calculate the factor for the group scaling
             // and notify parent to scale all the dependent in parallel with this factor
@@ -563,9 +567,10 @@ public class GroupMonitor extends ParentComponentMonitor {
                 get(networkPartitionId);
 
         float factor = scalingEvent.getFactor();
-        int currentInstances = networkPartitionContext.getNonTerminatedInstancesCount();
-        float requiredInstances = factor * ((GroupLevelNetworkPartitionContext)
-                networkPartitionContext).getMinInstanceCount();
+        GroupLevelNetworkPartitionContext groupLevelNetworkPartitionContext
+                = (GroupLevelNetworkPartitionContext) networkPartitionContext;
+        int currentInstances = groupLevelNetworkPartitionContext.getNonTerminatedInstancesCount();
+        float requiredInstances = factor * groupLevelNetworkPartitionContext.getMinInstanceCount();
         int ceilingRequiredInstances = (int) Math.ceil(requiredInstances);
         if (ceilingRequiredInstances > currentInstances) {
 
@@ -580,13 +585,13 @@ public class GroupMonitor extends ParentComponentMonitor {
             for (int count = 0; count < instancesToBeTerminated; count++) {
 
                 //have to scale down
-                if (networkPartitionContext.getPendingInstancesCount() != 0) {
+                if (groupLevelNetworkPartitionContext.getPendingInstancesCount() != 0) {
                     ApplicationBuilder.handleGroupTerminatingEvent(appId, this.id,
-                            networkPartitionContext.getPendingInstances().get(0).getId());
+                            groupLevelNetworkPartitionContext.getPendingInstances().get(0).getId());
 
                 } else {
                     List<InstanceContext> activeInstances =
-                            networkPartitionContext.getActiveInstances();
+                            groupLevelNetworkPartitionContext.getActiveInstances();
                     ApplicationBuilder.handleGroupTerminatingEvent(appId, this.id,
                             activeInstances.get(activeInstances.size() - 1).toString());
                 }