def test_create_on_loop( self, mock_machine, mock_fs_setup, mock_fs, mock_loop ): mock_machine.return_value = 'x86_64' mock_fs_setup.return_value = self.fs_setup mock_fs.return_value = self.filesystem mock_loop.return_value = self.loop_provider fs = FileSystemBuilder( self.xml_state, 'target_dir', 'root_dir' ) fs.create() mock_loop.assert_called_once_with( 'target_dir/myimage.x86_64-1.2.3.ext3', 42, 4096 ) self.loop_provider.create.assert_called_once_with() mock_fs.assert_called_once_with( 'ext3', self.loop_provider, 'root_dir', {'mount_options': 'async'} ) self.filesystem.create_on_device.assert_called_once_with(None) self.filesystem.sync_data.assert_called_once_with( ['image', '.profile', '.kconfig', 'var/cache/kiwi'] ) self.setup.export_rpm_package_verification.assert_called_once_with( 'target_dir' ) self.setup.export_rpm_package_list.assert_called_once_with( 'target_dir' )
def __init__(self, xml_state, target_dir, root_dir, custom_args=None): self.target_dir = target_dir self.compressed = xml_state.build_type.get_compressed() self.xen_server = xml_state.is_xen_server() self.filesystem = FileSystemBuilder(xml_state, target_dir, root_dir + '/') self.system_setup = SystemSetup(xml_state=xml_state, root_dir=root_dir) self.boot_signing_keys = custom_args['signing_keys'] if custom_args \ and 'signing_keys' in custom_args else None self.xz_options = custom_args['xz_options'] if custom_args \ and 'xz_options' in custom_args else None self.boot_image_task = BootImage(xml_state, target_dir, signing_keys=self.boot_signing_keys) self.image_name = ''.join([ target_dir, '/', xml_state.xml_data.get_name(), '.' + platform.machine(), '-' + xml_state.get_image_version() ]) self.archive_name = ''.join([self.image_name, '.tar.xz']) self.checksum_name = ''.join([self.image_name, '.md5']) self.kernel_filename = None self.hypervisor_filename = None self.result = Result(xml_state) self.runtime_config = RuntimeConfig()
def __new__(self, xml_state, target_dir, root_dir, custom_args=None): requested_image_type = xml_state.get_build_type_name() if requested_image_type in Defaults.get_filesystem_image_types(): return FileSystemBuilder( xml_state, target_dir, root_dir ) elif requested_image_type in Defaults.get_disk_image_types(): return DiskBuilder( xml_state, target_dir, root_dir, custom_args ) elif requested_image_type in Defaults.get_live_image_types(): return LiveImageBuilder( xml_state, target_dir, root_dir, custom_args ) elif requested_image_type in Defaults.get_kis_image_types(): return KisBuilder( xml_state, target_dir, root_dir, custom_args ) elif requested_image_type in Defaults.get_archive_image_types(): return ArchiveBuilder( xml_state, target_dir, root_dir, custom_args ) elif requested_image_type in Defaults.get_container_image_types(): return ContainerBuilder( xml_state, target_dir, root_dir, custom_args ) else: raise KiwiRequestedTypeError( 'requested image type %s not supported' % requested_image_type )
def test_create_on_file( self, mock_machine, mock_provider, mock_fs ): mock_machine.return_value = 'x86_64' provider = mock.Mock() mock_provider.return_value = provider mock_fs.return_value = self.filesystem self.xml_state.get_build_type_name = mock.Mock( return_value='squashfs' ) fs = FileSystemBuilder( self.xml_state, 'target_dir', 'root_dir' ) fs.create() mock_fs.assert_called_once_with( 'squashfs', provider, 'root_dir', {'mount_options': 'async'} ) self.filesystem.create_on_file.assert_called_once_with( 'target_dir/myimage.x86_64-1.2.3.squashfs', None ) self.setup.export_rpm_package_verification.assert_called_once_with( 'target_dir' ) self.setup.export_rpm_package_list.assert_called_once_with( 'target_dir' )
def __init__(self, xml_state, target_dir, root_dir, custom_args=None): self.target_dir = target_dir self.compressed = xml_state.build_type.get_compressed() self.machine = xml_state.get_build_type_machine_section() self.pxedeploy = xml_state.get_build_type_pxedeploy_section() self.filesystem = FileSystemBuilder( xml_state, target_dir, root_dir + '/' ) self.system_setup = SystemSetup( xml_state=xml_state, root_dir=root_dir ) boot_signing_keys = None if custom_args and 'signing_keys' in custom_args: boot_signing_keys = custom_args['signing_keys'] self.boot_image_task = BootImage( xml_state, target_dir, signing_keys=boot_signing_keys ) self.image_name = ''.join( [ target_dir, '/', xml_state.xml_data.get_name(), '.' + platform.machine(), '-' + xml_state.get_image_version() ] ) self.archive_name = ''.join([self.image_name, '.tar.xz']) self.kernel_filename = None self.hypervisor_filename = None self.result = Result(xml_state)
def test_create_unknown_filesystem(self): self.xml_state.get_build_type_name = mock.Mock( return_value='super-fs' ) fs = FileSystemBuilder( self.xml_state, 'target_dir', 'root_dir' ) fs.create()
def test_no_filesystem_configured(self): self.xml_state.get_build_type_name = mock.Mock( return_value='pxe' ) self.xml_state.build_type.get_filesystem = mock.Mock( return_value=None ) FileSystemBuilder( self.xml_state, 'target_dir', 'root_dir' )
def __init__( self, xml_state: XMLState, target_dir: str, root_dir: str, custom_args: Dict = None ): self.target_dir = target_dir self.compressed = xml_state.build_type.get_compressed() self.xen_server = xml_state.is_xen_server() self.custom_cmdline = xml_state.build_type.get_kernelcmdline() self.filesystem = FileSystemBuilder( xml_state, target_dir, root_dir + '/' ) if xml_state.build_type.get_filesystem() else None self.system_setup = SystemSetup( xml_state=xml_state, root_dir=root_dir ) self.initrd_system = xml_state.get_initrd_system() self.boot_signing_keys = custom_args['signing_keys'] if custom_args \ and 'signing_keys' in custom_args else None self.xz_options = custom_args['xz_options'] if custom_args \ and 'xz_options' in custom_args else None self.boot_image_task = BootImage.new( xml_state, target_dir, root_dir, signing_keys=self.boot_signing_keys ) self.bundle_format = xml_state.get_build_type_bundle_format() self.image_name = ''.join( [ target_dir, '/', xml_state.xml_data.get_name(), '.' + Defaults.get_platform_name(), '-' + xml_state.get_image_version() ] ) self.image: str = '' self.append_file = ''.join([self.image_name, '.append']) self.archive_name = ''.join([self.image_name, '.tar']) self.checksum_name = ''.join([self.image_name, '.md5']) self.kernel_filename: str = '' self.hypervisor_filename: str = '' self.result = Result(xml_state) self.runtime_config = RuntimeConfig() if not self.boot_image_task.has_initrd_support(): log.warning('Building without initrd support !')
def test_create_on_file(self, mock_machine, mock_provider, mock_fs): mock_machine.return_value = 'x86_64' provider = Mock() mock_provider.return_value = provider mock_fs.return_value = self.filesystem self.xml_state.get_build_type_name = Mock(return_value='squashfs') fs = FileSystemBuilder(self.xml_state, 'target_dir', 'root_dir') fs.create() mock_fs.assert_called_once_with('squashfs', provider, 'root_dir', { 'mount_options': ['async'], 'create_options': ['-O', 'option'] }) self.filesystem.create_on_file.assert_called_once_with( 'target_dir/myimage.x86_64-1.2.3.squashfs', None, ['image', '.profile', '.kconfig', '.buildenv', 'var/cache/kiwi']) self.setup.export_package_verification.assert_called_once_with( 'target_dir') self.setup.export_package_list.assert_called_once_with('target_dir')
def test_create_on_loop(self, mock_fs_setup, mock_fs, mock_loop): Defaults.set_platform_name('x86_64') mock_fs_setup.return_value = self.fs_setup mock_fs.return_value = self.filesystem mock_loop.return_value = self.loop_provider fs = FileSystemBuilder(self.xml_state, 'target_dir', 'root_dir') fs.create() mock_loop.assert_called_once_with( 'target_dir/myimage.x86_64-1.2.3.ext3', 42, 4096) self.loop_provider.create.assert_called_once_with() mock_fs.assert_called_once_with('ext3', self.loop_provider, 'root_dir/', { 'mount_options': ['async'], 'create_options': ['-O', 'option'] }) self.filesystem.create_on_device.assert_called_once_with(None) self.filesystem.sync_data.assert_called_once_with([ 'image', '.profile', '.kconfig', 'run/*', 'tmp/*', '.buildenv', 'var/cache/kiwi' ]) self.setup.export_package_verification.assert_called_once_with( 'target_dir') self.setup.export_package_list.assert_called_once_with('target_dir')
def test_no_filesystem_configured(self): self.xml_state.get_build_type_name = Mock(return_value='pxe') self.xml_state.build_type.get_filesystem = Mock(return_value=None) with raises(KiwiFileSystemSetupError): FileSystemBuilder(self.xml_state, 'target_dir', 'root_dir')
def test_create_unknown_filesystem(self): self.xml_state.get_build_type_name = Mock(return_value='super-fs') fs = FileSystemBuilder(self.xml_state, 'target_dir', 'root_dir') with raises(KiwiFileSystemSetupError): fs.create()