diff options
author | Zuul <zuul@review.opendev.org> | 2020-06-09 12:31:53 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2020-06-09 12:31:53 +0000 |
commit | b9af690bd316d201aae36a31a6322a308dd9106e (patch) | |
tree | 5d8b75af84a1039fd7e994e4f932dd79fcb43d18 | |
parent | 648ac493acc469512be1e21e6485ac3258a12a6f (diff) | |
parent | 7e5fe1121e23fad43a7c6b418bdad9fbe69981a1 (diff) | |
download | ironic-python-agent-b9af690bd316d201aae36a31a6322a308dd9106e.tar.gz |
Merge "Make the install_bootloader command asynchronous"
-rw-r--r-- | ironic_python_agent/extensions/image.py | 2 | ||||
-rw-r--r-- | ironic_python_agent/tests/unit/extensions/test_image.py | 23 |
2 files changed, 13 insertions, 12 deletions
diff --git a/ironic_python_agent/extensions/image.py b/ironic_python_agent/extensions/image.py index ab572138..7362ebe3 100644 --- a/ironic_python_agent/extensions/image.py +++ b/ironic_python_agent/extensions/image.py @@ -687,7 +687,7 @@ def _install_grub2(device, root_uuid, efi_system_part_uuid=None, class ImageExtension(base.BaseAgentExtension): - @base.sync_command('install_bootloader') + @base.async_command('install_bootloader') def install_bootloader(self, root_uuid, efi_system_part_uuid=None, prep_boot_part_uuid=None, target_boot_mode='bios'): diff --git a/ironic_python_agent/tests/unit/extensions/test_image.py b/ironic_python_agent/tests/unit/extensions/test_image.py index 546d1819..9dbec95e 100644 --- a/ironic_python_agent/tests/unit/extensions/test_image.py +++ b/ironic_python_agent/tests/unit/extensions/test_image.py @@ -54,7 +54,8 @@ class TestImageExtension(base.IronicAgentTest): mock_dispatch.side_effect = [ self.fake_dev, hardware.BootInfo(current_boot_mode='bios') ] - self.agent_extension.install_bootloader(root_uuid=self.fake_root_uuid) + self.agent_extension.install_bootloader( + root_uuid=self.fake_root_uuid).join() mock_dispatch.assert_any_call('get_os_install_device') mock_dispatch.assert_any_call('get_boot_info') self.assertEqual(2, mock_dispatch.call_count) @@ -79,7 +80,7 @@ class TestImageExtension(base.IronicAgentTest): root_uuid=self.fake_root_uuid, efi_system_part_uuid=self.fake_efi_system_part_uuid, target_boot_mode='uefi' - ) + ).join() mock_dispatch.assert_any_call('get_os_install_device') mock_dispatch.assert_any_call('get_boot_info') self.assertEqual(2, mock_dispatch.call_count) @@ -131,7 +132,7 @@ class TestImageExtension(base.IronicAgentTest): self.agent_extension.install_bootloader( root_uuid=self.fake_root_uuid, - efi_system_part_uuid=self.fake_efi_system_part_uuid) + efi_system_part_uuid=self.fake_efi_system_part_uuid).join() mock_dispatch.assert_any_call('get_os_install_device') mock_dispatch.assert_any_call('get_boot_info') @@ -179,7 +180,7 @@ class TestImageExtension(base.IronicAgentTest): self.agent_extension.install_bootloader( root_uuid=self.fake_root_uuid, - efi_system_part_uuid=None) + efi_system_part_uuid=None).join() mock_dispatch.assert_any_call('get_os_install_device') mock_dispatch.assert_any_call('get_boot_info') @@ -234,7 +235,7 @@ efibootmgr: ** Warning ** : Boot0005 has same label ironic1\n self.agent_extension.install_bootloader( root_uuid=self.fake_root_uuid, - efi_system_part_uuid=None) + efi_system_part_uuid=None).join() mock_dispatch.assert_any_call('get_os_install_device') mock_dispatch.assert_any_call('get_boot_info') @@ -289,7 +290,7 @@ efibootmgr: ** Warning ** : Boot0005 has same label ironic1\n self.agent_extension.install_bootloader( root_uuid=self.fake_root_uuid, - efi_system_part_uuid=None) + efi_system_part_uuid=None).join() mock_dispatch.assert_any_call('get_os_install_device') mock_dispatch.assert_any_call('get_boot_info') @@ -309,7 +310,7 @@ efibootmgr: ** Warning ** : Boot0005 has same label ironic1\n self.agent_extension.install_bootloader( root_uuid=self.fake_root_uuid, efi_system_part_uuid=None, - prep_boot_part_uuid=self.fake_prep_boot_part_uuid) + prep_boot_part_uuid=self.fake_prep_boot_part_uuid).join() mock_dispatch.assert_any_call('get_os_install_device') mock_dispatch.assert_any_call('get_boot_info') self.assertEqual(2, mock_dispatch.call_count) @@ -331,10 +332,10 @@ efibootmgr: ** Warning ** : Boot0005 has same label ironic1\n self.fake_dev, hardware.BootInfo(current_boot_mode='uefi') ] mock_execute.side_effect = FileNotFoundError - self.assertRaises(FileNotFoundError, - self.agent_extension.install_bootloader, - root_uuid=self.fake_root_uuid, - efi_system_part_uuid=None) + result = self.agent_extension.install_bootloader( + root_uuid=self.fake_root_uuid, + efi_system_part_uuid=None).join() + self.assertIsNotNone(result.command_error) expected = [mock.call('efibootmgr', '--version')] mock_execute.assert_has_calls(expected) |