diff options
| author | Zuul <zuul@review.opendev.org> | 2021-05-10 15:00:21 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2021-05-10 15:00:21 +0000 |
| commit | 9837f1c2f008d7e02dbf14f20f520c70e1281477 (patch) | |
| tree | 43d38df3bf9a08c482cbad3feec85d99cc538b3d /ironic_python_agent/tests/unit | |
| parent | 5c01ec4f6f9268ea2a53907913f4cc510fa8d629 (diff) | |
| parent | fe825fa97ed1f3c9fa8b1461b63ab133fec20b72 (diff) | |
| download | ironic-python-agent-9837f1c2f008d7e02dbf14f20f520c70e1281477.tar.gz | |
Merge "Fix NVMe Partition image on UEFI"
Diffstat (limited to 'ironic_python_agent/tests/unit')
| -rw-r--r-- | ironic_python_agent/tests/unit/extensions/test_image.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/ironic_python_agent/tests/unit/extensions/test_image.py b/ironic_python_agent/tests/unit/extensions/test_image.py index d7093b6b..c91de841 100644 --- a/ironic_python_agent/tests/unit/extensions/test_image.py +++ b/ironic_python_agent/tests/unit/extensions/test_image.py @@ -2165,6 +2165,45 @@ efibootmgr: ** Warning ** : Boot0005 has same label ironic1\n @mock.patch.object(image, '_get_partition', autospec=True) @mock.patch.object(utils, 'get_efi_part_on_device', autospec=True) @mock.patch.object(os, 'makedirs', autospec=True) + def test__manage_uefi_nvme_device(self, mkdir_mock, mock_utils_efi_part, + mock_get_part_uuid, mock_efi_bl, + mock_execute, mock_dispatch): + mock_utils_efi_part.return_value = '1' + mock_get_part_uuid.return_value = '/dev/fakenvme0p1' + + mock_efi_bl.return_value = ['\\EFI\\BOOT\\BOOTX64.EFI'] + + mock_execute.side_effect = iter([('', ''), ('', ''), + ('', ''), ('', ''), + ('', ''), ('', ''), + ('', '')]) + + expected = [mock.call('partx', '-u', '/dev/fakenvme0', attempts=3, + delay_on_retry=True), + mock.call('udevadm', 'settle'), + mock.call('mount', '/dev/fakenvme0p1', + self.fake_dir + '/boot/efi'), + mock.call('efibootmgr'), + mock.call('efibootmgr', '-c', '-d', '/dev/fakenvme0', + '-p', '1', '-w', + '-L', 'ironic1', '-l', + '\\EFI\\BOOT\\BOOTX64.EFI'), + mock.call('umount', self.fake_dir + '/boot/efi', + attempts=3, delay_on_retry=True), + mock.call('sync')] + + result = image._manage_uefi('/dev/fakenvme0', self.fake_root_uuid) + self.assertTrue(result) + mkdir_mock.assert_called_once_with(self.fake_dir + '/boot/efi') + mock_efi_bl.assert_called_once_with(self.fake_dir + '/boot/efi') + mock_execute.assert_has_calls(expected) + self.assertEqual(7, mock_execute.call_count) + + @mock.patch.object(os.path, 'exists', lambda *_: False) + @mock.patch.object(image, '_get_efi_bootloaders', autospec=True) + @mock.patch.object(image, '_get_partition', autospec=True) + @mock.patch.object(utils, 'get_efi_part_on_device', autospec=True) + @mock.patch.object(os, 'makedirs', autospec=True) def test__manage_uefi_wholedisk( self, mkdir_mock, mock_utils_efi_part, mock_get_part_uuid, mock_efi_bl, mock_execute, |
