Merge ~smoser/cloud-init:bug/1639930-ip6-only into cloud-init:master

Proposed by Scott Moser
Status: Merged
Merged at revision: 6e92c5f2fccaad24afb89f79f260cb496fb8d67f
Proposed branch: ~smoser/cloud-init:bug/1639930-ip6-only
Merge into: cloud-init:master
Diff against target: 94 lines (+28/-20)
2 files modified
cloudinit/net/cmdline.py (+1/-1)
tests/unittests/test_net.py (+27/-19)
Reviewer Review Type Date Requested Status
cloud-init Commiters Pending
Review via email: mp+310390@code.launchpad.net
To post a comment you must log in.

There was an error fetching revisions from git servers. Please try again in a few minutes. If the problem persists, contact Launchpad support.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/cloudinit/net/cmdline.py b/cloudinit/net/cmdline.py
2index 4075a27..a077730 100644
3--- a/cloudinit/net/cmdline.py
4+++ b/cloudinit/net/cmdline.py
5@@ -199,7 +199,7 @@ def read_kernel_cmdline_config(files=None, mac_addrs=None, cmdline=None):
6 if data64:
7 return util.load_yaml(_b64dgz(data64))
8
9- if 'ip=' not in cmdline:
10+ if 'ip=' not in cmdline and 'ip6=' not in cmdline:
11 return None
12
13 if mac_addrs is None:
14diff --git a/tests/unittests/test_net.py b/tests/unittests/test_net.py
15index 78c080c..6df0db9 100644
16--- a/tests/unittests/test_net.py
17+++ b/tests/unittests/test_net.py
18@@ -8,7 +8,9 @@ from cloudinit import util
19
20 from .helpers import dir2dict
21 from .helpers import mock
22+from .helpers import populate_dir
23 from .helpers import TestCase
24+from .helpers import TempDirTestCase
25
26 import base64
27 import copy
28@@ -54,22 +56,9 @@ DHCP_EXPECTED_1 = {
29 }
30
31 DHCP6_CONTENT_1 = """
32-DEVICE=eno1
33+DEVICE6=eno1
34 HOSTNAME=
35 DNSDOMAIN=
36-reason='PREINIT'
37-interface='eno1'
38-DEVICE=eno1
39-HOSTNAME=
40-DNSDOMAIN=
41-reason='FAIL'
42-interface='eno1'
43-DEVICE=eno1
44-HOSTNAME=
45-DNSDOMAIN=
46-reason='PREINIT6'
47-interface='eno1'
48-DEVICE=eno1
49 IPV6PROTO=dhcp6
50 IPV6ADDR=2001:67c:1562:8010:0:1::
51 IPV6NETMASK=64
52@@ -77,11 +66,6 @@ IPV6DNS0=2001:67c:1562:8010::2:1
53 IPV6DOMAINSEARCH=
54 HOSTNAME=
55 DNSDOMAIN=
56-reason='BOUND6'
57-interface='eno1'
58-new_ip6_address='2001:67c:1562:8010:0:1::'
59-new_ip6_prefixlen='64'
60-new_dhcp6_name_servers='2001:67c:1562:8010::2:1'
61 """
62
63 DHCP6_EXPECTED_1 = {
64@@ -677,6 +661,30 @@ class TestCmdlineConfigParsing(TestCase):
65 self.assertEqual(found, self.simple_cfg)
66
67
68+class TestCmdlineReadKernelConfig(TempDirTestCase):
69+ def test_ip_cmdline_read_kernel_cmdline_ip6(self):
70+ content = {'net6-eno1.conf': DHCP6_CONTENT_1}
71+ populate_dir(self.tmp, content)
72+ files = [os.path.join(self.tmp, k) for k in content.keys()]
73+ found = cmdline.read_kernel_cmdline_config(
74+ files=files, cmdline='foo ip6=dhcp root=/dev/sda')
75+ self.assertEqual(
76+ found,
77+ {'version': 1, 'config': [
78+ {'type': 'physical', 'name': 'eno1',
79+ 'subnets': [
80+ {'dns_nameservers': ['2001:67c:1562:8010::2:1'],
81+ 'control': 'manual', 'type': 'dhcp6', 'netmask': '64'}]}]})
82+
83+ def test_ip_cmdline_read_kernel_cmdline_none(self):
84+ content = {'net6-eno1.conf': DHCP6_CONTENT_1}
85+ populate_dir(self.tmp, content)
86+ files = [os.path.join(self.tmp, k) for k in content.keys()]
87+ found = cmdline.read_kernel_cmdline_config(
88+ files=files, cmdline='foo root=/dev/sda')
89+ self.assertEqual(found, None)
90+
91+
92 class TestEniRoundTrip(TestCase):
93 def setUp(self):
94 super(TestCase, self).setUp()

Subscribers

People subscribed via source and target branches