Esempio n. 1
0
 def test_init_dracut_based(self, mock_boot_image):
     InstallImageBuilder(
         self.xml_state, 'root_dir', 'target_dir', None
     )
     mock_boot_image.new.assert_called_once_with(
         ANY, 'target_dir', 'root_dir'
     )
Esempio n. 2
0
    def create_install_media(self, result_instance):
        """
        Build an installation image. The installation image is a
        bootable hybrid ISO image which embeds the raw disk image
        and an image installer
        """
        if self.install_media:
            install_image = InstallImageBuilder(
                self.xml_state, self.root_dir, self.target_dir,
                self._load_boot_image_instance(), self.custom_args)

            if self.install_iso or self.install_stick:
                log.info('Creating hybrid ISO installation image')
                install_image.create_install_iso()
                result_instance.add(key='installation_image',
                                    filename=install_image.isoname,
                                    use_for_bundle=True,
                                    compress=False,
                                    shasum=True)

            if self.install_pxe:
                log.info('Creating PXE installation archive')
                install_image.create_install_pxe_archive()
                result_instance.add(key='installation_pxe_archive',
                                    filename=install_image.pxename,
                                    use_for_bundle=True,
                                    compress=False,
                                    shasum=True)

        return result_instance
Esempio n. 3
0
 def test_setup_ix86(self, mock_machine):
     mock_machine.return_value = 'i686'
     xml_state = mock.Mock()
     xml_state.xml_data.get_name = mock.Mock(return_value='result-image')
     xml_state.get_image_version = mock.Mock(return_value='1.2.3')
     xml_state.build_type.get_kernelcmdline = mock.Mock(
         return_value='custom_kernel_options')
     install_image = InstallImageBuilder(xml_state, 'target_dir',
                                         mock.Mock())
     assert install_image.arch == 'ix86'
Esempio n. 4
0
 def test_setup_ix86(self):
     Defaults.set_platform_name('i686')
     xml_state = mock.Mock()
     xml_state.xml_data.get_name = mock.Mock(return_value='result-image')
     xml_state.get_image_version = mock.Mock(return_value='1.2.3')
     xml_state.build_type.get_kernelcmdline = mock.Mock(
         return_value='custom_kernel_options')
     xml_state.get_build_type_oemconfig_section = mock.Mock(
         return_value=None)
     install_image = InstallImageBuilder(xml_state, 'root_dir',
                                         'target_dir', mock.Mock())
     assert install_image.arch == 'ix86'
Esempio n. 5
0
    def setup(self, mock_machine):
        boot_names_type = namedtuple('boot_names_type',
                                     ['kernel_name', 'initrd_name'])
        mock_machine.return_value = 'x86_64'
        self.setup = mock.Mock()
        kiwi.builder.install.SystemSetup = mock.Mock(return_value=self.setup)
        self.firmware = mock.Mock()
        self.firmware.efi_mode = mock.Mock(return_value='uefi')
        kiwi.builder.install.FirmWare = mock.Mock(return_value=self.firmware)
        self.squashed_image = mock.Mock()
        kiwi.builder.install.FileSystemSquashFs = mock.Mock(
            return_value=self.squashed_image)
        self.iso_image = mock.Mock()
        self.iso_image.create_on_file.return_value = 42
        kiwi.builder.install.FileSystemIsoFs = mock.Mock(
            return_value=self.iso_image)
        self.mbrid = mock.Mock()
        self.mbrid.get_id = mock.Mock(return_value='0xffffffff')
        kiwi.builder.install.SystemIdentifier = mock.Mock(
            return_value=self.mbrid)
        kiwi.builder.install.Path = mock.Mock()
        kiwi.builder.install.BootLoaderConfig.new = mock.Mock()
        self.checksum = mock.Mock()
        kiwi.builder.install.Checksum = mock.Mock(return_value=self.checksum)
        self.kernel = mock.Mock()
        self.kernel.get_kernel = mock.Mock()
        self.kernel.get_xen_hypervisor = mock.Mock()
        self.kernel.copy_kernel = mock.Mock()
        self.kernel.copy_xen_hypervisor = mock.Mock()
        kiwi.builder.install.Kernel = mock.Mock(return_value=self.kernel)
        self.xml_state = mock.Mock()
        self.xml_state.get_initrd_system = mock.Mock(return_value='kiwi')
        self.xml_state.xml_data.get_name = mock.Mock(
            return_value='result-image')
        self.xml_state.get_image_version = mock.Mock(return_value='1.2.3')
        self.xml_state.build_type.get_kernelcmdline = mock.Mock(
            return_value='custom_kernel_options')
        self.xml_state.get_oemconfig_oem_multipath_scan = mock.Mock(
            return_value=False)
        self.xml_state.get_installmedia_initrd_modules = mock.Mock(
            return_value=['module1', 'module2'])
        self.boot_image_task = mock.Mock()
        self.boot_image_task.boot_root_directory = 'initrd_dir'
        self.boot_image_task.initrd_filename = 'initrd'
        self.boot_image_task.get_boot_names = mock.Mock(
            return_value=boot_names_type(kernel_name='kernel_name',
                                         initrd_name='initrd-kernel_version'))

        self.install_image = InstallImageBuilder(self.xml_state, 'root_dir',
                                                 'target_dir',
                                                 self.boot_image_task)
Esempio n. 6
0
 def setup(self, mock_machine):
     mock_machine.return_value = 'x86_64'
     self.firmware = mock.Mock()
     self.firmware.efi_mode = mock.Mock(return_value='uefi')
     kiwi.builder.install.FirmWare = mock.Mock(return_value=self.firmware)
     self.bootloader = mock.Mock()
     kiwi.builder.install.BootLoaderConfig = mock.Mock(
         return_value=self.bootloader)
     self.squashed_image = mock.Mock()
     kiwi.builder.install.FileSystemSquashFs = mock.Mock(
         return_value=self.squashed_image)
     self.iso_image = mock.Mock()
     self.iso_image.create_on_file.return_value = 42
     kiwi.builder.install.FileSystemIsoFs = mock.Mock(
         return_value=self.iso_image)
     self.mbrid = mock.Mock()
     self.mbrid.get_id = mock.Mock(return_value='0xffffffff')
     kiwi.builder.install.SystemIdentifier = mock.Mock(
         return_value=self.mbrid)
     kiwi.builder.install.Path = mock.Mock()
     self.checksum = mock.Mock()
     kiwi.builder.install.Checksum = mock.Mock(return_value=self.checksum)
     self.kernel = mock.Mock()
     self.kernel.get_kernel = mock.Mock()
     self.kernel.get_xen_hypervisor = mock.Mock()
     self.kernel.copy_kernel = mock.Mock()
     self.kernel.copy_xen_hypervisor = mock.Mock()
     kiwi.builder.install.Kernel = mock.Mock(return_value=self.kernel)
     self.xml_state = mock.Mock()
     self.xml_state.xml_data.get_name = mock.Mock(
         return_value='result-image')
     self.xml_state.get_image_version = mock.Mock(return_value='1.2.3')
     self.xml_state.build_type.get_kernelcmdline = mock.Mock(
         return_value='custom_kernel_options')
     self.boot_image_task = mock.Mock()
     self.boot_image_task.boot_root_directory = 'initrd_dir'
     self.boot_image_task.initrd_filename = 'initrd'
     self.install_image = InstallImageBuilder(self.xml_state, 'root_dir',
                                              'target_dir',
                                              self.boot_image_task)
Esempio n. 7
0
    def create_install_media(self, result_instance: Result) -> Result:
        """
        Build an installation image. The installation image is a
        bootable hybrid ISO image which embeds the raw disk image
        and an image installer

        :param object result_instance: instance of :class:`Result`

        :return: updated result_instance with installation media

        :rtype: instance of :class:`Result`
        """
        if self.install_media:
            if self.initrd_system == 'dracut':
                boot_image = None
            else:
                boot_image = self.boot_image
            install_image = InstallImageBuilder(self.xml_state, self.root_dir,
                                                self.target_dir, boot_image,
                                                self.custom_args)

            if self.install_iso or self.install_stick:
                log.info('Creating hybrid ISO installation image')
                install_image.create_install_iso()
                result_instance.add(key='installation_image',
                                    filename=install_image.isoname,
                                    use_for_bundle=True,
                                    compress=False,
                                    shasum=True)

            if self.install_pxe:
                log.info('Creating PXE installation archive')
                install_image.create_install_pxe_archive()
                result_instance.add(key='installation_pxe_archive',
                                    filename=install_image.pxetarball,
                                    use_for_bundle=True,
                                    compress=False,
                                    shasum=True)

        return result_instance