Merge lp:~blake-rouse/maas/fix-1524482 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: 4548
Proposed branch: lp:~blake-rouse/maas/fix-1524482
Merge into: lp:~maas-committers/maas/trunk
Diff against target: 55 lines (+11/-5)
2 files modified
src/provisioningserver/rpc/dhcp.py (+4/-2)
src/provisioningserver/rpc/tests/test_dhcp.py (+7/-3)
To merge this branch: bzr merge lp:~blake-rouse/maas/fix-1524482
Reviewer Review Type Date Requested Status
Andres Rodriguez (community) Approve
Review via email: mp+280097@code.launchpad.net

Commit message

Fix writing DHCP configuration so that it is encoded into a byte string before calling sudo_write_file.

To post a comment you must log in.
Revision history for this message
Andres Rodriguez (andreserl) wrote :

lgtm!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/provisioningserver/rpc/dhcp.py'
2--- src/provisioningserver/rpc/dhcp.py 2015-12-09 19:53:51 +0000
3+++ src/provisioningserver/rpc/dhcp.py 2015-12-10 00:35:47 +0000
4@@ -84,8 +84,10 @@
5 interfaces = {subnet['interface'] for subnet in subnet_configs}
6 interfaces_config = ' '.join(sorted(interfaces))
7 try:
8- sudo_write_file(server.config_filename, dhcpd_config)
9- sudo_write_file(server.interfaces_filename, interfaces_config)
10+ sudo_write_file(
11+ server.config_filename, dhcpd_config.encode("utf-8"))
12+ sudo_write_file(
13+ server.interfaces_filename, interfaces_config.encode("utf-8"))
14 except ExternalProcessError as e:
15 # ExternalProcessError.__str__ contains a generic failure message
16 # as well as the command and its error output. On the other hand,
17
18=== modified file 'src/provisioningserver/rpc/tests/test_dhcp.py'
19--- src/provisioningserver/rpc/tests/test_dhcp.py 2015-12-09 21:00:58 +0000
20+++ src/provisioningserver/rpc/tests/test_dhcp.py 2015-12-10 00:35:47 +0000
21@@ -76,11 +76,13 @@
22 self.patch_restart_service()
23 subnets = [make_subnet_config() for _ in range(3)]
24 self.configure(factory.make_name('key'), subnets)
25+ interfaces = ' '.join(
26+ sorted(subnet['interface'] for subnet in subnets))
27 self.assertThat(
28 write_file,
29 MockCalledWith(
30 ANY,
31- ' '.join(sorted(subnet['interface'] for subnet in subnets))))
32+ interfaces.encode("utf-8")))
33
34 def test__eliminates_duplicate_interfaces(self):
35 write_file = self.patch_sudo_write_file()
36@@ -90,7 +92,8 @@
37 for subnet in subnets:
38 subnet['interface'] = interface
39 self.configure(factory.make_name('key'), subnets)
40- self.assertThat(write_file, MockCalledWith(ANY, interface))
41+ self.assertThat(
42+ write_file, MockCalledWith(ANY, interface.encode("utf-8")))
43
44 def test__composes_dhcp_config(self):
45 self.patch_sudo_write_file()
46@@ -117,7 +120,8 @@
47
48 self.assertThat(
49 write_file,
50- MockAnyCall(self.server.config_filename, expected_config))
51+ MockAnyCall(
52+ self.server.config_filename, expected_config.encode("utf-8")))
53
54 def test__writes_interfaces_file(self):
55 write_file = self.patch_sudo_write_file()