Merge lp:~mpontillo/maas/subnet-list-nonetype--bug-1599997--2.0 into lp:maas/2.0

Proposed by Mike Pontillo
Status: Merged
Approved by: Mike Pontillo
Approved revision: no longer in the source branch.
Merged at revision: 5146
Proposed branch: lp:~mpontillo/maas/subnet-list-nonetype--bug-1599997--2.0
Merge into: lp:maas/2.0
Diff against target: 62 lines (+22/-1)
3 files modified
docs/changelog.rst (+6/-0)
src/maasserver/websockets/handlers/subnet.py (+2/-0)
src/maasserver/websockets/handlers/tests/test_subnet.py (+14/-1)
To merge this branch: bzr merge lp:~mpontillo/maas/subnet-list-nonetype--bug-1599997--2.0
Reviewer Review Type Date Requested Status
Mike Pontillo (community) Approve
Review via email: mp+299487@code.launchpad.net

Commit message

Backport revision 5160 from trunk to fix issue where NULL dns_servers field in subnet websocket handler was handled improperly. Update changelog.

To post a comment you must log in.
Revision history for this message
Mike Pontillo (mpontillo) wrote :

Self-approving backport.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'docs/changelog.rst'
--- docs/changelog.rst 2016-07-01 03:06:12 +0000
+++ docs/changelog.rst 2016-07-07 22:48:43 +0000
@@ -2,6 +2,12 @@
2Changelog2Changelog
3=========3=========
44
52.0.0 (rc2)
6===========
7
8LP: #1599997 [2.0rc1] after upgrade from 2.0b3, Error on request (13) subnet.list: 'NoneType' object is not iterable
9
10
52.0.0 (rc1)112.0.0 (rc1)
6===========12===========
713
814
=== modified file 'src/maasserver/websockets/handlers/subnet.py'
--- src/maasserver/websockets/handlers/subnet.py 2016-05-11 19:01:48 +0000
+++ src/maasserver/websockets/handlers/subnet.py 2016-07-07 22:48:43 +0000
@@ -43,6 +43,8 @@
43 ]43 ]
4444
45 def dehydrate_dns_servers(self, dns_servers):45 def dehydrate_dns_servers(self, dns_servers):
46 if dns_servers is None:
47 return ""
46 return " ".join(sorted(dns_servers))48 return " ".join(sorted(dns_servers))
4749
48 def dehydrate(self, subnet, data, for_list=False):50 def dehydrate(self, subnet, data, for_list=False):
4951
=== modified file 'src/maasserver/websockets/handlers/tests/test_subnet.py'
--- src/maasserver/websockets/handlers/tests/test_subnet.py 2016-05-12 19:07:37 +0000
+++ src/maasserver/websockets/handlers/tests/test_subnet.py 2016-07-07 22:48:43 +0000
@@ -26,7 +26,10 @@
26 "created": dehydrate_datetime(subnet.created),26 "created": dehydrate_datetime(subnet.created),
27 "name": subnet.name,27 "name": subnet.name,
28 "description": subnet.description,28 "description": subnet.description,
29 "dns_servers": " ".join(sorted(subnet.dns_servers)),29 "dns_servers": (
30 " ".join(sorted(subnet.dns_servers))
31 if subnet.dns_servers is not None else ''
32 ),
30 "vlan": subnet.vlan_id,33 "vlan": subnet.vlan_id,
31 "space": subnet.space_id,34 "space": subnet.space_id,
32 "rdns_mode": subnet.rdns_mode,35 "rdns_mode": subnet.rdns_mode,
@@ -52,6 +55,16 @@
52 result = handler.get({"id": subnet.id})55 result = handler.get({"id": subnet.id})
53 self.assertThat(result, Equals(expected_data))56 self.assertThat(result, Equals(expected_data))
5457
58 def test_get_handles_null_dns_servers(self):
59 user = factory.make_User()
60 handler = SubnetHandler(user, {})
61 subnet = factory.make_Subnet()
62 subnet.dns_servers = None
63 subnet.save()
64 expected_data = self.dehydrate_subnet(subnet)
65 result = handler.get({"id": subnet.id})
66 self.assertThat(result, Equals(expected_data))
67
55 def test_list(self):68 def test_list(self):
56 user = factory.make_User()69 user = factory.make_User()
57 handler = SubnetHandler(user, {})70 handler = SubnetHandler(user, {})

Subscribers

People subscribed via source and target branches

to all changes: