Repository: stratos
Updated Branches:
  refs/heads/4.0.0-grouping 1788f1b54 -> 2dac52796


adding simple dependency builder and find out monitors from application monitor


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

Branch: refs/heads/4.0.0-grouping
Commit: 2dac527966315693f7fe4619a40d9218d20571fa
Parents: 1788f1b
Author: reka <[email protected]>
Authored: Fri Sep 19 09:42:58 2014 +0530
Committer: reka <[email protected]>
Committed: Fri Sep 19 09:42:58 2014 +0530

----------------------------------------------------------------------
 .../stratos/autoscaler/AutoscalerContext.java   | 10 +----
 .../autoscaler/grouping/DependencyBuilder.java  |  5 ++-
 .../stratos/autoscaler/monitor/Monitor.java     | 41 +++++++++++++++++---
 .../monitor/application/ApplicationMonitor.java | 31 ++-------------
 .../autoscaler/monitor/group/GroupMonitor.java  |  2 +
 5 files changed, 45 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/2dac5279/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/AutoscalerContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/AutoscalerContext.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/AutoscalerContext.java
index 2854f13..1145204 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/AutoscalerContext.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/AutoscalerContext.java
@@ -41,6 +41,7 @@ public class AutoscalerContext {
         try {
             setMonitors(new HashMap<String, ClusterMonitor>());
             setLbMonitors(new HashMap<String, LbClusterMonitor>());
+            setAppMonitors(new HashMap<String, ApplicationMonitor>());
         } catch (Exception e) {
             log.error("Rule evaluateMinCheck error", e);
         }
@@ -54,7 +55,6 @@ public class AutoscalerContext {
     // Map<LBClusterId, LBClusterMonitor>
     private Map<String, LbClusterMonitor> lbMonitors;
 
-    private Map<String, GroupMonitor> groupMonitors;
 
     private Map<String, ApplicationMonitor> appMonitors;
 
@@ -70,14 +70,6 @@ public class AutoscalerContext {
         this.appMonitors = appMonitors;
     }
 
-    public Map<String, GroupMonitor> getGroupMonitors() {
-        return groupMonitors;
-    }
-
-    public void setGroupMonitors(Map<String, GroupMonitor> groupMonitors) {
-        this.groupMonitors = groupMonitors;
-    }
-
     public Map<String, StatusChecker> getStatusCheckers() {
         return statusCheckers;
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/2dac5279/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/DependencyBuilder.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/DependencyBuilder.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/DependencyBuilder.java
index 00bf9b4..a1e2406 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/DependencyBuilder.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/DependencyBuilder.java
@@ -20,6 +20,7 @@ package org.apache.stratos.autoscaler.grouping;
 
 import org.apache.stratos.messaging.domain.topology.Application;
 import org.apache.stratos.messaging.domain.topology.DependencyOrder;
+import org.apache.stratos.messaging.domain.topology.ParentBehavior;
 import org.apache.stratos.messaging.domain.topology.StartupOrder;
 
 import java.util.LinkedList;
@@ -32,10 +33,10 @@ import java.util.Set;
  */
 public class DependencyBuilder {
 
-    public static Queue<String> getStartupOrder(Application application) {
+    public static Queue<String> getStartupOrder(ParentBehavior component) {
 
         Queue<String> startup = new LinkedList<String>();
-        DependencyOrder dependencyOrder = application.getDependencyOrder();
+        DependencyOrder dependencyOrder = component.getDependencyOrder();
         Set<StartupOrder> startupOrderSet = dependencyOrder.getStartupOrders();
         for (StartupOrder startupOrder : startupOrderSet) {
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/2dac5279/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/Monitor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/Monitor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/Monitor.java
index 2291c06..6f66db1 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/Monitor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/Monitor.java
@@ -23,6 +23,7 @@ import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.AutoscalerContext;
 import org.apache.stratos.autoscaler.exception.PartitionValidationException;
 import org.apache.stratos.autoscaler.exception.PolicyValidationException;
+import org.apache.stratos.autoscaler.grouping.DependencyBuilder;
 import org.apache.stratos.autoscaler.monitor.cluster.ClusterMonitor;
 import org.apache.stratos.autoscaler.monitor.cluster.LbClusterMonitor;
 import org.apache.stratos.autoscaler.monitor.group.GroupMonitor;
@@ -30,11 +31,11 @@ import 
org.apache.stratos.autoscaler.status.checker.StatusChecker;
 import org.apache.stratos.autoscaler.util.AutoscalerUtil;
 import org.apache.stratos.messaging.domain.topology.Cluster;
 import org.apache.stratos.messaging.domain.topology.Group;
+import org.apache.stratos.messaging.domain.topology.ParentBehavior;
 import org.apache.stratos.messaging.event.Event;
+import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
 
-import java.util.Map;
-import java.util.Observable;
-import java.util.Observer;
+import java.util.*;
 
 /**
  * Monitor is to monitor it's child monitors and
@@ -48,7 +49,16 @@ public abstract class Monitor implements Observer, Runnable {
 
     protected Map<String, GroupMonitor> groupMonitors;
     protected Map<String, AbstractClusterMonitor> abstractClusterMonitors;
-    protected Map<String, StatusChecker> statusCheckers;
+
+    protected Queue<String> preOrderTraverse = new LinkedList<String>();
+
+    protected ParentBehavior component;
+
+    public Monitor(ParentBehavior component) {
+        this.component = component;
+        startDependency();
+    }
+
 
     public Map<String, GroupMonitor> getGroupMonitors() {
         return groupMonitors;
@@ -101,7 +111,28 @@ public abstract class Monitor implements Observer, 
Runnable {
         this.id = id;
     }
 
-
+    public void startDependency() {
+        preOrderTraverse = DependencyBuilder.getStartupOrder(component);
+
+        //TODO find out the parallel ones
+
+        //start the first dependency
+        String dependency = preOrderTraverse.poll();
+        if(dependency.contains("group")) {
+            startGroupMonitor(component.getGroup(dependency));
+        } else if(dependency.contains("cartridge")) {
+            String clusterId = component.getClusterId(dependency);
+            Cluster cluster = null;
+            TopologyManager.acquireReadLock();
+            cluster = 
TopologyManager.getTopology().getService(dependency).getCluster(clusterId);
+            TopologyManager.releaseReadLock();
+            if(cluster != null) {
+                startClusterMonitor(cluster);
+            } else {
+                //TODO throw exception since Topology is inconsistent
+            }
+        }
+    }
     protected synchronized void startClusterMonitor(Cluster cluster) {
         Thread th = null;
         if (cluster.isLbCluster()

http://git-wip-us.apache.org/repos/asf/stratos/blob/2dac5279/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 0b248f2..1407987 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
@@ -36,14 +36,10 @@ import java.util.*;
  */
 public class ApplicationMonitor extends Monitor {
     private static final Log log = LogFactory.getLog(ApplicationMonitor.class);
-    private Application application;
-    private Queue<String> preOrderTraverse = new LinkedList<String>();
 
     public ApplicationMonitor(Application application) {
-        this.application = application;
-        //TODO build dependencies and keep them here
-        startDependency();
-
+        super(application);
+        //TODO keep track of the parallel applications
     }
 
     @Override
@@ -59,28 +55,7 @@ public class ApplicationMonitor extends Monitor {
 
     }
 
-    public void startDependency() {
-        preOrderTraverse = DependencyBuilder.getStartupOrder(application);
-
-        //TODO find out the parallel ones
-
-        //start the first dependency
-        String dependency = preOrderTraverse.poll();
-        if(dependency.contains("group")) {
-            startGroupMonitor(application.getGroup(dependency));
-        } else if(dependency.contains("cartridge")) {
-            String clusterId = application.getClusterId(dependency);
-            Cluster cluster = null;
-            TopologyManager.acquireReadLock();
-            cluster = 
TopologyManager.getTopology().getService(dependency).getCluster(clusterId);
-            TopologyManager.releaseReadLock();
-            if(cluster != null) {
-                startClusterMonitor(cluster);
-            } else {
-                //TODO throw exception since Topology is inconsistent
-            }
-        }
-    }
+
 
     /**
      * Find the group monitor by traversing recursively in the hierarchical 
monitors.

http://git-wip-us.apache.org/repos/asf/stratos/blob/2dac5279/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/group/GroupMonitor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/group/GroupMonitor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/group/GroupMonitor.java
index 1688b82..3b4b2f4 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/group/GroupMonitor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/group/GroupMonitor.java
@@ -34,6 +34,8 @@ public class GroupMonitor extends Monitor {
 
 
     public GroupMonitor(Group group) {
+        super(group);
+        //TODO build dependencies and keep them here
 
     }
 

Reply via email to