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);
}