Merge lp:~blake-rouse/maas/fix-1496562 into lp:~maas-committers/maas/trunk

Proposed by Blake Rouse
Status: Merged
Approved by: Blake Rouse
Approved revision: no longer in the source branch.
Merged at revision: 4319
Proposed branch: lp:~blake-rouse/maas/fix-1496562
Merge into: lp:~maas-committers/maas/trunk
Diff against target: 131 lines (+48/-4)
4 files modified
src/maasserver/dns/tests/test_zonegenerator.py (+22/-0)
src/maasserver/dns/zonegenerator.py (+11/-0)
src/maasserver/preseed_network.py (+6/-2)
src/maasserver/tests/test_preseed_network.py (+9/-2)
To merge this branch: bzr merge lp:~blake-rouse/maas/fix-1496562
Reviewer Review Type Date Requested Status
Andres Rodriguez (community) Approve
Review via email: mp+272425@code.launchpad.net

Commit message

Send the dns-search in the networking preseed to curtin.

To post a comment you must log in.
Revision history for this message
Andres Rodriguez (andreserl) :
review: Needs Information
Revision history for this message
Blake Rouse (blake-rouse) :
Revision history for this message
Andres Rodriguez (andreserl) wrote :

comment inline

Revision history for this message
Blake Rouse (blake-rouse) wrote :

;-)

Revision history for this message
Andres Rodriguez (andreserl) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/maasserver/dns/tests/test_zonegenerator.py'
2--- src/maasserver/dns/tests/test_zonegenerator.py 2015-09-08 21:59:19 +0000
3+++ src/maasserver/dns/tests/test_zonegenerator.py 2015-09-25 15:17:42 +0000
4@@ -21,6 +21,7 @@
5 from maasserver.dns import zonegenerator
6 from maasserver.dns.zonegenerator import (
7 DNSException,
8+ get_dns_search_paths,
9 get_dns_server_address,
10 get_hostname_ip_mapping,
11 lazydict,
12@@ -37,6 +38,7 @@
13 from maasserver.models import (
14 Config,
15 interface as interface_module,
16+ NodeGroup,
17 )
18 from maasserver.testing.config import RegionConfigurationFixture
19 from maasserver.testing.factory import factory
20@@ -132,6 +134,26 @@
21 self.expectThat(resolver, MockAnyCall(hostname, 6))
22
23
24+class TestGetDNSSearchPaths(MAASServerTestCase):
25+
26+ def test__returns_all_nodegroup_names(self):
27+ nodegroup_master = NodeGroup.objects.ensure_master()
28+ dns_search_names = [
29+ factory.make_name("dns")
30+ for _ in range(3)
31+ ]
32+ for name in dns_search_names:
33+ factory.make_NodeGroup(status=NODEGROUP_STATUS.ENABLED, name=name)
34+ # Create some with empty names.
35+ for _ in range(3):
36+ factory.make_NodeGroup(status=NODEGROUP_STATUS.ENABLED, name="")
37+ # Create some not enabled.
38+ for _ in range(3):
39+ factory.make_NodeGroup(status=NODEGROUP_STATUS.DISABLED, name="")
40+ self.assertItemsEqual(
41+ [nodegroup_master.name] + dns_search_names, get_dns_search_paths())
42+
43+
44 class TestWarnLoopback(MAASServerTestCase):
45 def test_warn_loopback_warns_about_IPv4_loopback(self):
46 logger = self.patch(zonegenerator, 'logger')
47
48=== modified file 'src/maasserver/dns/zonegenerator.py'
49--- src/maasserver/dns/zonegenerator.py 2015-08-28 18:04:33 +0000
50+++ src/maasserver/dns/zonegenerator.py 2015-09-25 15:17:42 +0000
51@@ -25,6 +25,7 @@
52 import socket
53
54 from maasserver import logger
55+from maasserver.enum import NODEGROUP_STATUS
56 from maasserver.exceptions import MAASException
57 from maasserver.models.config import Config
58 from maasserver.models.nodegroup import NodeGroup
59@@ -129,6 +130,16 @@
60 return ip
61
62
63+def get_dns_search_paths():
64+ """Return all the search paths for the DNS server."""
65+ return set(
66+ name
67+ for name in NodeGroup.objects.filter(
68+ status=NODEGROUP_STATUS.ENABLED).values_list("name", flat=True)
69+ if name
70+ )
71+
72+
73 class ZoneGenerator:
74 """Generate zones describing those relating to the given node groups."""
75
76
77=== modified file 'src/maasserver/preseed_network.py'
78--- src/maasserver/preseed_network.py 2015-09-16 14:23:58 +0000
79+++ src/maasserver/preseed_network.py 2015-09-25 15:17:42 +0000
80@@ -15,7 +15,10 @@
81 __all__ = [
82 ]
83
84-from maasserver.dns.zonegenerator import get_dns_server_address
85+from maasserver.dns.zonegenerator import (
86+ get_dns_search_paths,
87+ get_dns_server_address,
88+)
89 from maasserver.enum import (
90 INTERFACE_TYPE,
91 IPADDRESS_FAMILY,
92@@ -57,7 +60,8 @@
93
94 self.network_config.append({
95 "type": "nameserver",
96- "address": get_dns_server_address(nodegroup=self.node.nodegroup)
97+ "address": get_dns_server_address(nodegroup=self.node.nodegroup),
98+ "search": sorted(get_dns_search_paths()),
99 })
100
101 network_config = {
102
103=== modified file 'src/maasserver/tests/test_preseed_network.py'
104--- src/maasserver/tests/test_preseed_network.py 2015-09-24 19:54:30 +0000
105+++ src/maasserver/tests/test_preseed_network.py 2015-09-25 15:17:42 +0000
106@@ -17,7 +17,10 @@
107 import random
108 from textwrap import dedent
109
110-from maasserver.dns.zonegenerator import get_dns_server_address
111+from maasserver.dns.zonegenerator import (
112+ get_dns_search_paths,
113+ get_dns_server_address,
114+)
115 from maasserver.enum import (
116 INTERFACE_TYPE,
117 IPADDRESS_FAMILY,
118@@ -206,8 +209,12 @@
119 return ret
120
121 def collectDNSConfig(self, node):
122- return "- type: nameserver\n address: %s" % (
123+ config = "- type: nameserver\n address: %s\n search:\n" % (
124 get_dns_server_address(nodegroup=node.nodegroup))
125+ dns_searches = sorted(get_dns_search_paths())
126+ for dns_name in dns_searches:
127+ config += " - %s\n" % dns_name
128+ return config
129
130
131 class TestSimpleNetworkLayout(MAASServerTestCase, AssertNetworkConfigMixin):