set static route for windows 2003
Fixes: bug #1190108 Change-Id: I97266cf007d2a5d7ca8080d83bdfadd121d0fbeb
This commit is contained in:
parent
5256ad49ae
commit
a669a910b9
|
@ -57,6 +57,7 @@ DNS_PORT = 53
|
|||
DHCPV4_PORT = 67
|
||||
DHCPV6_PORT = 547
|
||||
METADATA_DEFAULT_IP = '169.254.169.254'
|
||||
WIN2k3_STATIC_DNS = 249
|
||||
|
||||
|
||||
class DhcpBase(object):
|
||||
|
@ -391,6 +392,9 @@ class Dnsmasq(DhcpLocalProcess):
|
|||
options.append(
|
||||
self._format_option(i, 'classless-static-route',
|
||||
','.join(host_routes)))
|
||||
options.append(
|
||||
self._format_option(i, WIN2k3_STATIC_DNS,
|
||||
','.join(host_routes)))
|
||||
|
||||
if subnet.ip_version == 4:
|
||||
if gateway:
|
||||
|
@ -428,13 +432,17 @@ class Dnsmasq(DhcpLocalProcess):
|
|||
return os.path.join(os.path.dirname(sys.argv[0]),
|
||||
'neutron-dhcp-agent-dnsmasq-lease-update')
|
||||
|
||||
def _format_option(self, index, option_name, *args):
|
||||
def _format_option(self, index, option, *args):
|
||||
"""Format DHCP option by option name or code."""
|
||||
if self.version >= self.MINIMUM_VERSION:
|
||||
set_tag = 'tag:'
|
||||
else:
|
||||
set_tag = ''
|
||||
option = str(option)
|
||||
if not option.isdigit():
|
||||
option = 'option:%s' % option
|
||||
return ','.join((set_tag + self._TAG_PREFIX % index,
|
||||
'option:%s' % option_name) + args)
|
||||
option) + args)
|
||||
|
||||
@classmethod
|
||||
def lease_update(cls):
|
||||
|
|
|
@ -503,11 +503,13 @@ class TestDnsmasq(TestBase):
|
|||
expected = """
|
||||
tag:tag0,option:dns-server,8.8.8.8
|
||||
tag:tag0,option:classless-static-route,20.0.0.1/24,20.0.0.1
|
||||
tag:tag0,249,20.0.0.1/24,20.0.0.1
|
||||
tag:tag0,option:router,192.168.0.1
|
||||
tag:tag1,option:dns-server,%s
|
||||
tag:tag1,option:classless-static-route,%s,%s""".lstrip() % (fake_v6,
|
||||
fake_v6_cidr,
|
||||
fake_v6)
|
||||
tag:tag1,option:classless-static-route,%s,%s
|
||||
tag:tag1,249,%s,%s""".lstrip() % (fake_v6,
|
||||
fake_v6_cidr, fake_v6,
|
||||
fake_v6_cidr, fake_v6)
|
||||
|
||||
with mock.patch.object(dhcp.Dnsmasq, 'get_conf_file_name') as conf_fn:
|
||||
conf_fn.return_value = '/foo/opts'
|
||||
|
@ -524,9 +526,10 @@ tag:tag1,option:classless-static-route,%s,%s""".lstrip() % (fake_v6,
|
|||
tag:tag0,option:dns-server,8.8.8.8
|
||||
tag:tag0,option:router,10.0.0.1
|
||||
tag:tag1,option:dns-server,%s
|
||||
tag:tag1,option:classless-static-route,%s,%s""".lstrip() % (fake_v6,
|
||||
fake_v6_cidr,
|
||||
fake_v6)
|
||||
tag:tag1,option:classless-static-route,%s,%s
|
||||
tag:tag1,249,%s,%s""".lstrip() % (fake_v6,
|
||||
fake_v6_cidr, fake_v6,
|
||||
fake_v6_cidr, fake_v6)
|
||||
|
||||
with mock.patch.object(dhcp.Dnsmasq, 'get_conf_file_name') as conf_fn:
|
||||
conf_fn.return_value = '/foo/opts'
|
||||
|
@ -540,6 +543,7 @@ tag:tag1,option:classless-static-route,%s,%s""".lstrip() % (fake_v6,
|
|||
expected = """
|
||||
tag:tag0,option:dns-server,8.8.8.8
|
||||
tag:tag0,option:classless-static-route,20.0.0.1/24,20.0.0.1
|
||||
tag:tag0,249,20.0.0.1/24,20.0.0.1
|
||||
tag:tag0,option:router,192.168.0.1""".lstrip()
|
||||
with mock.patch.object(dhcp.Dnsmasq, 'get_conf_file_name') as conf_fn:
|
||||
conf_fn.return_value = '/foo/opts'
|
||||
|
@ -553,6 +557,7 @@ tag:tag0,option:router,192.168.0.1""".lstrip()
|
|||
expected = """
|
||||
tag0,option:dns-server,8.8.8.8
|
||||
tag0,option:classless-static-route,20.0.0.1/24,20.0.0.1
|
||||
tag0,249,20.0.0.1/24,20.0.0.1
|
||||
tag0,option:router,192.168.0.1""".lstrip()
|
||||
with mock.patch.object(dhcp.Dnsmasq, 'get_conf_file_name') as conf_fn:
|
||||
conf_fn.return_value = '/foo/opts'
|
||||
|
@ -565,6 +570,7 @@ tag0,option:router,192.168.0.1""".lstrip()
|
|||
def test_output_opts_file_no_gateway(self):
|
||||
expected = """
|
||||
tag:tag0,option:classless-static-route,169.254.169.254/32,192.168.1.1
|
||||
tag:tag0,249,169.254.169.254/32,192.168.1.1
|
||||
tag:tag0,option:router""".lstrip()
|
||||
|
||||
with mock.patch.object(dhcp.Dnsmasq, 'get_conf_file_name') as conf_fn:
|
||||
|
@ -594,11 +600,13 @@ tag:tag0,option:router""".lstrip()
|
|||
exp_opt_data = """
|
||||
tag:tag0,option:dns-server,8.8.8.8
|
||||
tag:tag0,option:classless-static-route,20.0.0.1/24,20.0.0.1
|
||||
tag:tag0,249,20.0.0.1/24,20.0.0.1
|
||||
tag:tag0,option:router,192.168.0.1
|
||||
tag:tag1,option:dns-server,%s
|
||||
tag:tag1,option:classless-static-route,%s,%s""".lstrip() % (fake_v6,
|
||||
fake_v6_cidr,
|
||||
fake_v6)
|
||||
tag:tag1,option:classless-static-route,%s,%s
|
||||
tag:tag1,249,%s,%s""".lstrip() % (fake_v6,
|
||||
fake_v6_cidr, fake_v6,
|
||||
fake_v6_cidr, fake_v6)
|
||||
|
||||
exp_args = ['kill', '-HUP', 5]
|
||||
|
||||
|
@ -638,11 +646,13 @@ tag:tag1,option:classless-static-route,%s,%s""".lstrip() % (fake_v6,
|
|||
exp_opt_data = """
|
||||
tag:tag0,option:dns-server,8.8.8.8
|
||||
tag:tag0,option:classless-static-route,20.0.0.1/24,20.0.0.1
|
||||
tag:tag0,249,20.0.0.1/24,20.0.0.1
|
||||
tag:tag0,option:router,192.168.0.1
|
||||
tag:tag1,option:dns-server,%s
|
||||
tag:tag1,option:classless-static-route,%s,%s""".lstrip() % (fake_v6,
|
||||
fake_v6_cidr,
|
||||
fake_v6)
|
||||
tag:tag1,option:classless-static-route,%s,%s
|
||||
tag:tag1,249,%s,%s""".lstrip() % (fake_v6,
|
||||
fake_v6_cidr, fake_v6,
|
||||
fake_v6_cidr, fake_v6)
|
||||
|
||||
exp_args = ['cat', '/proc/5/cmdline']
|
||||
|
||||
|
|
Loading…
Reference in New Issue