Exemplo n.º 1
0
    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)
        ]
Exemplo n.º 2
0
    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)
            ])