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' )
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
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'
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'
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)
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)
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