def install_bootloader_with_tasks(self, payload_type, kernel_versions): """Install the bootloader with a list of tasks. FIXME: This is just a temporary method. :param payload_type: a string with the payload type :param kernel_versions: a list of kernel versions :return: a list of tasks """ return [ CreateRescueImagesTask(payload_type=payload_type, kernel_versions=kernel_versions, sysroot=conf.target.system_root), ConfigureBootloaderTask(storage=self.storage, mode=self.bootloader_mode, payload_type=payload_type, kernel_versions=kernel_versions, sysroot=conf.target.system_root), InstallBootloaderTask(storage=self.storage, mode=self.bootloader_mode), CreateBLSEntriesTask(storage=self.storage, payload_type=payload_type, kernel_versions=kernel_versions, sysroot=conf.target.system_root) ]
def create_bls_entries_test(self, exec_mock): """Test the installation task that creates BLS entries.""" version = "4.17.7-200.fc28.x86_64" storage = Mock() with tempfile.TemporaryDirectory() as root: task = CreateBLSEntriesTask(storage=storage, sysroot=root, payload_type=PAYLOAD_TYPE_RPM_OSTREE, kernel_versions=[version]) task.run() exec_mock.assert_not_called() exec_mock.reset_mock() with tempfile.TemporaryDirectory() as root: os.makedirs(root + "/usr/sbin/", exist_ok=True) open(root + "/usr/sbin/new-kernel-pkg", 'wb').close() task = CreateBLSEntriesTask(storage=storage, sysroot=root, payload_type=PAYLOAD_TYPE_LIVE_IMAGE, kernel_versions=[version]) task.run() exec_mock.assert_not_called() exec_mock.reset_mock() exec_mock.return_value = 0 with tempfile.TemporaryDirectory() as root: os.makedirs(root + "/boot/loader/entries/", exist_ok=True) open(root + "/boot/loader/entries/fake.conf", 'wb').close() task = CreateBLSEntriesTask(storage=storage, sysroot=root, payload_type=PAYLOAD_TYPE_LIVE_IMAGE, kernel_versions=[version]) task.run() exec_mock.assert_has_calls([ mock.call("kernel-install", [ "add", "4.17.7-200.fc28.x86_64", "/lib/modules/4.17.7-200.fc28.x86_64/vmlinuz" ], root=root), mock.call("grub2-mkconfig", ["-o", "/etc/grub2.cfg"], root=root) ]) self.assertFalse( os.path.exists(root + "/boot/loader/entries/fake.conf")) exec_mock.reset_mock() exec_mock.return_value = 0 storage = Mock(bootloader=EFIGRUB()) with tempfile.TemporaryDirectory() as root: task = CreateBLSEntriesTask(storage=storage, sysroot=root, payload_type=PAYLOAD_TYPE_LIVE_IMAGE, kernel_versions=[version]) task.run() exec_mock.assert_has_calls([ mock.call("kernel-install", [ "add", "4.17.7-200.fc28.x86_64", "/lib/modules/4.17.7-200.fc28.x86_64/vmlinuz" ], root=root), mock.call("grub2-mkconfig", ["-o", "/etc/grub2-efi.cfg"], root=root) ])