Merge "follow up patch for ilo capabilities"

This commit is contained in:
Jenkins 2015-03-19 20:13:57 +00:00 committed by Gerrit Code Review
commit f0be66f96c
2 changed files with 32 additions and 4 deletions

View File

@ -155,6 +155,9 @@ def _update_capabilities(node, new_capabilities):
:returns: The capability string after adding/updating the
node_capabilities with new_capabilities
:raises: InvalidParameterValue, if node_capabilities is malformed.
:raises: HardwareInspectionFailure, if inspected capabilities
are not in dictionary format.
"""
cap_dict = {}
node_capabilities = node.properties.get('capabilities')
@ -171,12 +174,12 @@ def _update_capabilities(node, new_capabilities):
"properties['capabilities'] string")
% {'node': node.uuid, 'capabilities': node_capabilities})
raise exception.InvalidParameterValue(msg)
if new_capabilities and isinstance(new_capabilities, dict):
if isinstance(new_capabilities, dict):
cap_dict.update(new_capabilities)
else:
msg = (_("The expected format of capabilities from inspection "
"is dictionary while node %(node)s returned "
"%(capabilities)s."), {'node': node.uuid,
"%(capabilities)s.") % {'node': node.uuid,
'capabilities': new_capabilities})
raise exception.HardwareInspectionFailure(error=msg)
return ','.join(['%(key)s:%(value)s' % {'key': key, 'value': value}
@ -229,7 +232,6 @@ def _get_macs_for_desired_ports(node, macs):
to_be_created_macs = macs
else:
to_be_created_macs = {}
# desired_macs_list = desired_macs.split(',')
# The list should look like ['Port 1', 'Port 2'] as
# iLO returns port numbers like this.
desired_macs_list = [

View File

@ -483,7 +483,9 @@ class TestInspectPrivateMethods(db_base.DbTestCase):
cap_string = 'ilo_firmware_version:xyz,foo:bar,somekey:value'
cap_returned = ilo_inspect._update_capabilities(self.node,
capabilities)
self.assertEqual(sorted(cap_string), sorted(cap_returned))
set1 = set(cap_string.split(','))
set2 = set(cap_returned.split(','))
self.assertEqual(set1, set2)
self.assertIsInstance(cap_returned, str)
def test__update_capabilities_invalid_capabilities(self):
@ -498,6 +500,30 @@ class TestInspectPrivateMethods(db_base.DbTestCase):
ilo_inspect._update_capabilities,
self.node, capabilities)
def test__update_capabilities_add_to_existing_capabilities(self):
node_capabilities = {'capabilities': 'foo:bar'}
self.node.properties.update(node_capabilities)
new_capabilities = {'BootMode': 'uefi'}
expected_capabilities = 'BootMode:uefi,foo:bar'
cap_returned = ilo_inspect._update_capabilities(self.node,
new_capabilities)
set1 = set(expected_capabilities.split(','))
set2 = set(cap_returned.split(','))
self.assertEqual(set1, set2)
self.assertIsInstance(cap_returned, str)
def test__update_capabilities_replace_to_existing_capabilities(self):
node_capabilities = {'capabilities': 'BootMode:uefi'}
self.node.properties.update(node_capabilities)
new_capabilities = {'BootMode': 'bios'}
expected_capabilities = 'BootMode:bios'
cap_returned = ilo_inspect._update_capabilities(self.node,
new_capabilities)
set1 = set(expected_capabilities.split(','))
set2 = set(cap_returned.split(','))
self.assertEqual(set1, set2)
self.assertIsInstance(cap_returned, str)
def test__get_macs_for_desired_ports(self):
driver_info_mock = {'inspect_ports': '1,2'}
self.node.driver_info = driver_info_mock