You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by re...@apache.org on 2014/12/05 20:54:51 UTC

[2/3] stratos git commit: fixing issue while parsing deployment policy for group

fixing issue while parsing deployment policy for group


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

Branch: refs/heads/master
Commit: 6c5c13a07daf29902b44c60dd4f2bf6cd9b4a3a4
Parents: cb33a20
Author: reka <rt...@gmail.com>
Authored: Sat Dec 6 00:08:33 2014 +0530
Committer: reka <rt...@gmail.com>
Committed: Sat Dec 6 00:27:53 2014 +0530

----------------------------------------------------------------------
 .../monitor/component/GroupMonitor.java         | 23 +++++++++++++-------
 .../domain/applications/ParentComponent.java    |  5 +++--
 2 files changed, 18 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/6c5c13a0/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 c8df090..e34fabb 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
@@ -299,9 +299,11 @@ public class GroupMonitor extends ParentComponentMonitor implements Runnable {
         Instance parentInstanceContext;
 
         Application application = ApplicationHolder.getApplications().getApplication(this.appId);
-        if (this.id.equals(appId)) {
+        //if parent is application
+        if (this.parent.getId().equals(appId)) {
             parentInstanceContext = application.getInstanceContexts(parentInstanceId);
         } else {
+            //if parent is group
             Group parentGroup = application.getGroupRecursively(this.parent.getId());
             parentInstanceContext = parentGroup.getInstanceContexts(parentInstanceId);
         }
@@ -456,7 +458,7 @@ public class GroupMonitor extends ParentComponentMonitor implements Runnable {
             String parentPartitionId = parentInstanceContext.getPartitionId();
 
             // Create GroupInstance for partition instance and add to required contexts for minimum instance count
-            int groupMin = groupLevelNetworkPartitionContext.getMinInstanceCount();
+            int groupMin = group.getGroupMinInstances();
 
             //Have to check whether group has generated its own instances
             List<Instance> existingGroupInstances = group.getInstanceContextsWithParentId(parentInstanceId);
@@ -526,7 +528,7 @@ public class GroupMonitor extends ParentComponentMonitor implements Runnable {
         String groupInstanceId;
         PartitionContext partitionContext;
         String parentPartitionId = parentInstanceContext.getPartitionId();
-        int groupMax = groupLevelNetworkPartitionContext.getMaxInstanceCount();
+        int groupMax = group.getGroupMaxInstances();
         if(group.getInstanceContextCount() < groupMax) {
             // Get partitionContext to create instance in
             if (parentPartitionId == null) {
@@ -539,11 +541,16 @@ public class GroupMonitor extends ParentComponentMonitor implements Runnable {
                 partitionContext = groupLevelNetworkPartitionContext.
                         getPartitionContextById(parentPartitionId);
             }
-            groupInstanceId = createGroupInstanceAndAddToMonitor(group, parentInstanceContext,
-                    partitionContext,
-                    groupLevelNetworkPartitionContext,
-                    null);
-            startDependency(group, groupInstanceId);
+            if(partitionContext != null) {
+                groupInstanceId = createGroupInstanceAndAddToMonitor(group, parentInstanceContext,
+                        partitionContext,
+                        groupLevelNetworkPartitionContext,
+                        null);
+                startDependency(group, groupInstanceId);
+            } else {
+                log.warn("[Group] " + group.getUniqueIdentifier() + " has reached the maximum limit as " +
+                        "[max] " + groupMax + ". Hence trying to notify the parent.");
+            }
         } else {
             log.warn("[Group] " + group.getUniqueIdentifier() + " has reached the maximum limit as " +
                     "[max] " + groupMax + ". Hence trying to notify the parent.");

http://git-wip-us.apache.org/repos/asf/stratos/blob/6c5c13a0/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ParentComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ParentComponent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ParentComponent.java
index 36eb406..8b8b879 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ParentComponent.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ParentComponent.java
@@ -268,10 +268,11 @@ public abstract class ParentComponent<T extends Instance> implements Serializabl
      */
     public List<Instance> getInstanceContextsWithParentId (String parentInstanceId) {
         // if map is empty, return null
+        List<Instance> contexts = new ArrayList<Instance>();
+
         if (getInstanceIdToInstanceContextMap().isEmpty()) {
-            return null;
+            return contexts;
         }
-        List<Instance> contexts = new ArrayList<Instance>();
 
         // if instanceId is null, just get the first InstanceContext
         if (parentInstanceId == null) {