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 2014/12/22 08:27:32 UTC

[1/3] stratos git commit: Implementing parent notification in case of group scaling is disabled in the group

Repository: stratos
Updated Branches:
  refs/heads/master a61e97616 -> fbc20b008


Implementing parent notification in case of group scaling is disabled in the group


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

Branch: refs/heads/master
Commit: fbc20b0080dbcddb8c705e6d3455656ecbc9defb
Parents: ba8d192
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Mon Dec 22 12:59:33 2014 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Mon Dec 22 12:59:51 2014 +0530

----------------------------------------------------------------------
 .../monitor/component/ApplicationMonitor.java   |  9 ++++++
 .../monitor/component/GroupMonitor.java         | 31 +++++++++++++++++---
 .../component/ParentComponentMonitor.java       |  8 +----
 3 files changed, 37 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/fbc20b00/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 73e2f6c..f9dcf56 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
@@ -130,6 +130,15 @@ public class ApplicationMonitor extends ParentComponentMonitor {
         monitoringRunnable.run();
     }
 
+    @Override
+    public void onChildScalingDownBeyondMinEvent(ScalingDownBeyondMinEvent scalingDownBeyondMinEvent) {
+
+        String networkPartitionId = scalingDownBeyondMinEvent.getNetworkPartitionId();
+        String instanceId = scalingDownBeyondMinEvent.getInstanceId();
+        getNetworkPartitionContext(networkPartitionId).getInstanceContext(instanceId).
+                addScalingDownBeyondMinEvent(scalingDownBeyondMinEvent);
+    }
+
     /**
      * Find the group monitor by traversing recursively in the hierarchical monitors.
      *

http://git-wip-us.apache.org/repos/asf/stratos/blob/fbc20b00/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 36c463b..33ade21 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
@@ -47,10 +47,7 @@ import org.apache.stratos.messaging.domain.instance.Instance;
 import org.apache.stratos.messaging.domain.topology.ClusterStatus;
 import org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleState;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
+import java.util.*;
 
 /**
  * This is GroupMonitor to monitor the group which consists of
@@ -175,7 +172,11 @@ public class GroupMonitor extends ParentComponentMonitor {
                                 //Resetting the max events
                                 instanceContext.setIdToScalingOverMaxEvent(
                                         new HashMap<String, ScalingUpBeyondMaxEvent>());
+                            } else if(!instanceContext.getIdToScalingDownBeyondMinEvent().isEmpty()){
+
+                                handleScalingDownBeyondMin(instanceContext, networkPartitionContext);
                             } else {
+
                                 handleDependentScaling(instanceContext, networkPartitionContext);
                             }
                         }
@@ -190,6 +191,28 @@ public class GroupMonitor extends ParentComponentMonitor {
         monitoringRunnable.run();
     }
 
+    @Override
+    public void onChildScalingDownBeyondMinEvent(ScalingDownBeyondMinEvent scalingDownBeyondMinEvent) {
+
+        if(groupScalingEnabled){
+
+            String networkPartitionId = scalingDownBeyondMinEvent.getNetworkPartitionId();
+            String instanceId = scalingDownBeyondMinEvent.getInstanceId();
+            getNetworkPartitionContext(networkPartitionId).getInstanceContext(instanceId).
+                    addScalingDownBeyondMinEvent(scalingDownBeyondMinEvent);
+        } else {
+
+            ScalingDownBeyondMinEvent newScalingDownBeyondMinEvent = new ScalingDownBeyondMinEvent(this.id,
+                    scalingDownBeyondMinEvent.getNetworkPartitionId(), scalingDownBeyondMinEvent.getInstanceId());
+            this.parent.onChildScalingDownBeyondMinEvent(newScalingDownBeyondMinEvent);
+        }
+    }
+
+    private void handleScalingDownBeyondMin(InstanceContext instanceContext, NetworkPartitionContext nwPartitionContext) {
+
+        //TODO implement action on scaling down the group instances
+    }
+
     /**
      * Will set the status of the monitor based on Topology Group status/child status like scaling
      *

http://git-wip-us.apache.org/repos/asf/stratos/blob/fbc20b00/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 cc36146..73766e2 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
@@ -772,13 +772,7 @@ public abstract class ParentComponentMonitor extends Monitor implements Runnable
         return scalingDependencies;
     }
 
-    public void onChildScalingDownBeyondMinEvent(ScalingDownBeyondMinEvent scalingDownBeyondMinEvent){
-
-        String networkPartitionId = scalingDownBeyondMinEvent.getNetworkPartitionId();
-        String instanceId = scalingDownBeyondMinEvent.getInstanceId();
-        getNetworkPartitionContext(networkPartitionId).getInstanceContext(instanceId).
-                addScalingDownBeyondMinEvent(scalingDownBeyondMinEvent);
-    }
+    public abstract void onChildScalingDownBeyondMinEvent(ScalingDownBeyondMinEvent scalingDownBeyondMinEvent);
 
     private class MonitorAdder implements Runnable {
         private ApplicationChildContext context;


[2/3] stratos git commit: implement onChildScalingDownBeyondMinEvent in super class instead of child classes

Posted by la...@apache.org.
implement onChildScalingDownBeyondMinEvent in super class instead of child classes


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

Branch: refs/heads/master
Commit: ba8d19263c745dc4cb1f6fa9c416ec0d2fa77af8
Parents: 9de91b1
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Mon Dec 22 11:50:34 2014 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Mon Dec 22 12:59:51 2014 +0530

----------------------------------------------------------------------
 .../autoscaler/monitor/component/ApplicationMonitor.java     | 6 ------
 .../stratos/autoscaler/monitor/component/GroupMonitor.java   | 5 -----
 .../autoscaler/monitor/component/ParentComponentMonitor.java | 8 +++++++-
 3 files changed, 7 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/ba8d1926/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 33c79f2..73e2f6c 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
@@ -130,12 +130,6 @@ public class ApplicationMonitor extends ParentComponentMonitor {
         monitoringRunnable.run();
     }
 
-    @Override
-    public void onChildScalingDownBeyondMinEvent(ScalingDownBeyondMinEvent scalingDownBeyondMinEvent) {
-
-    }
-
-
     /**
      * Find the group monitor by traversing recursively in the hierarchical monitors.
      *

http://git-wip-us.apache.org/repos/asf/stratos/blob/ba8d1926/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 5bb8aab..36c463b 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
@@ -190,11 +190,6 @@ public class GroupMonitor extends ParentComponentMonitor {
         monitoringRunnable.run();
     }
 
-    @Override
-    public void onChildScalingDownBeyondMinEvent(ScalingDownBeyondMinEvent scalingDownBeyondMinEvent) {
-
-    }
-
     /**
      * Will set the status of the monitor based on Topology Group status/child status like scaling
      *

http://git-wip-us.apache.org/repos/asf/stratos/blob/ba8d1926/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 73766e2..cc36146 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
@@ -772,7 +772,13 @@ public abstract class ParentComponentMonitor extends Monitor implements Runnable
         return scalingDependencies;
     }
 
-    public abstract void onChildScalingDownBeyondMinEvent(ScalingDownBeyondMinEvent scalingDownBeyondMinEvent);
+    public void onChildScalingDownBeyondMinEvent(ScalingDownBeyondMinEvent scalingDownBeyondMinEvent){
+
+        String networkPartitionId = scalingDownBeyondMinEvent.getNetworkPartitionId();
+        String instanceId = scalingDownBeyondMinEvent.getInstanceId();
+        getNetworkPartitionContext(networkPartitionId).getInstanceContext(instanceId).
+                addScalingDownBeyondMinEvent(scalingDownBeyondMinEvent);
+    }
 
     private class MonitorAdder implements Runnable {
         private ApplicationChildContext context;


[3/3] stratos git commit: Adding idToScalingDownBeyondMinEvent to instanceContext

Posted by la...@apache.org.
Adding idToScalingDownBeyondMinEvent to instanceContext


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

Branch: refs/heads/master
Commit: 9de91b133868dc20cbdd64f6e37c8ef040284650
Parents: a61e976
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Mon Dec 22 11:45:29 2014 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Mon Dec 22 12:59:51 2014 +0530

----------------------------------------------------------------------
 .../autoscaler/context/InstanceContext.java     | 27 +++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/9de91b13/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/InstanceContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/InstanceContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/InstanceContext.java
index 74762b8..e87b34a 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/InstanceContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/InstanceContext.java
@@ -18,6 +18,7 @@
  */
 package org.apache.stratos.autoscaler.context;
 
+import org.apache.stratos.autoscaler.monitor.events.ScalingDownBeyondMinEvent;
 import org.apache.stratos.autoscaler.monitor.events.ScalingEvent;
 import org.apache.stratos.autoscaler.monitor.events.ScalingUpBeyondMaxEvent;
 
@@ -34,14 +35,18 @@ public abstract class InstanceContext {
 
     //key=id of the child, value=ScalingEvent
     private Map<String, ScalingEvent> idToScalingEvent;
-    //key=id of the child, value=MaxOutScalingEvent
+    //key=id of the child, value=ScalingUpBeyondMaxEvent
     private Map<String, ScalingUpBeyondMaxEvent> idToScalingOverMaxEvent;
+    //key=id of the child, value=ScalingDownBeyondMinEvent
+    private Map<String, ScalingDownBeyondMinEvent> idToScalingDownBeyondMinEvent;
 
 
     public InstanceContext(String id) {
         this.id = id;
         setIdToScalingEvent(new HashMap<String, ScalingEvent>());
         setIdToScalingOverMaxEvent(new HashMap<String, ScalingUpBeyondMaxEvent>());
+        setIdToScalingDownBeyondMinEvent(new HashMap<String, ScalingDownBeyondMinEvent>());
+
     }
 
     public String getId() {
@@ -76,6 +81,14 @@ public abstract class InstanceContext {
         this.idToScalingOverMaxEvent = idToScalingOverMaxEvent;
     }
 
+    public Map<String, ScalingDownBeyondMinEvent> getIdToScalingDownBeyondMinEvent() {
+        return idToScalingDownBeyondMinEvent;
+    }
+
+    public void setIdToScalingDownBeyondMinEvent(Map<String, ScalingDownBeyondMinEvent> idToScalingDownBeyondMinEvent) {
+        this.idToScalingDownBeyondMinEvent = idToScalingDownBeyondMinEvent;
+    }
+
     public void removeScalingEvent(String id) {
         this.idToScalingEvent.remove(id);
     }
@@ -100,6 +113,18 @@ public abstract class InstanceContext {
         this.idToScalingOverMaxEvent.put(scalingUpBeyondMaxEvent.getId(), scalingUpBeyondMaxEvent);
     }
 
+    public ScalingDownBeyondMinEvent getScalingDownBeyondMinEvent(String id) {
+        return this.idToScalingDownBeyondMinEvent.get(id);
+    }
+
+    public void removeScalingDownBeyondMinEvent(String id) {
+        this.idToScalingDownBeyondMinEvent.remove(id);
+    }
+
+    public void addScalingDownBeyondMinEvent(ScalingDownBeyondMinEvent scalingDownBeyondMinEvent) {
+        this.idToScalingDownBeyondMinEvent.put(scalingDownBeyondMinEvent.getId(), scalingDownBeyondMinEvent);
+    }
+
     public boolean containsScalingEvent(String id) {
         return this.idToScalingEvent.containsKey(id);
     }