Example #1
0
 def test_get_servicename_image(self):
     sys.argv = [
         sys.argv[0], 'image', 'resize', '--target-dir', 'directory',
         '--size', '20g'
     ]
     cli = Cli()
     assert cli.get_servicename() == 'image'
Example #2
0
 def test_get_command_args_not_loaded(self):
     sys.argv = [
         sys.argv[0], 'system', 'command-not-implemented'
     ]
     cli = Cli()
     with raises(KiwiCommandNotLoaded):
         cli.get_command_args()
Example #3
0
 def test_get_servicename_compat_as_service(self):
     sys.argv = [
         sys.argv[0], 'compat', '--build', 'description', '--type', 'oem',
         '-d', 'destination'
     ]
     cli = Cli()
     assert cli.get_servicename() == 'compat'
Example #4
0
 def setup(self):
     self.help_global_args = {
         'help': False,
         '--compat': False,
         '--type': None,
         'system': True,
         '-h': False,
         '--logfile': None,
         '<legacy_args>': [],
         '--version': False,
         '--debug': False,
         'result': False,
         '--profile': [],
         '--help': False
     }
     self.command_args = {
         '--add-repo': [],
         '--allow-existing-root': False,
         '--description': 'description',
         '--help': False,
         '--obs-repo-internal': False,
         '--root': 'directory',
         '--set-repo': None,
         '-h': False,
         'help': False,
         'prepare': True,
         'system': True
     }
     sys.argv = [
         sys.argv[0], 'system', 'prepare', '--description', 'description',
         '--root', 'directory'
     ]
     self.cli = Cli()
     self.loaded_command = self.cli.load_command()
Example #5
0
 def test_get_servicename_system(self):
     sys.argv = [
         sys.argv[0], 'system', 'prepare', '--description', 'description',
         '--root', 'directory'
     ]
     cli = Cli()
     assert cli.get_servicename() == 'system'
Example #6
0
    def __init__(self, should_perform_task_setup=True):
        from ..logger import log

        self.cli = Cli()

        # initialize runtime checker
        self.runtime_checker = None

        # help requested
        self.cli.show_and_exit_on_help_request()

        # load/import task module
        self.task = self.cli.load_command()

        # get command specific args
        self.command_args = self.cli.get_command_args()

        # get global args
        self.global_args = self.cli.get_global_args()

        if should_perform_task_setup:
            # set log level
            if self.global_args['--debug']:
                log.setLogLevel(logging.DEBUG)
            else:
                log.setLogLevel(logging.INFO)

            # set log file
            if self.global_args['--logfile']:
                log.set_logfile(self.global_args['--logfile'])

            if self.global_args['--color-output']:
                log.set_color_format()
Example #7
0
    def __init__(self, should_perform_task_setup=True):
        from ..logger import log

        self.cli = Cli()

        # initialize runtime checker
        self.runtime_checker = None

        # initialize runtime configuration
        self.runtime_config = RuntimeConfig()

        # help requested
        self.cli.show_and_exit_on_help_request()

        # load/import task module
        self.task = self.cli.load_command()

        # get command specific args
        self.command_args = self.cli.get_command_args()

        # get global args
        self.global_args = self.cli.get_global_args()

        # initialize generic runtime check dicts
        self.checks_before_command_args = {
            'check_minimal_required_preferences': [],
            'check_efi_mode_for_disk_overlay_correctly_setup': [],
            'check_boot_description_exists': [],
            'check_consistent_kernel_in_boot_and_system_image': [],
            'check_container_tool_chain_installed': [],
            'check_volume_setup_defines_multiple_fullsize_volumes': [],
            'check_volume_setup_has_no_root_definition': [],
            'check_volume_label_used_with_lvm': [],
            'check_xen_uniquely_setup_as_server_or_guest': [],
            'check_mediacheck_installed': [],
            'check_dracut_module_for_live_iso_in_package_list': [],
            'check_dracut_module_for_disk_overlay_in_package_list': [],
            'check_dracut_module_for_disk_oem_in_package_list': [],
            'check_dracut_module_for_oem_install_in_package_list': [],
            'check_architecture_supports_iso_firmware_setup': []
        }
        self.checks_after_command_args = {
            'check_repositories_configured': [],
            'check_image_include_repos_publicly_resolvable': []
        }

        if should_perform_task_setup:
            # set log level
            if self.global_args['--debug']:
                log.setLogLevel(logging.DEBUG)
            else:
                log.setLogLevel(logging.INFO)

            # set log file
            if self.global_args['--logfile']:
                log.set_logfile(self.global_args['--logfile'])

            if self.global_args['--color-output']:
                log.set_color_format()
Example #8
0
 def test_set_target_arch(self):
     sys.argv = [
         sys.argv[0], '--target-arch', 'artificial', 'system', 'build',
         '--description', 'description', '--target-dir', 'directory'
     ]
     cli = Cli()
     cli.get_global_args()
     assert Defaults.get_platform_name() == 'artificial'
Example #9
0
 def test_get_servicename_result(self):
     sys.argv = [
         sys.argv[0],
         'result', 'list',
         '--target-dir', 'directory'
     ]
     cli = Cli()
     assert cli.get_servicename() == 'result'
Example #10
0
 def test_get_global_args(self):
     self.cli.all_args['--config'] = 'config-file'
     sys.argv = [
         sys.argv[0], '--config', 'config-file', 'system', 'build',
         '--description', 'description', '--target-dir', 'directory'
     ]
     cli = Cli()
     assert cli.get_global_args() == self.expected_global_args
Example #11
0
 def test_load_command_compat_mode(self, mock_compat):
     sys.argv = [
         sys.argv[0], '--compat', '--', '--build', 'description', '--type',
         'oem', '-d', 'destination'
     ]
     cli = Cli()
     cli.load_command()
     mock_compat.assert_called_once_with(
         ['--build', 'description', '--type', 'oem', '-d', 'destination'])
Example #12
0
 def test_warning_on_use_of_legacy_disk_type(self):
     sys.argv = [
         sys.argv[0], '--type', 'vmx', 'system', 'build', '--description',
         'description', '--target-dir', 'directory'
     ]
     cli = Cli()
     with self._caplog.at_level(logging.WARNING):
         cli.get_global_args()
         assert 'vmx type is now a subset of oem, --type set to oem' in \
             self._caplog.text
Example #13
0
 def setup(self):
     self.expected_global_args = {
         'help': False,
         '--compat': False,
         'compat': False,
         '--type': None,
         'image': False,
         'system': True,
         '-h': False,
         '--logfile': None,
         '--color-output': False,
         '<legacy_args>': [],
         '--version': False,
         '--debug': False,
         '--debug-run-scripts-in-screen': False,
         'result': False,
         '--profile': [],
         '--shared-cache-dir': '/var/cache/kiwi',
         '--temp-dir': '/var/tmp',
         '--target-arch': None,
         '--help': False,
         '--config': 'config-file',
         '--kiwi-file': None
     }
     self.command_args = {
         '--add-repo': [],
         '--allow-existing-root': False,
         '--description': 'description',
         '--help': False,
         '--ignore-repos': False,
         '--ignore-repos-used-for-build': False,
         '--clear-cache': False,
         '--root': 'directory',
         '--set-repo': None,
         '--add-package': [],
         '--add-bootstrap-package': [],
         '--delete-package': [],
         '--set-container-derived-from': None,
         '--set-container-tag': None,
         '--add-container-label': [],
         '--signing-key': [],
         '-h': False,
         'help': False,
         'prepare': True,
         'system': True
     }
     self.cli = Cli()
     self.loaded_command = self.cli.load_command()
Example #14
0
 def setup(self):
     self.help_global_args = {
         'help': False,
         '--compat': False,
         '--type': None,
         'image': False,
         'system': True,
         '-h': False,
         '--logfile': None,
         '--color-output': False,
         '<legacy_args>': [],
         '--version': False,
         '--debug': False,
         'result': False,
         '--profile': [],
         '--shared-cache-dir': '/var/cache/kiwi',
         '--help': False
     }
     self.command_args = {
         '--add-repo': [],
         '--allow-existing-root': False,
         '--description': 'description',
         '--help': False,
         '--ignore-repos': False,
         '--clear-cache': False,
         '--obs-repo-internal': False,
         '--root': 'directory',
         '--set-repo': None,
         '--add-package': [],
         '--delete-package': [],
         '--set-container-derived-from': None,
         '--set-container-tag': None,
         '--signing-key': [],
         '-h': False,
         'help': False,
         'prepare': True,
         'system': True
     }
     self.cli = Cli()
     self.loaded_command = self.cli.load_command()
Example #15
0
    def __init__(self, reread=False):
        global RUNTIME_CONFIG

        if not RUNTIME_CONFIG or reread:
            cli = Cli()
            config_file = None
            custom_config_file = cli.get_global_args().get('--config')

            if custom_config_file:
                config_file = custom_config_file
                if not os.path.isfile(config_file):
                    raise KiwiRuntimeConfigFileError(
                        f'Custom config file {config_file!r} not found')
            elif self._home_path():
                config_file = os.sep.join(
                    [self._home_path(), '.config', 'kiwi', 'config.yml'])
            if not config_file or not os.path.exists(config_file):
                config_file = '/etc/kiwi.yml'
            if os.path.exists(config_file):
                log.info(f'Reading runtime config file: {config_file!r}')
                with open(config_file, 'r') as config:
                    RUNTIME_CONFIG = yaml.safe_load(config)
Example #16
0
 def test_get_servicename_system(self):
     cli = Cli()
     assert cli.get_servicename() == 'system'
Example #17
0
    def __init__(self, should_perform_task_setup: bool = True) -> None:
        self.cli = Cli()

        # initialize runtime checker
        self.runtime_checker: Optional[RuntimeChecker] = None

        # help requested
        self.cli.show_and_exit_on_help_request()

        # load/import task module
        self.task = self.cli.load_command()

        # get command specific args
        self.command_args = self.cli.get_command_args()

        # get global args
        self.global_args = self.cli.get_global_args()

        # initialize runtime configuration
        self.runtime_config = RuntimeConfig()

        # initialize generic runtime check dicts
        self.checks_before_command_args: Dict[str, List[str]] = {
            'check_image_version_provided': [],
            'check_efi_mode_for_disk_overlay_correctly_setup': [],
            'check_initrd_selection_required': [],
            'check_boot_description_exists': [],
            'check_consistent_kernel_in_boot_and_system_image': [],
            'check_container_tool_chain_installed': [],
            'check_volume_setup_defines_reserved_labels': [],
            'check_volume_setup_defines_multiple_fullsize_volumes': [],
            'check_volume_setup_has_no_root_definition': [],
            'check_volume_label_used_with_lvm': [],
            'check_swap_name_used_with_lvm': [],
            'check_xen_uniquely_setup_as_server_or_guest': [],
            'check_mediacheck_installed': [],
            'check_dracut_module_for_live_iso_in_package_list': [],
            'check_dracut_module_for_disk_overlay_in_package_list': [],
            'check_dracut_module_for_disk_oem_in_package_list': [],
            'check_dracut_module_for_oem_install_in_package_list': [],
            'check_architecture_supports_iso_firmware_setup': [],
            'check_appx_naming_conventions_valid': [],
            'check_syslinux_installed_if_isolinux_is_used': [],
            'check_image_type_unique': [],
            'check_include_references_unresolvable': [],
            'check_luksformat_options_valid': [],
            'check_partuuid_persistency_type_used_with_mbr': []
        }
        self.checks_after_command_args: Dict[str, List[str]] = {
            'check_repositories_configured': [],
            'check_image_include_repos_publicly_resolvable': []
        }

        if should_perform_task_setup:
            # set log level
            if self.global_args['--debug']:
                log.setLogLevel(logging.DEBUG)
            else:
                log.setLogLevel(logging.INFO)

            # set log flags
            if self.global_args['--debug-run-scripts-in-screen']:
                log.setLogFlag('run-scripts-in-screen')

            # set log file
            if self.global_args['--logfile']:
                log.set_logfile(self.global_args['--logfile'])

            if self.global_args['--color-output']:
                log.set_color_format()
Example #18
0
 def test_get_command_args_not_loaded(self):
     sys.argv = [sys.argv[0], 'system', 'command-not-implemented']
     cli = Cli()
     cli.get_command_args()