VPC: mark gateway with Deleting state when all static routes are gone

This commit is contained in:
Alena Prokharchyk 2012-07-11 15:46:52 -07:00
parent 5923659dba
commit eb52f4a610

View File

@ -1170,7 +1170,6 @@ public class VpcManagerImpl implements VpcManager, Manager{
} }
try { try {
gatewayVO.setState(VpcGateway.State.Deleting);
_vpcGatewayDao.update(gatewayVO.getId(), gatewayVO); _vpcGatewayDao.update(gatewayVO.getId(), gatewayVO);
s_logger.debug("Marked gateway " + gatewayVO + " with state " + VpcGateway.State.Deleting); 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 //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 + throw new CloudRuntimeException("Can't delete private gateway " + gatewayVO + " as it has " + routeCount +
" static routes applied. Remove the routes first"); " static routes applied. Remove the routes first");
} }
gatewayVO.setState(VpcGateway.State.Deleting);
//1) delete the gateway on the backend //1) delete the gateway on the backend
PrivateGateway gateway = getVpcPrivateGateway(gatewayId); PrivateGateway gateway = getVpcPrivateGateway(gatewayId);
if (getVpcElement().deletePrivateGateway(gateway)) { if (getVpcElement().deletePrivateGateway(gateway)) {
@ -1373,12 +1374,6 @@ public class VpcManagerImpl implements VpcManager, Manager{
throw new InvalidParameterValueException("Unable to find static route by id"); 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); _accountMgr.checkAccess(caller, null, false, route);
markStaticRouteForRevoke(route, caller); markStaticRouteForRevoke(route, caller);