Ejemplo n.º 1
0
 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'
     )
Ejemplo n.º 2
0
    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()
Ejemplo n.º 3
0
 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
         )
Ejemplo n.º 4
0
 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'
     )
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
 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()
Ejemplo n.º 7
0
 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'
     )
Ejemplo n.º 8
0
    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 !')
Ejemplo n.º 9
0
 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')
Ejemplo n.º 10
0
 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')
Ejemplo n.º 11
0
 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')
Ejemplo n.º 12
0
 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()