Newly added VR monitoring service has broken VMware basic network mode.

This commit is contained in:
Kelven Yang 2013-11-12 23:48:56 -08:00
parent c6195c3556
commit 07c4aec64b

View File

@ -2210,12 +2210,12 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
finalizeUserDataAndDhcpOnStart(cmds, router, provider, guestNetworkId);
}
finalizeMonitorServiceOnStrat(cmds, router, provider, routerGuestNtwkIds.get(0));
finalizeMonitorServiceOnStrat(cmds, profile, router, provider, routerGuestNtwkIds.get(0));
return true;
}
private void finalizeMonitorServiceOnStrat(Commands cmds, DomainRouterVO router, Provider provider, long networkId) {
private void finalizeMonitorServiceOnStrat(Commands cmds, VirtualMachineProfile profile, DomainRouterVO router, Provider provider, long networkId) {
NetworkVO network = _networkDao.findById(networkId);
@ -2248,18 +2248,18 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
servicesTO.add(serviceTO);
}
// TODO : This is a hacking fix
// at VR startup time, information in VirtualMachineProfile may not updated to DB yet,
// getRouterControlIp() may give wrong IP under basic network mode in VMware environment
NicProfile controlNic = getControlNic(profile);
SetMonitorServiceCommand command = new SetMonitorServiceCommand(servicesTO);
command.setAccessDetail(NetworkElementCommand.ROUTER_IP, getRouterControlIp(router.getId()));
command.setAccessDetail(NetworkElementCommand.ROUTER_IP, controlNic.getIp4Address());
command.setAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP, getRouterIpInNetwork(networkId, router.getId()));
command.setAccessDetail(NetworkElementCommand.ROUTER_NAME, router.getInstanceName());
cmds.addCommand("monitor", command);
}
protected NicProfile getControlNic(VirtualMachineProfile profile) {
DomainRouterVO router = _routerDao.findById(profile.getId());
DataCenterVO dcVo = _dcDao.findById(router.getDataCenterId());