mirror of
https://github.com/apache/cloudstack.git
synced 2025-11-02 20:02:29 +01:00
[TK-3101] Fix VPCVirtualRouterElement
There were more places were the amount of routers is checked.
Not throwing exception when routers > 1
[wip] - we need to refactor VpcViortualRouterElement in order to cope with methods returning true only for the sake of it.
This commit is contained in:
parent
bdda01d269
commit
ce3c8c755a
@ -239,22 +239,26 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc
|
|||||||
throw new ResourceUnavailableException("Can't find at least one running router!", DataCenter.class, network.getDataCenterId());
|
throw new ResourceUnavailableException("Can't find at least one running router!", DataCenter.class, network.getDataCenterId());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (routers.size() > 1) {
|
// [FIXME] Comment added by Wilder Rodrigues - This exception has to be removed once we are able to test multiple routers.
|
||||||
throw new CloudRuntimeException("Found more than one router in vpc " + vpc);
|
// if (routers.size() > 1) {
|
||||||
}
|
// throw new CloudRuntimeException("Found more than one router in vpc " + vpc);
|
||||||
|
// }
|
||||||
|
|
||||||
final DomainRouterVO router = routers.get(0);
|
s_logger.info("Adding VPC routers to Guest Network: " + routers.size() + " to be added!");
|
||||||
// Add router to guest network if needed
|
|
||||||
if (!_networkMdl.isVmPartOfNetwork(router.getId(), network.getId())) {
|
for (final DomainRouterVO domainRouterVO : routers) {
|
||||||
final Map<VirtualMachineProfile.Param, Object> paramsForRouter = new HashMap<VirtualMachineProfile.Param, Object>(1);
|
// Add router to guest network if needed
|
||||||
// need to reprogram guest network if it comes in a setup state
|
if (!_networkMdl.isVmPartOfNetwork(domainRouterVO.getId(), network.getId())) {
|
||||||
if (network.getState() == State.Setup) {
|
final Map<VirtualMachineProfile.Param, Object> paramsForRouter = new HashMap<VirtualMachineProfile.Param, Object>(1);
|
||||||
paramsForRouter.put(VirtualMachineProfile.Param.ReProgramGuestNetworks, true);
|
// need to reprogram guest network if it comes in a setup state
|
||||||
}
|
if (network.getState() == State.Setup) {
|
||||||
if (!_vpcRouterMgr.addVpcRouterToGuestNetwork(router, network, false, paramsForRouter)) {
|
paramsForRouter.put(VirtualMachineProfile.Param.ReProgramGuestNetworks, true);
|
||||||
throw new CloudRuntimeException("Failed to add VPC router " + router + " to guest network " + network);
|
}
|
||||||
} else {
|
if (!_vpcRouterMgr.addVpcRouterToGuestNetwork(domainRouterVO, network, false, paramsForRouter)) {
|
||||||
s_logger.debug("Successfully added VPC router " + router + " to guest network " + network);
|
s_logger.error("Failed to add VPC router " + domainRouterVO + " to guest network " + network);
|
||||||
|
} else {
|
||||||
|
s_logger.debug("Successfully added VPC router " + domainRouterVO + " to guest network " + network);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -367,30 +371,34 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (routers.size() > 1) {
|
// [FIXME] Comment added by Wilder Rodrigues - This exception has to be removed once we are able to test multiple routers.
|
||||||
throw new CloudRuntimeException("Found more than one router in vpc " + gateway.getVpcId());
|
// if (routers.size() > 1) {
|
||||||
}
|
// throw new CloudRuntimeException("Found more than one router in vpc " + vpc);
|
||||||
|
// }
|
||||||
|
|
||||||
final VirtualRouter router = routers.get(0);
|
s_logger.info("Adding VPC routers to Guest Network: " + routers.size() + " to be added!");
|
||||||
|
|
||||||
final DataCenterVO dcVO = _dcDao.findById(gateway.getZoneId());
|
final DataCenterVO dcVO = _dcDao.findById(gateway.getZoneId());
|
||||||
final NetworkTopology networkTopology = networkTopologyContext.retrieveNetworkTopology(dcVO);
|
final NetworkTopology networkTopology = networkTopologyContext.retrieveNetworkTopology(dcVO);
|
||||||
|
|
||||||
if (networkTopology.setupPrivateGateway(gateway, router)) {
|
for (final DomainRouterVO domainRouterVO : routers) {
|
||||||
try {
|
if (networkTopology.setupPrivateGateway(gateway, domainRouterVO)) {
|
||||||
final List<NetworkACLItemVO> rules = _networkACLItemDao.listByACL(gateway.getNetworkACLId());
|
try {
|
||||||
if (!applyACLItemsToPrivateGw(gateway, rules)) {
|
final List<NetworkACLItemVO> rules = _networkACLItemDao.listByACL(gateway.getNetworkACLId());
|
||||||
|
if (!applyACLItemsToPrivateGw(gateway, rules)) {
|
||||||
|
s_logger.debug("Failed to apply network acl id " + gateway.getNetworkACLId() + " on gateway ");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} catch (final Exception ex) {
|
||||||
s_logger.debug("Failed to apply network acl id " + gateway.getNetworkACLId() + " on gateway ");
|
s_logger.debug("Failed to apply network acl id " + gateway.getNetworkACLId() + " on gateway ");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} catch (final Exception ex) {
|
} else {
|
||||||
s_logger.debug("Failed to apply network acl id " + gateway.getNetworkACLId() + " on gateway ");
|
s_logger.debug("Failed to setup private gateway " + gateway);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
s_logger.debug("Failed to setup private gateway " + gateway);
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -407,13 +415,21 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (routers.size() > 1) {
|
// [FIXME] Comment added by Wilder Rodrigues - This exception has to be removed once we are able to test multiple routers.
|
||||||
throw new CloudRuntimeException("Found more than one router in vpc " + gateway.getVpcId());
|
// if (routers.size() > 1) {
|
||||||
|
// throw new CloudRuntimeException("Found more than one router in vpc " + vpc);
|
||||||
|
// }
|
||||||
|
|
||||||
|
s_logger.info("Adding VPC routers to Guest Network: " + routers.size() + " to be added!");
|
||||||
|
|
||||||
|
int result = 0;
|
||||||
|
for (final DomainRouterVO domainRouterVO : routers) {
|
||||||
|
if (_vpcRouterMgr.destroyPrivateGateway(gateway, domainRouterVO)) {
|
||||||
|
result++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final VirtualRouter router = routers.get(0);
|
return result > 0 ? true : false;
|
||||||
|
|
||||||
return _vpcRouterMgr.destroyPrivateGateway(gateway, router);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user