From 3fe9426824be5543d86deea70a393f9db1c22245 Mon Sep 17 00:00:00 2001 From: Jayapal Date: Thu, 2 Jan 2014 11:52:23 +0530 Subject: [PATCH] CLOUDSTACK-5552 fixed private gateway clean up in DB when create failed --- .../network/element/VpcVirtualRouterElement.java | 16 ++++++++++++---- .../cloud/network/vpc/NetworkACLManagerImpl.java | 8 ++++++-- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/server/src/com/cloud/network/element/VpcVirtualRouterElement.java b/server/src/com/cloud/network/element/VpcVirtualRouterElement.java index 1f5846b0cb8..f4d16e1feb7 100644 --- a/server/src/com/cloud/network/element/VpcVirtualRouterElement.java +++ b/server/src/com/cloud/network/element/VpcVirtualRouterElement.java @@ -363,6 +363,9 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc s_logger.debug ("Failed to apply network acl id "+ gateway.getNetworkACLId() + " on gateway "); return false; } + } else { + s_logger.debug ("Failed to setup private gateway "+ gateway); + return false; } return true; } @@ -425,10 +428,15 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc return true; } - if (!_vpcRouterMgr.applyNetworkACLs(config, rules, routers, false)) { - throw new CloudRuntimeException("Failed to apply network acl rules in network " + config.getId()); - } else { - return true; + try { + if (!_vpcRouterMgr.applyNetworkACLs(config, rules, routers, false)) { + return false; + } else { + return true; + } + } catch (Exception ex) { + s_logger.debug("Failed to apply network acl in network " + config.getId()); + return false; } } else { return true; diff --git a/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java b/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java index 7bb8b13272c..72d8f81cdb0 100644 --- a/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java +++ b/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java @@ -381,9 +381,13 @@ public class NetworkACLManagerImpl extends ManagerBase implements NetworkACLMana throw new CloudRuntimeException("Failed to initialize vpc elements"); } - for (VpcProvider provider: vpcElements){ - return provider.applyACLItemsToPrivateGw(gateway, rules); + try { + for (VpcProvider provider: vpcElements){ + return provider.applyACLItemsToPrivateGw(gateway, rules); } + } catch(ResourceUnavailableException e) { + s_logger.debug("Failed to apply acl to private gateway " + gateway); + } return false; }