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/12 05:51:01 UTC

[1/4] stratos git commit: fixing to create VMClusterContext only once

Repository: stratos
Updated Branches:
  refs/heads/4.1.0-test 4862a8b76 -> 006129129


fixing to create VMClusterContext only once


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

Branch: refs/heads/4.1.0-test
Commit: 00612912923bb5ff9bce754c35a414f0a4bcd96c
Parents: 0183827
Author: reka <rt...@gmail.com>
Authored: Fri Dec 12 10:20:38 2014 +0530
Committer: reka <rt...@gmail.com>
Committed: Fri Dec 12 10:20:47 2014 +0530

----------------------------------------------------------------------
 .../autoscaler/monitor/cluster/VMClusterMonitor.java     | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/00612912/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
index ccd5e03..361148e 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
@@ -1132,10 +1132,13 @@ public class VMClusterMonitor extends AbstractClusterMonitor {
             ClusterInstance clusterInstance = cluster.getInstanceContexts(parentInstanceId);
             if (clusterInstance != null) {
                 // Cluster instance is already there. No need to create one.
-                VMClusterContext clusterContext;
-                clusterContext =
-                        ClusterContextFactory.getVMClusterContext(clusterInstance.getInstanceId(), cluster);
-                this.setClusterContext(clusterContext);
+                VMClusterContext clusterContext = (VMClusterContext) this.getClusterContext();
+                if(clusterContext == null) {
+                    clusterContext =
+                            ClusterContextFactory.getVMClusterContext(clusterInstance.getInstanceId(), cluster);
+                    this.setClusterContext(clusterContext);
+                }
+
                 // create VMClusterContext and then add all the instanceContexts
                 clusterContext.addInstanceContext(parentInstanceId, cluster);
                 if (this.getInstance(clusterInstance.getInstanceId()) == null) {


[2/4] stratos git commit: removnig inactive restart handling as it causes issue in the actual inactive case for monitors

Posted by re...@apache.org.
removnig inactive restart handling as it causes issue in the actual inactive case for monitors


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

Branch: refs/heads/4.1.0-test
Commit: 5a49d49bb2a58e34375a3f1600cc8217417ed965
Parents: 56dd783
Author: reka <rt...@gmail.com>
Authored: Fri Dec 12 01:41:48 2014 +0530
Committer: reka <rt...@gmail.com>
Committed: Fri Dec 12 10:20:47 2014 +0530

----------------------------------------------------------------------
 .../stratos/autoscaler/monitor/component/GroupMonitor.java   | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/5a49d49b/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 e13cef4..2baba68 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
@@ -185,13 +185,13 @@ public class GroupMonitor extends ParentComponentMonitor implements Runnable {
             onChildActivatedEvent(childId, instanceId);
 
         } else if (status1 == ClusterStatus.Inactive || status1 == GroupStatus.Inactive) {
-            //handling restart of stratos
-            if (!aliasToActiveMonitorsMap.get(childId).hasStartupDependents()) {
+            //TODO handling restart of stratos
+            /*if (!aliasToActiveMonitorsMap.get(childId).hasStartupDependents()) {
                 onChildActivatedEvent(childId, instanceId);
-            } else {
+            } else {*/
                 markInstanceAsInactive(childId, instanceId);
                 onChildInactiveEvent(childId, instanceId);
-            }
+            //}
 
         } else if (status1 == ClusterStatus.Terminating || status1 == GroupStatus.Terminating) {
             //mark the child monitor as inactive in the map


[3/4] stratos git commit: fixing when putting into terminating map

Posted by re...@apache.org.
fixing when putting into terminating map


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

Branch: refs/heads/4.1.0-test
Commit: 0183827b26c642422da68669a44f665c693b7b7b
Parents: 5a49d49
Author: reka <rt...@gmail.com>
Authored: Fri Dec 12 01:50:10 2014 +0530
Committer: reka <rt...@gmail.com>
Committed: Fri Dec 12 10:20:47 2014 +0530

----------------------------------------------------------------------
 .../component/ParentComponentMonitor.java       | 155 +++++++++----------
 1 file changed, 77 insertions(+), 78 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/0183827b/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 7a60801..2bf3a81 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
@@ -49,7 +49,10 @@ import org.apache.stratos.messaging.domain.instance.Instance;
 import org.apache.stratos.messaging.domain.topology.ClusterStatus;
 import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
 /**
@@ -172,11 +175,11 @@ public abstract class ParentComponentMonitor extends Monitor {
         //start the first dependency which went to terminated
         List<ApplicationChildContext> applicationContexts = this.startupDependencyTree.
                 getStarAbleDependenciesByTermination(this, instanceId);
-        for(ApplicationChildContext context : applicationContexts) {
-            if(context instanceof GroupChildContext) {
+        for (ApplicationChildContext context : applicationContexts) {
+            if (context instanceof GroupChildContext) {
                 GroupMonitor groupMonitor = (GroupMonitor) this.aliasToActiveMonitorsMap.
-                                                        get(context.getId());
-            } else if(context instanceof ClusterChildContext) {
+                        get(context.getId());
+            } else if (context instanceof ClusterChildContext) {
 
             }
         }
@@ -487,8 +490,8 @@ public abstract class ParentComponentMonitor extends Monitor {
                     TopologyManager.acquireReadLockForCluster(monitor1.getServiceId(),
                             monitor1.getClusterId());
                     try {
-                        if (((ClusterInstance)monitor1.getInstance(instanceId)).getStatus()
-                                                    == ClusterStatus.Active) {
+                        if (((ClusterInstance) monitor1.getInstance(instanceId)).getStatus()
+                                == ClusterStatus.Active) {
                             parentsActive = true;
                         }
                     } finally {
@@ -518,7 +521,7 @@ public abstract class ParentComponentMonitor extends Monitor {
         if (this.inactiveInstancesMap.containsKey(childId) &&
                 this.inactiveInstancesMap.get(childId).contains(instanceId)) {
             this.inactiveInstancesMap.get(childId).remove(instanceId);
-            if(this.inactiveInstancesMap.get(childId).isEmpty()) {
+            if (this.inactiveInstancesMap.get(childId).isEmpty()) {
                 this.inactiveInstancesMap.remove(childId);
             }
         }
@@ -529,7 +532,7 @@ public abstract class ParentComponentMonitor extends Monitor {
         if (this.terminatingInstancesMap.containsKey(childId) &&
                 this.terminatingInstancesMap.get(childId).contains(instanceId)) {
             this.terminatingInstancesMap.get(childId).remove(instanceId);
-            if(this.terminatingInstancesMap.get(childId).isEmpty()) {
+            if (this.terminatingInstancesMap.get(childId).isEmpty()) {
                 this.terminatingInstancesMap.remove(childId);
             }
         }
@@ -537,20 +540,16 @@ public abstract class ParentComponentMonitor extends Monitor {
 
     // move to inactive monitors list to use in the Terminated event
     protected synchronized void markInstanceAsTerminating(String childId, String instanceId) {
-        if (!this.terminatingInstancesMap.containsKey(childId)) {
-            if (this.inactiveInstancesMap.containsKey(childId) &&
-                    this.inactiveInstancesMap.get(childId).contains(instanceId)) {
-                this.inactiveInstancesMap.get(childId).remove(instanceId);
-                this.terminatingInstancesMap.get(childId).add(instanceId);
-            } else {
-                if (this.inactiveInstancesMap.containsKey(childId) &&
-                        this.inactiveInstancesMap.get(childId).contains(instanceId)) {
-                    this.inactiveInstancesMap.get(childId).remove(instanceId);
-                }
-                List<String> instanceIds = new ArrayList<String>();
-                instanceIds.add(instanceId);
-                this.terminatingInstancesMap.put(childId, instanceIds);
-            }
+        if (this.inactiveInstancesMap.containsKey(childId) &&
+                this.inactiveInstancesMap.get(childId).contains(instanceId)) {
+            this.inactiveInstancesMap.get(childId).remove(instanceId);
+        }
+        if (this.terminatingInstancesMap.containsKey(childId)) {
+            this.terminatingInstancesMap.get(childId).add(instanceId);
+        } else {
+            List<String> instanceIds = new ArrayList<String>();
+            instanceIds.add(instanceId);
+            this.terminatingInstancesMap.put(childId, instanceIds);
         }
     }
 
@@ -646,74 +645,74 @@ public abstract class ParentComponentMonitor extends Monitor {
         return autoscaleAlgorithm;
     }
 
-    private class MonitorAdder implements Runnable {
-        private ApplicationChildContext context;
-        private ParentComponentMonitor parent;
-        private String appId;
-        private List<String> instanceId;
+private class MonitorAdder implements Runnable {
+    private ApplicationChildContext context;
+    private ParentComponentMonitor parent;
+    private String appId;
+    private List<String> instanceId;
 
-        public MonitorAdder(ParentComponentMonitor parent, ApplicationChildContext context,
-                            String appId, List<String> instanceId) {
-            this.parent = parent;
-            this.context = context;
-            this.appId = appId;
-            this.instanceId = instanceId;
-        }
+    public MonitorAdder(ParentComponentMonitor parent, ApplicationChildContext context,
+                        String appId, List<String> instanceId) {
+        this.parent = parent;
+        this.context = context;
+        this.appId = appId;
+        this.instanceId = instanceId;
+    }
 
-        public void run() {
-            Monitor monitor = null;
-            int retries = 5;
-            boolean success = false;
-            while (!success && retries != 0) {
+    public void run() {
+        Monitor monitor = null;
+        int retries = 5;
+        boolean success = false;
+        while (!success && retries != 0) {
                 /*//TODO remove thread.sleep, exectutor service
                 try {
                     Thread.sleep(5000);
                 } catch (InterruptedException e1) {
                 }*/
 
-                if (log.isInfoEnabled()) {
-                    log.info("Monitor is going to be started for [group/cluster] "
-                            + context.getId());
-                }
-                try {
-                    monitor = MonitorFactory.getMonitor(parent, context, appId, instanceId);
-                } catch (DependencyBuilderException e) {
-                    String msg = "Monitor creation failed for: " + context.getId();
-                    log.warn(msg, e);
-                    retries--;
-                } catch (TopologyInConsistentException e) {
-                    String msg = "Monitor creation failed for: " + context.getId();
-                    log.warn(msg, e);
-                    retries--;
-                } catch (PolicyValidationException e) {
-                    String msg = "Monitor creation failed for: " + context.getId();
-                    log.warn(msg, e);
-                    retries--;
-                } catch (PartitionValidationException e) {
-                    String msg = "Monitor creation failed for: " + context.getId();
-                    log.warn(msg, e);
-                    retries--;
-                }
-                success = true;
+            if (log.isInfoEnabled()) {
+                log.info("Monitor is going to be started for [group/cluster] "
+                        + context.getId());
             }
-
-            if (monitor == null) {
-                String msg = "Monitor creation failed, even after retrying for 5 times, "
-                        + "for : " + context.getId();
-                log.error(msg);
-                //TODO parent.notify();
-                throw new RuntimeException(msg);
+            try {
+                monitor = MonitorFactory.getMonitor(parent, context, appId, instanceId);
+            } catch (DependencyBuilderException e) {
+                String msg = "Monitor creation failed for: " + context.getId();
+                log.warn(msg, e);
+                retries--;
+            } catch (TopologyInConsistentException e) {
+                String msg = "Monitor creation failed for: " + context.getId();
+                log.warn(msg, e);
+                retries--;
+            } catch (PolicyValidationException e) {
+                String msg = "Monitor creation failed for: " + context.getId();
+                log.warn(msg, e);
+                retries--;
+            } catch (PartitionValidationException e) {
+                String msg = "Monitor creation failed for: " + context.getId();
+                log.warn(msg, e);
+                retries--;
             }
+            success = true;
+        }
 
-            aliasToActiveMonitorsMap.put(context.getId(), monitor);
-            pendingMonitorsList.remove(context.getId());
-            // ApplicationBuilder.
-            if (log.isInfoEnabled()) {
-                log.info(String.format("Monitor has been added successfully for: %s",
-                        context.getId()));
-            }
+        if (monitor == null) {
+            String msg = "Monitor creation failed, even after retrying for 5 times, "
+                    + "for : " + context.getId();
+            log.error(msg);
+            //TODO parent.notify();
+            throw new RuntimeException(msg);
+        }
+
+        aliasToActiveMonitorsMap.put(context.getId(), monitor);
+        pendingMonitorsList.remove(context.getId());
+        // ApplicationBuilder.
+        if (log.isInfoEnabled()) {
+            log.info(String.format("Monitor has been added successfully for: %s",
+                    context.getId()));
         }
     }
+}
 
 
 }


[4/4] stratos git commit: fixing when moving to inactive list

Posted by re...@apache.org.
fixing when moving to inactive list


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

Branch: refs/heads/4.1.0-test
Commit: 56dd783ed33b30b8ab8558b575c16da6c56896ef
Parents: 4862a8b
Author: reka <rt...@gmail.com>
Authored: Fri Dec 12 01:18:55 2014 +0530
Committer: reka <rt...@gmail.com>
Committed: Fri Dec 12 10:20:47 2014 +0530

----------------------------------------------------------------------
 .../autoscaler/monitor/component/ParentComponentMonitor.java       | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/56dd783e/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 46e69ee..7a60801 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
@@ -504,7 +504,7 @@ public abstract class ParentComponentMonitor extends Monitor {
 
     // move to inactive monitors list to use in the Terminated event
     protected synchronized void markInstanceAsInactive(String childId, String instanceId) {
-        if (!this.inactiveInstancesMap.containsKey(childId)) {
+        if (this.inactiveInstancesMap.containsKey(childId)) {
             this.inactiveInstancesMap.get(childId).add(instanceId);
         } else {
             List<String> instanceIds = new ArrayList<String>();