From eb52f4a610b6695b37e18f1f85eb7534b1b701f0 Mon Sep 17 00:00:00 2001 From: Alena Prokharchyk Date: Wed, 11 Jul 2012 15:46:52 -0700 Subject: [PATCH] VPC: mark gateway with Deleting state when all static routes are gone --- server/src/com/cloud/network/vpc/VpcManagerImpl.java | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/server/src/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/com/cloud/network/vpc/VpcManagerImpl.java index 5381029cb3f..28086a442ba 100644 --- a/server/src/com/cloud/network/vpc/VpcManagerImpl.java +++ b/server/src/com/cloud/network/vpc/VpcManagerImpl.java @@ -1170,7 +1170,6 @@ public class VpcManagerImpl implements VpcManager, Manager{ } try { - gatewayVO.setState(VpcGateway.State.Deleting); _vpcGatewayDao.update(gatewayVO.getId(), gatewayVO); s_logger.debug("Marked gateway " + gatewayVO + " with state " + VpcGateway.State.Deleting); //don't allow to remove gateway when there are static routes associated with it @@ -1179,7 +1178,9 @@ public class VpcManagerImpl implements VpcManager, Manager{ throw new CloudRuntimeException("Can't delete private gateway " + gatewayVO + " as it has " + routeCount + " static routes applied. Remove the routes first"); } - + + gatewayVO.setState(VpcGateway.State.Deleting); + //1) delete the gateway on the backend PrivateGateway gateway = getVpcPrivateGateway(gatewayId); if (getVpcElement().deletePrivateGateway(gateway)) { @@ -1373,12 +1374,6 @@ public class VpcManagerImpl implements VpcManager, Manager{ throw new InvalidParameterValueException("Unable to find static route by id"); } - VpcGateway gateway = _vpcGatewayDao.findById(route.getVpcGatewayId()); - - if (gateway.getState() != VpcGateway.State.Ready) { - throw new InvalidParameterValueException("Gateway is not in the " + VpcGateway.State.Ready + " state: " + gateway.getState()); - } - _accountMgr.checkAccess(caller, null, false, route); markStaticRouteForRevoke(route, caller);