Merge lp:~rvb/maas/pxe-mac-bug-1399676-view-node into lp:~maas-committers/maas/trunk

Proposed by Raphaël Badin
Status: Merged
Approved by: Raphaël Badin
Approved revision: no longer in the source branch.
Merged at revision: 3415
Proposed branch: lp:~rvb/maas/pxe-mac-bug-1399676-view-node
Merge into: lp:~maas-committers/maas/trunk
Prerequisite: lp:~rvb/maas/pxe-mac-bug-1399676
Diff against target: 81 lines (+30/-15)
3 files modified
src/maasserver/templates/maasserver/node_view.html (+5/-11)
src/maasserver/templates/maasserver/node_view_mac_display.html (+10/-0)
src/maasserver/views/tests/test_nodes.py (+15/-4)
To merge this branch: bzr merge lp:~rvb/maas/pxe-mac-bug-1399676-view-node
Reviewer Review Type Date Requested Status
Blake Rouse (community) Approve
Review via email: mp+244289@code.launchpad.net

Commit message

Display the PXE MAC first on the node view page.

To post a comment you must log in.
Revision history for this message
Blake Rouse (blake-rouse) wrote :

Looks good.

review: Approve
Revision history for this message
Raphaël Badin (rvb) wrote :

Thanks for the review!

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/maasserver/templates/maasserver/node_view.html'
2--- src/maasserver/templates/maasserver/node_view.html 2014-12-09 21:38:38 +0000
3+++ src/maasserver/templates/maasserver/node_view.html 2014-12-10 14:01:17 +0000
4@@ -109,17 +109,11 @@
5 <h4>Network interfaces</h4>
6 <span>
7 <ul class="data-list">
8- {% for mac in node.macaddress_set.all %}
9- <li>
10- {{ mac }}
11- {% if mac.get_networks %}
12- (on
13- {# Per network interface, comma-separated list of networks. #}
14- {% for network in mac.get_networks %}
15- <a href="{% url 'network-view' network.name %}">
16- {{ network.name }}</a>{% if not forloop.last %},
17- {% endif %}{% endfor %}){% endif %}
18- </li>
19+ {% with mac=node.get_pxe_mac %}
20+ {% include "maasserver/node_view_mac_display.html" %}
21+ {% endwith %}
22+ {% for mac in node.get_extra_macs %}
23+ {% include "maasserver/node_view_mac_display.html" %}
24 {% endfor %}
25 </ul>
26 </span>
27
28=== added file 'src/maasserver/templates/maasserver/node_view_mac_display.html'
29--- src/maasserver/templates/maasserver/node_view_mac_display.html 1970-01-01 00:00:00 +0000
30+++ src/maasserver/templates/maasserver/node_view_mac_display.html 2014-12-10 14:01:17 +0000
31@@ -0,0 +1,10 @@
32+<li>
33+ {{ mac }}
34+ {% if mac.get_networks %}
35+ (on
36+ {# Per network interface, comma-separated list of networks. #}
37+ {% for network in mac.get_networks %}
38+ <a href="{% url 'network-view' network.name %}">
39+ {{ network.name }}</a>{% if not forloop.last %},
40+ {% endif %}{% endfor %}){% endif %}
41+</li>
42
43=== modified file 'src/maasserver/views/tests/test_nodes.py'
44--- src/maasserver/views/tests/test_nodes.py 2014-12-10 14:01:17 +0000
45+++ src/maasserver/views/tests/test_nodes.py 2014-12-10 14:01:17 +0000
46@@ -737,11 +737,18 @@
47 [listing] = get_one(interfaces_section.cssselect('span'))
48 self.assertEqual(mac.mac_address, listing.text_content().strip())
49
50- def test_view_node_lists_macs_as_list_items(self):
51+ def test_view_node_lists_macs_as_sorted_list_items(self):
52+ # The PXE mac is listed first on the node view page.
53 self.client_log_in()
54 node = factory.make_Node()
55- factory.make_MACAddress('11:11:11:11:11:11', node=node)
56- factory.make_MACAddress('22:22:22:22:22:22', node=node)
57+
58+ macs = [
59+ factory.make_MACAddress(node=node)
60+ for _ in range(4)
61+ ]
62+ pxe_mac_index = 2
63+ node.pxe_mac = macs[pxe_mac_index]
64+ node.save()
65
66 response = self.client.get(reverse('node-view', args=[node.system_id]))
67 self.assertEqual(httplib.OK, response.status_code)
68@@ -750,8 +757,12 @@
69 '#network-interfaces')
70 [interfaces_list] = interfaces_section.cssselect('ul')
71 interfaces = interfaces_list.cssselect('li')
72+ sorted_macs = (
73+ [macs[pxe_mac_index]] +
74+ macs[:pxe_mac_index] + macs[pxe_mac_index + 1:]
75+ )
76 self.assertEqual(
77- ['11:11:11:11:11:11', '22:22:22:22:22:22'],
78+ [mac.mac_address.get_raw() for mac in sorted_macs],
79 [interface.text_content().strip() for interface in interfaces])
80
81 def test_view_node_links_network_interfaces_to_networks(self):