From 607ce943cf873d50813c74b08bc3bc09fbbcc396 Mon Sep 17 00:00:00 2001 From: Wido den Hollander Date: Thu, 4 May 2017 13:12:28 +0200 Subject: [PATCH] Honor network.dns.basiczone.updates setting when sending DHCP config to VRs When sending the DHCP offerings to the VRs this setting wasn't read properly which made it default to 'all'. This causes all DHCP offerings to be send to all VRs instead of just those in the POD. As VR provisioning can be very time consuming this can drastically reduce deployment time of the VR. Signed-off-by: Wido den Hollander --- .../network/router/CommandSetupHelper.java | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/server/src/com/cloud/network/router/CommandSetupHelper.java b/server/src/com/cloud/network/router/CommandSetupHelper.java index 7208b2568139..943a8b68caa0 100644 --- a/server/src/com/cloud/network/router/CommandSetupHelper.java +++ b/server/src/com/cloud/network/router/CommandSetupHelper.java @@ -184,8 +184,6 @@ public class CommandSetupHelper { @Qualifier("networkHelper") protected NetworkHelper _networkHelper; - private final String _dnsBasicZoneUpdates = "all"; - public void createVmDataCommand(final VirtualRouter router, final UserVm vm, final NicVO nic, final String publicKey, final Commands cmds) { final String serviceOffering = _serviceOfferingDao.findByIdIncludingRemoved(vm.getId(), vm.getServiceOfferingId()).getDisplayText(); final String zoneName = _dcDao.findById(router.getDataCenterId()).getName(); @@ -620,18 +618,17 @@ public void createVmDataCommandForVMs(final DomainRouterVO router, final Command public void createDhcpEntryCommandsForVMs(final DomainRouterVO router, final Commands cmds, final long guestNetworkId) { final List vms = _userVmDao.listByNetworkIdAndStates(guestNetworkId, VirtualMachine.State.Running, VirtualMachine.State.Migrating, VirtualMachine.State.Stopping); final DataCenterVO dc = _dcDao.findById(router.getDataCenterId()); + String dnsBasicZoneUpdates = _configDao.getValue(Config.DnsBasicZoneUpdates.key()); for (final UserVmVO vm : vms) { - boolean createDhcp = true; if (dc.getNetworkType() == NetworkType.Basic && router.getPodIdToDeployIn().longValue() != vm.getPodIdToDeployIn().longValue() - && _dnsBasicZoneUpdates.equalsIgnoreCase("pod")) { - createDhcp = false; + && dnsBasicZoneUpdates.equalsIgnoreCase("pod")) { + continue; } - if (createDhcp) { - final NicVO nic = _nicDao.findByNtwkIdAndInstanceId(guestNetworkId, vm.getId()); - if (nic != null) { - s_logger.debug("Creating dhcp entry for vm " + vm + " on domR " + router + "."); - createDhcpEntryCommand(router, vm, nic, cmds); - } + + final NicVO nic = _nicDao.findByNtwkIdAndInstanceId(guestNetworkId, vm.getId()); + if (nic != null) { + s_logger.debug("Creating dhcp entry for vm " + vm + " on domR " + router + "."); + createDhcpEntryCommand(router, vm, nic, cmds); } } }