Merge "fall back to PARTUUID if UUID not found."
This commit is contained in:
commit
667589bb00
@ -48,7 +48,8 @@ def _get_partition(device, uuid):
|
|||||||
LOG.warning("Couldn't re-read the partition table "
|
LOG.warning("Couldn't re-read the partition table "
|
||||||
"on device %s", device)
|
"on device %s", device)
|
||||||
|
|
||||||
report = utils.execute('lsblk', '-PbioKNAME,UUID,TYPE', device)[0]
|
lsblk = utils.execute('lsblk', '-PbioKNAME,UUID,PARTUUID,TYPE', device)
|
||||||
|
report = lsblk[0]
|
||||||
for line in report.split('\n'):
|
for line in report.split('\n'):
|
||||||
part = {}
|
part = {}
|
||||||
# Split into KEY=VAL pairs
|
# Split into KEY=VAL pairs
|
||||||
@ -63,6 +64,10 @@ def _get_partition(device, uuid):
|
|||||||
LOG.debug("Partition %(uuid)s found on device "
|
LOG.debug("Partition %(uuid)s found on device "
|
||||||
"%(dev)s", {'uuid': uuid, 'dev': device})
|
"%(dev)s", {'uuid': uuid, 'dev': device})
|
||||||
return '/dev/' + part.get('KNAME')
|
return '/dev/' + part.get('KNAME')
|
||||||
|
if part.get('PARTUUID') == uuid:
|
||||||
|
LOG.debug("Partition %(uuid)s found on device "
|
||||||
|
"%(dev)s", {'uuid': uuid, 'dev': device})
|
||||||
|
return '/dev/' + part.get('KNAME')
|
||||||
else:
|
else:
|
||||||
error_msg = ("No partition with UUID %(uuid)s found on "
|
error_msg = ("No partition with UUID %(uuid)s found on "
|
||||||
"device %(dev)s" % {'uuid': uuid, 'dev': device})
|
"device %(dev)s" % {'uuid': uuid, 'dev': device})
|
||||||
|
@ -325,7 +325,8 @@ class TestImageExtension(base.IronicAgentTest):
|
|||||||
expected = [mock.call('partx', '-u', self.fake_dev, attempts=3,
|
expected = [mock.call('partx', '-u', self.fake_dev, attempts=3,
|
||||||
delay_on_retry=True),
|
delay_on_retry=True),
|
||||||
mock.call('udevadm', 'settle'),
|
mock.call('udevadm', 'settle'),
|
||||||
mock.call('lsblk', '-PbioKNAME,UUID,TYPE', self.fake_dev)]
|
mock.call('lsblk', '-PbioKNAME,UUID,PARTUUID,TYPE',
|
||||||
|
self.fake_dev)]
|
||||||
mock_execute.assert_has_calls(expected)
|
mock_execute.assert_has_calls(expected)
|
||||||
self.assertFalse(mock_dispatch.called)
|
self.assertFalse(mock_dispatch.called)
|
||||||
|
|
||||||
@ -342,7 +343,8 @@ class TestImageExtension(base.IronicAgentTest):
|
|||||||
expected = [mock.call('partx', '-u', self.fake_dev, attempts=3,
|
expected = [mock.call('partx', '-u', self.fake_dev, attempts=3,
|
||||||
delay_on_retry=True),
|
delay_on_retry=True),
|
||||||
mock.call('udevadm', 'settle'),
|
mock.call('udevadm', 'settle'),
|
||||||
mock.call('lsblk', '-PbioKNAME,UUID,TYPE', self.fake_dev)]
|
mock.call('lsblk', '-PbioKNAME,UUID,PARTUUID,TYPE',
|
||||||
|
self.fake_dev)]
|
||||||
mock_execute.assert_has_calls(expected)
|
mock_execute.assert_has_calls(expected)
|
||||||
self.assertFalse(mock_dispatch.called)
|
self.assertFalse(mock_dispatch.called)
|
||||||
|
|
||||||
@ -357,6 +359,23 @@ class TestImageExtension(base.IronicAgentTest):
|
|||||||
expected = [mock.call('partx', '-u', self.fake_dev, attempts=3,
|
expected = [mock.call('partx', '-u', self.fake_dev, attempts=3,
|
||||||
delay_on_retry=True),
|
delay_on_retry=True),
|
||||||
mock.call('udevadm', 'settle'),
|
mock.call('udevadm', 'settle'),
|
||||||
mock.call('lsblk', '-PbioKNAME,UUID,TYPE', self.fake_dev)]
|
mock.call('lsblk', '-PbioKNAME,UUID,PARTUUID,TYPE',
|
||||||
|
self.fake_dev)]
|
||||||
|
mock_execute.assert_has_calls(expected)
|
||||||
|
self.assertFalse(mock_dispatch.called)
|
||||||
|
|
||||||
|
def test__get_partition_partuuid(self, mock_execute, mock_dispatch):
|
||||||
|
lsblk_output = ('''KNAME="test" UUID="" TYPE="disk"
|
||||||
|
KNAME="test1" UUID="256a39e3-ca3c-4fb8-9cc2-b32eec441f47" TYPE="part"
|
||||||
|
KNAME="test2" PARTUUID="%s" TYPE="part"''' % self.fake_root_uuid)
|
||||||
|
mock_execute.side_effect = (None, None, [lsblk_output])
|
||||||
|
|
||||||
|
root_part = image._get_partition(self.fake_dev, self.fake_root_uuid)
|
||||||
|
self.assertEqual('/dev/test2', root_part)
|
||||||
|
expected = [mock.call('partx', '-u', self.fake_dev, attempts=3,
|
||||||
|
delay_on_retry=True),
|
||||||
|
mock.call('udevadm', 'settle'),
|
||||||
|
mock.call('lsblk', '-PbioKNAME,UUID,PARTUUID,TYPE',
|
||||||
|
self.fake_dev)]
|
||||||
mock_execute.assert_has_calls(expected)
|
mock_execute.assert_has_calls(expected)
|
||||||
self.assertFalse(mock_dispatch.called)
|
self.assertFalse(mock_dispatch.called)
|
||||||
|
Loading…
Reference in New Issue
Block a user