Merge lp:~allenap/maas/discover-storage-capacity--bug-1387380--1.7 into lp:maas/1.7

Proposed by Gavin Panella
Status: Merged
Approved by: Gavin Panella
Approved revision: no longer in the source branch.
Merged at revision: 3289
Proposed branch: lp:~allenap/maas/discover-storage-capacity--bug-1387380--1.7
Merge into: lp:maas/1.7
Diff against target: 62 lines (+38/-2)
2 files modified
src/metadataserver/models/commissioningscript.py (+8/-2)
src/metadataserver/models/tests/test_noderesults.py (+30/-0)
To merge this branch: bzr merge lp:~allenap/maas/discover-storage-capacity--bug-1387380--1.7
Reviewer Review Type Date Requested Status
Christian Reis (community) Approve
Review via email: mp+240109@code.launchpad.net

Commit message

Backport of r3316 from lp:maas: Updated XPath expression for discovering storage capacity from lshw XML.

The lshw format has evolved. The new expression attempts to cope with both old and new formats.

To post a comment you must log in.
Revision history for this message
Christian Reis (kiko) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/metadataserver/models/commissioningscript.py'
--- src/metadataserver/models/commissioningscript.py 2014-10-22 12:29:54 +0000
+++ src/metadataserver/models/commissioningscript.py 2014-10-30 12:45:49 +0000
@@ -139,9 +139,15 @@
139 div 1024 div 1024139 div 1024 div 1024
140"""140"""
141141
142# Select <node class="disk"><size units="bytes">1234</size></node>, or,
143# failing that, <node class="volume"><size units="bytes">1234</size></node>
144# that's not nested within a <node class="disk"></node>.
142_xpath_storage_bytes = """\145_xpath_storage_bytes = """\
143 sum(//node[@class='volume']/size[@units='bytes'])146 (
144 div 1024 div 1024147 //node[@class='disk'] |
148 //node[not(ancestor::node[@class='disk']) and @class='volume']
149 )
150 /size[@units='bytes'] div 1024 div 1024
145"""151"""
146152
147153
148154
=== modified file 'src/metadataserver/models/tests/test_noderesults.py'
--- src/metadataserver/models/tests/test_noderesults.py 2014-10-22 12:29:54 +0000
+++ src/metadataserver/models/tests/test_noderesults.py 2014-10-30 12:45:49 +0000
@@ -620,6 +620,36 @@
620 node = reload_object(node)620 node = reload_object(node)
621 self.assertEqual(764435, node.storage)621 self.assertEqual(764435, node.storage)
622622
623 def test_hardware_updates_storage_1387380_bad(self):
624 # Hardware data from bug 1387380 (the "bad" node).
625 node = factory.make_Node()
626 xmlbytes = dedent("""\
627 <node id="disk" claimed="true"
628 class="disk" handle="SCSI:00:00:00:00">
629 <size units="bytes">120034123776</size>
630 </node>
631 """).encode("utf-8")
632 update_hardware_details(node, xmlbytes, 0)
633 node = reload_object(node)
634 self.assertEqual(114473, node.storage)
635
636 def test_hardware_updates_storage_1387380_good(self):
637 # Hardware data from bug 1387380 (the "good" node).
638 node = factory.make_Node()
639 xmlbytes = dedent("""\
640 <node id="disk" claimed="true"
641 class="disk" handle="SCSI:00:00:00:00">
642 <size units="bytes">120034123776</size>
643 <node id="volume" claimed="true" class="volume" handle="">
644 <size units="bytes">120033075200</size>
645 <capacity>120033075200</capacity>
646 </node>
647 </node>
648 """).encode("utf-8")
649 update_hardware_details(node, xmlbytes, 0)
650 node = reload_object(node)
651 self.assertEqual(114473, node.storage)
652
623 def test_hardware_updates_ignores_empty_tags(self):653 def test_hardware_updates_ignores_empty_tags(self):
624 # Tags with empty definitions are ignored when654 # Tags with empty definitions are ignored when
625 # update_hardware_details gets called.655 # update_hardware_details gets called.

Subscribers

People subscribed via source and target branches

to all changes: