You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by re...@apache.org on 2015/12/05 18:50:08 UTC

[2/4] git commit: updated refs/heads/master to 74e33dc

CLOUDSTACK-8852 Database shows that management server is UP when it is actually stopped from the CCP GUI

    This was happening as the stop method in clusterMnanagerImpl was not getting callled. Added shutdown hooks to all sub contexts,
    this enables spring to call the stop mehtods of the beans when management server is shutting down.

Conflicts:
	framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/web/CloudStackContextLoaderListener.java


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

Branch: refs/heads/master
Commit: 4849368c94f4c5d7e48beb92dba653bc97aa5ba5
Parents: acce645
Author: Bharat Kumar <bh...@citrix.com>
Authored: Tue Apr 21 16:45:12 2015 +0530
Committer: Bharat Kumar <bh...@citrix.com>
Committed: Mon Nov 2 15:26:39 2015 +0530

----------------------------------------------------------------------
 .../centos/SYSCONFDIR/rc.d/init.d/cloud-management.in    |  2 +-
 .../spring/lifecycle/CloudStackExtendedLifeCycle.java    |  1 +
 .../spring/module/factory/CloudStackSpringContext.java   | 11 ++++++++---
 .../spring/module/model/ModuleDefinitionSet.java         |  4 ++++
 .../module/model/impl/DefaultModuleDefinitionSet.java    |  5 +++++
 .../module/web/CloudStackContextLoaderListener.java      |  1 +
 .../network/contrail/management/ContrailManagerImpl.java |  4 +++-
 7 files changed, 23 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4849368c/client/distro/centos/SYSCONFDIR/rc.d/init.d/cloud-management.in
----------------------------------------------------------------------
diff --git a/client/distro/centos/SYSCONFDIR/rc.d/init.d/cloud-management.in b/client/distro/centos/SYSCONFDIR/rc.d/init.d/cloud-management.in
index 3f073f9..03a9301 100755
--- a/client/distro/centos/SYSCONFDIR/rc.d/init.d/cloud-management.in
+++ b/client/distro/centos/SYSCONFDIR/rc.d/init.d/cloud-management.in
@@ -44,7 +44,7 @@ fi
 
 NAME="$(basename $0)"
 stop() {
-	SHUTDOWN_WAIT="30"
+	SHUTDOWN_WAIT="40"
 	count="0"
 	if [ -f /var/run/cloud-management.pid ]; then
 		pid=`cat /var/run/cloud-management.pid`

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4849368c/framework/spring/lifecycle/src/main/java/org/apache/cloudstack/spring/lifecycle/CloudStackExtendedLifeCycle.java
----------------------------------------------------------------------
diff --git a/framework/spring/lifecycle/src/main/java/org/apache/cloudstack/spring/lifecycle/CloudStackExtendedLifeCycle.java b/framework/spring/lifecycle/src/main/java/org/apache/cloudstack/spring/lifecycle/CloudStackExtendedLifeCycle.java
index 75aca3e..fd9c886 100644
--- a/framework/spring/lifecycle/src/main/java/org/apache/cloudstack/spring/lifecycle/CloudStackExtendedLifeCycle.java
+++ b/framework/spring/lifecycle/src/main/java/org/apache/cloudstack/spring/lifecycle/CloudStackExtendedLifeCycle.java
@@ -99,6 +99,7 @@ public class CloudStackExtendedLifeCycle extends AbstractBeanCollector {
         with(new WithComponentLifeCycle() {
             @Override
             public void with(ComponentLifecycle lifecycle) {
+                log.info("stopping bean " + lifecycle.getName());
                 lifecycle.stop();
             }
         });

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4849368c/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/factory/CloudStackSpringContext.java
----------------------------------------------------------------------
diff --git a/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/factory/CloudStackSpringContext.java b/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/factory/CloudStackSpringContext.java
index 5f3abf9..26525de 100644
--- a/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/factory/CloudStackSpringContext.java
+++ b/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/factory/CloudStackSpringContext.java
@@ -22,6 +22,7 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.Map;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -71,10 +72,14 @@ public class CloudStackSpringContext {
     }
 
     public void registerShutdownHook() {
-        ApplicationContext base = moduleDefinitionSet.getApplicationContext(baseName);
+        Map<String, ApplicationContext> contextMap= moduleDefinitionSet.getContextMap();
 
-        if (base instanceof ConfigurableApplicationContext) {
-            ((ConfigurableApplicationContext)base).registerShutdownHook();
+        for (String appName : contextMap.keySet()) {
+            ApplicationContext contex = contextMap.get(appName);
+            if (contex instanceof ConfigurableApplicationContext) {
+                log.trace("registering shutdown hook for bean "+ appName);
+                ((ConfigurableApplicationContext)contex).registerShutdownHook();
+            }
         }
     }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4849368c/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/model/ModuleDefinitionSet.java
----------------------------------------------------------------------
diff --git a/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/model/ModuleDefinitionSet.java b/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/model/ModuleDefinitionSet.java
index 7cb15e4..5f67de8 100644
--- a/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/model/ModuleDefinitionSet.java
+++ b/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/model/ModuleDefinitionSet.java
@@ -21,12 +21,16 @@ package org.apache.cloudstack.spring.module.model;
 import org.springframework.context.ApplicationContext;
 import org.springframework.core.io.Resource;
 
+import java.util.Map;
+
 public interface ModuleDefinitionSet {
 
     ModuleDefinition getModuleDefinition(String name);
 
     ApplicationContext getApplicationContext(String name);
 
+    Map<String, ApplicationContext> getContextMap();
+
     Resource[] getConfigResources(String name);
 
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4849368c/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/model/impl/DefaultModuleDefinitionSet.java
----------------------------------------------------------------------
diff --git a/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/model/impl/DefaultModuleDefinitionSet.java b/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/model/impl/DefaultModuleDefinitionSet.java
index be92074..bba0dcc 100644
--- a/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/model/impl/DefaultModuleDefinitionSet.java
+++ b/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/model/impl/DefaultModuleDefinitionSet.java
@@ -279,6 +279,11 @@ public class DefaultModuleDefinitionSet implements ModuleDefinitionSet {
     }
 
     @Override
+    public Map<String, ApplicationContext> getContextMap() {
+        return contexts;
+    }
+
+    @Override
     public Resource[] getConfigResources(String name) {
         Set<Resource> resources = new LinkedHashSet<Resource>();
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4849368c/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/web/CloudStackContextLoaderListener.java
----------------------------------------------------------------------
diff --git a/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/web/CloudStackContextLoaderListener.java b/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/web/CloudStackContextLoaderListener.java
index 6d0e17c..bf6fb24 100644
--- a/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/web/CloudStackContextLoaderListener.java
+++ b/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/web/CloudStackContextLoaderListener.java
@@ -50,6 +50,7 @@ public class CloudStackContextLoaderListener extends ContextLoaderListener {
     public void contextInitialized(ServletContextEvent event) {
         try {
             cloudStackContext = new CloudStackSpringContext();
+            cloudStackContext.registerShutdownHook();
             event.getServletContext().setAttribute(CloudStackSpringContext.CLOUDSTACK_CONTEXT_SERVLET_KEY, cloudStackContext);
         } catch (IOException e) {
             log.error("Failed to start CloudStack", e);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4849368c/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/management/ContrailManagerImpl.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/management/ContrailManagerImpl.java b/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/management/ContrailManagerImpl.java
index cc87aa5..adaaf08 100644
--- a/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/management/ContrailManagerImpl.java
+++ b/plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/management/ContrailManagerImpl.java
@@ -183,7 +183,9 @@ public class ContrailManagerImpl extends ManagerBase implements ContrailManager
 
     @Override
     public boolean stop() {
-        _dbSyncTimer.cancel();
+        if (_dbSyncTimer != null) {
+            _dbSyncTimer.cancel();
+        }
         return true;
     }