You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ya...@apache.org on 2012/12/21 03:52:33 UTC

git commit: CLOUDSTACK-689: Clean stop pending flags when VR start/stop

Updated Branches:
  refs/heads/master 13944a0e5 -> 53e6825b7


CLOUDSTACK-689: Clean stop pending flags when VR start/stop


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

Branch: refs/heads/master
Commit: 53e6825b744252daeab7c4e694adae69c65cf0d3
Parents: 13944a0
Author: Sheng Yang <sh...@citrix.com>
Authored: Thu Dec 20 17:01:12 2012 -0800
Committer: Sheng Yang <sh...@citrix.com>
Committed: Thu Dec 20 18:51:01 2012 -0800

----------------------------------------------------------------------
 .../router/VirtualNetworkApplianceManagerImpl.java |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/53e6825b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
index a7f4b5e..0af034f 100755
--- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
+++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
@@ -501,6 +501,14 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
         if(virtualRouter == null){
             throw new CloudRuntimeException("Failed to stop router with id " + routerId);
         }
+        
+        // Clear stop pending flag after stopped successfully
+        if (router.isStopPending()) {
+            s_logger.info("Clear the stop pending flag of router " + router.getHostName() + " after stop router successfully");
+            router.setStopPending(false);
+            router = _routerDao.persist(router);
+            virtualRouter.setStopPending(false);
+        }
         return virtualRouter;
     }
 
@@ -2413,6 +2421,11 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
     ConcurrentOperationException, ResourceUnavailableException {
         s_logger.debug("Starting router " + router);
         if (_itMgr.start(router, params, user, caller, planToDeploy) != null) {
+            if (router.isStopPending()) {
+                s_logger.info("Clear the stop pending flag of router " + router.getHostName() + " after start router successfully!");
+                router.setStopPending(false);
+                router = _routerDao.persist(router);
+            }
             // We don't want the failure of VPN Connection affect the status of router, so we try to make connection
             // only after router start successfully
             Long vpcId = router.getVpcId();
@@ -3308,6 +3321,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
         List<DomainRouterVO> routers = _routerDao.listIsolatedByHostId(host.getId());
         for (DomainRouterVO router : routers) {
             if (router.isStopPending()) {
+                s_logger.info("Stopping router " + router.getInstanceName() + " due to stop pending flag found!");
                 State state = router.getState();
                 if (state != State.Stopped && state != State.Destroyed) {
                     try {