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/11 14:54:37 UTC

[7/7] stratos git commit: fixing undeployment by making the status calculation sync call

fixing undeployment by making the status calculation sync call


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

Branch: refs/heads/4.1.0-test
Commit: d64f31438ac9053334b221be4bb54499fa769085
Parents: 9ccd501
Author: reka <rt...@gmail.com>
Authored: Thu Dec 11 19:19:49 2014 +0530
Committer: reka <rt...@gmail.com>
Committed: Thu Dec 11 19:24:11 2014 +0530

----------------------------------------------------------------------
 .../applications/topic/ApplicationBuilder.java  |  7 +++++
 .../stratos/autoscaler/monitor/Monitor.java     |  2 ++
 .../monitor/cluster/AbstractClusterMonitor.java |  2 --
 .../monitor/component/ApplicationMonitor.java   |  5 ++++
 .../monitor/component/GroupMonitor.java         |  4 +++
 .../component/ParentComponentMonitor.java       | 12 ++++++---
 .../group/GroupStatusProcessorChain.java        | 28 ++++++++------------
 .../ApplicationInstanceActivatedEvent.java      |  1 -
 8 files changed, 38 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/d64f3143/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 1194a6f..ae87ac2 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
@@ -25,6 +25,7 @@ import org.apache.stratos.autoscaler.applications.pojo.ApplicationClusterContext
 import org.apache.stratos.autoscaler.client.CloudControllerClient;
 import org.apache.stratos.autoscaler.context.AutoscalerContext;
 import org.apache.stratos.autoscaler.event.publisher.ClusterStatusEventPublisher;
+import org.apache.stratos.autoscaler.monitor.Monitor;
 import org.apache.stratos.autoscaler.monitor.component.ApplicationMonitor;
 import org.apache.stratos.autoscaler.monitor.component.GroupMonitor;
 import org.apache.stratos.autoscaler.pojo.policy.PolicyManager;
@@ -345,6 +346,12 @@ public class ApplicationBuilder {
                 //removing the group instance and context
                 GroupMonitor monitor = getGroupMonitor(appId, groupId);
                 if(monitor != null) {
+                    if(monitor.hasMonitors()) {
+                       for(Monitor monitor1 : monitor.getAliasToActiveMonitorsMap().values()) {
+                           //destroying the drools
+                           monitor1.destroy();
+                       }
+                    }
                     monitor.getNetworkPartitionContext(context.getNetworkPartitionId()).
                             removeClusterGroupContext(instanceId);
                     monitor.removeInstance(instanceId);

http://git-wip-us.apache.org/repos/asf/stratos/blob/d64f3143/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 5656b19..88159c1 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
@@ -43,6 +43,8 @@ public abstract class Monitor implements EventHandler {
     //monitors map, key=InstanceId and value=ClusterInstance/GroupInstance/ApplicationInstance
     protected Map<String, Instance> instanceIdToInstanceMap;
 
+    public abstract void destroy();
+
     public Monitor() {
         this.instanceIdToInstanceMap = new HashMap<String, Instance>();
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/d64f3143/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/AbstractClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/AbstractClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/AbstractClusterMonitor.java
index 1248224..d39b805 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/AbstractClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/AbstractClusterMonitor.java
@@ -94,8 +94,6 @@ public abstract class AbstractClusterMonitor extends Monitor implements Runnable
 
     protected abstract void monitor();
 
-    public abstract void destroy();
-
     //handle health events
     public abstract void handleAverageLoadAverageEvent(
             AverageLoadAverageEvent averageLoadAverageEvent);

http://git-wip-us.apache.org/repos/asf/stratos/blob/d64f3143/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 9d0a943..aecfbf8 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
@@ -359,4 +359,9 @@ public class ApplicationMonitor extends ParentComponentMonitor {
     public void setTerminating(boolean isTerminating) {
         this.isTerminating = isTerminating;
     }
+
+    @Override
+    public void destroy() {
+        //TODO to wipe out the drools
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/d64f3143/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 15aa733..e13cef4 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
@@ -680,4 +680,8 @@ public class GroupMonitor extends ParentComponentMonitor implements Runnable {
     }
 
 
+    @Override
+    public void destroy() {
+        //TODO to stop all the drools
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/d64f3143/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 2b6ce96..46e69ee 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
@@ -287,14 +287,20 @@ public abstract class ParentComponentMonitor extends Monitor {
     /**
      * @param childId
      */
-    protected void onChildInactiveEvent(String childId, String instanceId) {
+    protected void onChildInactiveEvent(String childId, final String instanceId) {
         List<ApplicationChildContext> terminationList;
         Monitor monitor;
         terminationList = this.startupDependencyTree.getTerminationDependencies(childId);
         //Need to notify the parent about the status  change from Active-->InActive
         // TODO to make app also inaction if (this.parent != null) {
-            ServiceReferenceHolder.getInstance().getGroupStatusProcessorChain().
-                    process(this.id, this.appId, instanceId);
+        Runnable monitoringRunnable = new Runnable() {
+            @Override
+            public void run() {
+                ServiceReferenceHolder.getInstance().getGroupStatusProcessorChain().
+                        process(id, appId, instanceId);
+            }
+        };
+        monitoringRunnable.run();
         //}
         //TODO checking whether terminating them in reverse order,
         // TODO if so can handle it in the parent event.

http://git-wip-us.apache.org/repos/asf/stratos/blob/d64f3143/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusProcessorChain.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusProcessorChain.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusProcessorChain.java
index 9b0631e..92c0951 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusProcessorChain.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusProcessorChain.java
@@ -50,24 +50,18 @@ public class GroupStatusProcessorChain extends StatusProcessorChain {
     }
 
     public void process(final String idOfComponent, final String appId,
-                           final String instanceId) {
+                        final String instanceId) {
 
-        Runnable monitoringRunnable = new Runnable() {
-            @Override
-            public void run() {
-                GroupStatusProcessor root = (GroupStatusProcessor) list.getFirst();
-                if (root == null) {
-                    throw new RuntimeException("Message processor chain is not initialized");
-                }
-                if (log.isInfoEnabled()) {
-                    log.info("GroupProcessor chain calculating the status for the group " +
-                            "[ " + idOfComponent + " ]");
-                }
 
-                root.process(idOfComponent, appId, instanceId);
-            }
-        };
-        monitoringRunnable.run();
-    }
+        GroupStatusProcessor root = (GroupStatusProcessor) list.getFirst();
+        if (root == null) {
+            throw new RuntimeException("Message processor chain is not initialized");
+        }
+        if (log.isInfoEnabled()) {
+            log.info("GroupProcessor chain calculating the status for the group " +
+                    "[ " + idOfComponent + " ]");
+        }
 
+        root.process(idOfComponent, appId, instanceId);
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/d64f3143/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationInstanceActivatedEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationInstanceActivatedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationInstanceActivatedEvent.java
index 855f07e..7de8ca8 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationInstanceActivatedEvent.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/applications/ApplicationInstanceActivatedEvent.java
@@ -26,7 +26,6 @@ import java.io.Serializable;
  * This event will be fired upon the application activated is detected.
  */
 public class ApplicationInstanceActivatedEvent extends Event implements Serializable {
-    private static final long serialVersionUID = 2625412714611885089L;
 
     private String appId;
     private String instanceId;