From fb151b5e3704c9a293f10ba89abc14f83d803c24 Mon Sep 17 00:00:00 2001 From: David Hill Date: Mon, 25 Mar 2013 16:27:25 -0400 Subject: [PATCH] Adding netmask to dnsmasq argument --dhcp-range By default, dnsmasq will try to guess the proper subnet size but sometimes it will fail. This patch provides the network netmask to dnsmasq via the --dhcp-range argument. Fixes: bug #1154929 Change-Id: I74d62c837b5310004b9151851697e3ea3b475f92 --- nova/network/linux_net.py | 3 ++- nova/tests/network/test_linux_net.py | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/nova/network/linux_net.py b/nova/network/linux_net.py index 8d65b2c3620..f0173d47af5 100644 --- a/nova/network/linux_net.py +++ b/nova/network/linux_net.py @@ -1019,9 +1019,10 @@ def restart_dhcp(context, dev, network_ref): '--pid-file=%s' % _dhcp_file(dev, 'pid'), '--listen-address=%s' % network_ref['dhcp_server'], '--except-interface=lo', - '--dhcp-range=set:%s,%s,static,%ss' % + '--dhcp-range=set:%s,%s,static,%s,%ss' % (network_ref['label'], network_ref['dhcp_start'], + network_ref['netmask'], CONF.dhcp_lease_time), '--dhcp-lease-max=%s' % len(netaddr.IPNetwork(network_ref['cidr'])), '--dhcp-hostsfile=%s' % _dhcp_file(dev, 'conf'), diff --git a/nova/tests/network/test_linux_net.py b/nova/tests/network/test_linux_net.py index 6aea1c93b84..bd734bed31e 100644 --- a/nova/tests/network/test_linux_net.py +++ b/nova/tests/network/test_linux_net.py @@ -480,6 +480,7 @@ def _test_dnsmasq_execute(self, extra_expected=None): 'label': 'fake', 'multi_host': False, 'cidr': '10.0.0.0/24', + 'netmask': '255.255.255.0', 'dns1': '8.8.4.4', 'dhcp_start': '1.0.0.2', 'dhcp_server': '10.0.0.1'} @@ -507,8 +508,9 @@ def fake_execute(*args, **kwargs): '--pid-file=%s' % linux_net._dhcp_file(dev, 'pid'), '--listen-address=%s' % network_ref['dhcp_server'], '--except-interface=lo', - "--dhcp-range=set:%s,%s,static,%ss" % (network_ref['label'], + "--dhcp-range=set:%s,%s,static,%s,%ss" % (network_ref['label'], network_ref['dhcp_start'], + network_ref['netmask'], CONF.dhcp_lease_time), '--dhcp-lease-max=256', '--dhcp-hostsfile=%s' % linux_net._dhcp_file(dev, 'conf'),