Skip to content

Commit c1aa019

Browse files
committed
RvR: VPC redundant vrs run on same hypervisor
1 parent 5bfad44 commit c1aa019

1 file changed

Lines changed: 13 additions & 0 deletions

File tree

server/src/com/cloud/network/router/NetworkHelperImpl.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,19 @@ public DomainRouterVO startVirtualRouter(final DomainRouterVO router, final User
388388
routerToBeAvoid = rrouter;
389389
}
390390
}
391+
} else if (router.getVpcId() != null) {
392+
final List<DomainRouterVO> routerList = _routerDao.listByVpcId(router.getVpcId());
393+
for (final DomainRouterVO rrouter : routerList) {
394+
if (rrouter.getHostId() != null && rrouter.getIsRedundantRouter() && rrouter.getState() == State.Running) {
395+
if (routerToBeAvoid != null) {
396+
throw new ResourceUnavailableException("Try to start router " + router.getInstanceName() + "(" + router.getId() + ")"
397+
+ ", but there are already two redundant routers with IP " + router.getPublicIpAddress() + ", they are " + rrouter.getInstanceName() + "("
398+
+ rrouter.getId() + ") and " + routerToBeAvoid.getInstanceName() + "(" + routerToBeAvoid.getId() + ")", DataCenter.class,
399+
rrouter.getDataCenterId());
400+
}
401+
routerToBeAvoid = rrouter;
402+
}
403+
}
391404
}
392405
if (routerToBeAvoid == null) {
393406
return start(router, user, caller, params, null);

0 commit comments

Comments
 (0)