Merge "New extension call to return partition UUIDs"
This commit is contained in:
commit
d7cf7bd341
ironic_python_agent
@ -619,6 +619,7 @@ class StandbyExtension(base.BaseAgentExtension):
|
|||||||
device)
|
device)
|
||||||
stream_to = self.partition_uuids['partitions']['root']
|
stream_to = self.partition_uuids['partitions']['root']
|
||||||
else:
|
else:
|
||||||
|
self.partition_uuids = {}
|
||||||
stream_to = device
|
stream_to = device
|
||||||
|
|
||||||
self._stream_raw_image_onto_device(image_info, stream_to)
|
self._stream_raw_image_onto_device(image_info, stream_to)
|
||||||
@ -706,6 +707,16 @@ class StandbyExtension(base.BaseAgentExtension):
|
|||||||
LOG.error(error_msg)
|
LOG.error(error_msg)
|
||||||
raise errors.CommandExecutionError(error_msg)
|
raise errors.CommandExecutionError(error_msg)
|
||||||
|
|
||||||
|
@base.sync_command('get_partition_uuids')
|
||||||
|
def get_partition_uuids(self):
|
||||||
|
"""Return partition UUIDs."""
|
||||||
|
# NOTE(dtantsur): None means prepare_image hasn't been called (an empty
|
||||||
|
# dict is used for whole disk images).
|
||||||
|
if self.partition_uuids is None:
|
||||||
|
LOG.warning('No partition UUIDs recorded yet, prepare_image '
|
||||||
|
'has to be called before get_partition_uuids')
|
||||||
|
return self.partition_uuids or {}
|
||||||
|
|
||||||
# TODO(TheJulia): Once we have deploy/clean steps, this should
|
# TODO(TheJulia): Once we have deploy/clean steps, this should
|
||||||
# become a step, which we ideally have enabled by default.
|
# become a step, which we ideally have enabled by default.
|
||||||
def _sync_clock(self, ignore_errors=False):
|
def _sync_clock(self, ignore_errors=False):
|
||||||
|
@ -939,6 +939,9 @@ class TestStandbyExtension(base.IronicAgentTest):
|
|||||||
image_info['disk_format'] = 'raw'
|
image_info['disk_format'] = 'raw'
|
||||||
image_info['stream_raw_images'] = True
|
image_info['stream_raw_images'] = True
|
||||||
self._test_prepare_image_raw(image_info, partition=True)
|
self._test_prepare_image_raw(image_info, partition=True)
|
||||||
|
self.assertEqual({'root uuid': 'a318821b-2a60-40e5-a011-7ac07fce342b',
|
||||||
|
'partitions': {'root': '/dev/foo-part1'}},
|
||||||
|
self.agent_extension.partition_uuids)
|
||||||
|
|
||||||
def test_prepare_partition_image_raw_and_stream_false(self):
|
def test_prepare_partition_image_raw_and_stream_false(self):
|
||||||
image_info = _build_fake_partition_image_info()
|
image_info = _build_fake_partition_image_info()
|
||||||
@ -1241,6 +1244,12 @@ class TestStandbyExtension(base.IronicAgentTest):
|
|||||||
self.agent_extension._sync_clock)
|
self.agent_extension._sync_clock)
|
||||||
execute_mock.assert_any_call('hwclock', '-v', '--systohc')
|
execute_mock.assert_any_call('hwclock', '-v', '--systohc')
|
||||||
|
|
||||||
|
@mock.patch('ironic_python_agent.utils.execute', autospec=True)
|
||||||
|
def test_get_partition_uuids(self, execute_mock):
|
||||||
|
self.agent_extension.partition_uuids = {'1': '2'}
|
||||||
|
result = self.agent_extension.get_partition_uuids()
|
||||||
|
self.assertEqual({'1': '2'}, result.serialize()['command_result'])
|
||||||
|
|
||||||
|
|
||||||
@mock.patch('hashlib.md5', autospec=True)
|
@mock.patch('hashlib.md5', autospec=True)
|
||||||
@mock.patch('requests.get', autospec=True)
|
@mock.patch('requests.get', autospec=True)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user