Merge ~bjornt/maas:bug-1811377-machine-ip-addresses into maas:master

Proposed by Björn Tillenius
Status: Merged
Approved by: Björn Tillenius
Approved revision: f06266db6fab2747974f5f1cb5e95ecf104e3cdf
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~bjornt/maas:bug-1811377-machine-ip-addresses
Merge into: maas:master
Diff against target: 64 lines (+19/-5)
3 files modified
src/maasserver/websockets/handlers/machine.py (+1/-2)
src/maasserver/websockets/handlers/tests/test_controller.py (+1/-1)
src/maasserver/websockets/handlers/tests/test_machine.py (+17/-2)
Reviewer Review Type Date Requested Status
Alberto Donato (community) Approve
MAAS Lander Needs Fixing
Review via email: mp+362031@code.launchpad.net

Commit message

LP: #1811377 - JS error in machine listing: TypeError: Cannot read property 'filter' of undefined

Always include ip_addresses when dehydrating a machine. Every information that
is available in the list needs to be there when viewing the object by itself.

To post a comment you must log in.
Revision history for this message
Björn Tillenius (bjornt) wrote :

See this MP for more discussion about the problem:

  https://code.launchpad.net/~steverydz/maas/+git/maas/+merge/361889

Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b bug-1811377-machine-ip-addresses lp:~bjornt/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci-jenkins.internal:8080/job/maas/job/branch-tester/4915/console
COMMIT: 7039c60e957f2e98bc2bfe1f258c25e61625c77a

review: Needs Fixing
Revision history for this message
Björn Tillenius (bjornt) :
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b bug-1811377-machine-ip-addresses lp:~bjornt/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci-jenkins.internal:8080/job/maas/job/branch-tester/4916/console
COMMIT: f06266db6fab2747974f5f1cb5e95ecf104e3cdf

review: Needs Fixing
Revision history for this message
Alberto Donato (ack) wrote :

+1, lgtm

review: Approve
Revision history for this message
Björn Tillenius (bjornt) :
Revision history for this message
MAAS Lander (maas-lander) wrote :

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/src/maasserver/websockets/handlers/machine.py b/src/maasserver/websockets/handlers/machine.py
2index 0d7845b..f5b3f10 100644
3--- a/src/maasserver/websockets/handlers/machine.py
4+++ b/src/maasserver/websockets/handlers/machine.py
5@@ -221,8 +221,7 @@ class MachineHandler(NodeHandler):
6 data["pxe_mac_vendor"] = obj.get_pxe_mac_vendor()
7 data["power_type"] = obj.power_type
8 data["vlan"] = self.dehydrate_vlan(obj, boot_interface)
9- if for_list:
10- data["ip_addresses"] = self.dehydrate_all_ip_addresses(obj)
11+ data["ip_addresses"] = self.dehydrate_all_ip_addresses(obj)
12 else:
13 data["pxe_mac"] = data["pxe_mac_vendor"] = ""
14
15diff --git a/src/maasserver/websockets/handlers/tests/test_controller.py b/src/maasserver/websockets/handlers/tests/test_controller.py
16index 9fc748c..fc3368a 100644
17--- a/src/maasserver/websockets/handlers/tests/test_controller.py
18+++ b/src/maasserver/websockets/handlers/tests/test_controller.py
19@@ -133,7 +133,7 @@ class TestControllerHandler(MAASServerTestCase):
20 # number means regiond has to do more work slowing down its process
21 # and slowing down the client waiting for the response.
22 self.assertEqual(
23- queries, 31,
24+ queries, 35,
25 "Number of queries has changed; make sure this is expected.")
26
27 def test_get_form_class_for_create(self):
28diff --git a/src/maasserver/websockets/handlers/tests/test_machine.py b/src/maasserver/websockets/handlers/tests/test_machine.py
29index f109958..1ecd7bb 100644
30--- a/src/maasserver/websockets/handlers/tests/test_machine.py
31+++ b/src/maasserver/websockets/handlers/tests/test_machine.py
32@@ -317,8 +317,7 @@ class TestMachineHandler(MAASServerTestCase):
33 }
34 if boot_interface:
35 data["vlan"] = handler.dehydrate_vlan(node, boot_interface)
36- if for_list:
37- data["ip_addresses"] = handler.dehydrate_all_ip_addresses(node)
38+ data["ip_addresses"] = handler.dehydrate_all_ip_addresses(node)
39 bmc = node.bmc
40 if bmc is not None and bmc.bmc_type == BMC_TYPE.POD:
41 data['pod'] = {'id': bmc.id, 'name': bmc.name}
42@@ -1779,6 +1778,22 @@ class TestMachineHandler(MAASServerTestCase):
43 [handler.dehydrate_filesystem(filesystem)])
44 }))
45
46+ def test_get_includes_static_ip_addresses(self):
47+ user = factory.make_User()
48+ machine = factory.make_Machine(owner=user)
49+ [interface1, interface2] = [
50+ factory.make_Interface(INTERFACE_TYPE.PHYSICAL, node=machine)
51+ for _ in range(2)
52+ ]
53+ ip_address1 = factory.make_StaticIPAddress(interface=interface1)
54+ ip_address2 = factory.make_StaticIPAddress(interface=interface2)
55+ handler = MachineHandler(user, {}, None)
56+ dehydrated_machine = handler.get({"system_id": machine.system_id})
57+ dehydrated_ips = [
58+ info['ip'] for info in dehydrated_machine['ip_addresses']]
59+ self.assertEqual(
60+ sorted(dehydrated_ips), sorted([ip_address1.ip, ip_address2.ip]))
61+
62 def test_list(self):
63 user = factory.make_User()
64 node = factory.make_Node(status=NODE_STATUS.ALLOCATED, owner=user)

Subscribers

People subscribed via source and target branches