Merge "Fix nits on DRAC OOB inspection patch"

This commit is contained in:
Jenkins 2016-09-13 12:46:53 +00:00 committed by Gerrit Code Review
commit 991d3a9f2b
2 changed files with 38 additions and 4 deletions

View File

@ -77,8 +77,9 @@ class DracInspect(base.InspectInterface):
properties['memory_mb'] = sum(
[memory.size_mb for memory in client.list_memory()])
cpus = client.list_cpus()
properties['cpus'] = len(cpus)
properties['cpu_arch'] = 'x86_64' if cpus[0].arch64 else 'x86'
if cpus:
properties['cpus'] = len(cpus)
properties['cpu_arch'] = 'x86_64' if cpus[0].arch64 else 'x86'
virtual_disks = client.list_virtual_disks()
root_disk = self._guess_root_disk(virtual_disks)
@ -133,8 +134,15 @@ class DracInspect(base.InspectInterface):
LOG.info(_LI('Node %s successfully inspected.'), node.uuid)
return states.MANAGEABLE
def _guess_root_disk(self, disks, min_size_required=4 * units.Ki):
def _guess_root_disk(self, disks, min_size_required_mb=4 * units.Ki):
"""Find a root disk.
:param disks: list of disks.
:param min_size_required_mb: minimum required size of the root disk in
megabytes.
:returns: root disk.
"""
disks.sort(key=lambda disk: disk.size_mb)
for disk in disks:
if disk.size_mb >= min_size_required:
if disk.size_mb >= min_size_required_mb:
return disk

View File

@ -207,6 +207,24 @@ class DracInspectionTestCase(db_base.DbTestCase):
self.assertEqual(states.MANAGEABLE, return_value)
self.assertEqual(2, mock_port_create.call_count)
@mock.patch.object(drac_common, 'get_drac_client', spec_set=True,
autospec=True)
@mock.patch.object(objects.Port, 'create', spec_set=True, autospec=True)
def test_inspect_hardware_no_cpu(
self, mock_port_create, mock_get_drac_client):
mock_client = mock.Mock()
mock_get_drac_client.return_value = mock_client
mock_client.list_memory.return_value = self.memory
mock_client.list_cpus.return_value = []
mock_client.list_virtual_disks.return_value = []
mock_client.list_physical_disks.return_value = self.physical_disks
mock_client.list_nics.return_value = self.nics
with task_manager.acquire(self.context, self.node.uuid,
shared=True) as task:
self.assertRaises(exception.HardwareInspectionFailure,
task.driver.inspect.inspect_hardware, task)
@mock.patch.object(drac_common, 'get_drac_client', spec_set=True,
autospec=True)
@mock.patch.object(objects.Port, 'create', spec_set=True, autospec=True)
@ -233,3 +251,11 @@ class DracInspectionTestCase(db_base.DbTestCase):
self.assertEqual(expected_node_properties, self.node.properties)
self.assertEqual(states.MANAGEABLE, return_value)
self.assertEqual(2, mock_port_create.call_count)
def test__guess_root_disk(self):
with task_manager.acquire(self.context, self.node.uuid,
shared=True) as task:
root_disk = task.driver.inspect._guess_root_disk(
self.physical_disks)
self.assertEqual(285888, root_disk.size_mb)