From 46ee2a39ab19a818587f04fef8ec6d75f3050596 Mon Sep 17 00:00:00 2001 From: Athos Ribeiro Date: Feb 15 2020 15:25:53 +0000 Subject: Handle new cachito dependency replacement argument OSBS supports integration with cachito [1]. One of cachito features is to allow a project's dependencies to be replaced by a different version of the same project or by an entirely different project (to handle patched forks). This patch allows users to pass these cachito dependency replacement options to container builds. [1] https://osbs.readthedocs.io/en/latest/admins.html#cachito-integration Signed-off-by: Athos Ribeiro --- diff --git a/pyrpkg/__init__.py b/pyrpkg/__init__.py index 7236563..92e4693 100644 --- a/pyrpkg/__init__.py +++ b/pyrpkg/__init__.py @@ -3100,7 +3100,8 @@ class Commands(object): task_opts = {} for key in ('scratch', 'name', 'version', 'release', 'isolated', 'koji_parent_build', 'yum_repourls', 'git_branch', - 'signing_intent', 'compose_ids', 'skip_build'): + 'signing_intent', 'compose_ids', 'skip_build', + 'dependency_replacements'): if key in opts: task_opts[key] = opts[key] diff --git a/pyrpkg/cli.py b/pyrpkg/cli.py index 2ee0243..f416914 100644 --- a/pyrpkg/cli.py +++ b/pyrpkg/cli.py @@ -1616,6 +1616,11 @@ class cliClient(object): metavar="URL", help='URLs of yum repo files', nargs='+') + self.container_build_parser.add_argument( + '--replace-dependency', + metavar="PKG_MANAGER:NAME:VERSION[:NEW_NAME]", + help='Cachito dependency replacement', + nargs='+') self.container_build_parser.set_defaults(command=self.container_build) @@ -2033,6 +2038,7 @@ class cliClient(object): " --repo-url or --signing-intent") opts.update({ "yum_repourls": self.args.repo_url, + "dependency_replacements": self.args.replace_dependency, "compose_ids": self.args.compose_ids, "signing_intent": self.args.signing_intent, }) diff --git a/tests/test_cli.py b/tests/test_cli.py index d80243d..aa69379 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -227,6 +227,7 @@ class TestContainerBuildWithKoji(CliTestCase): 'isolated': False, 'koji_parent_build': None, 'yum_repourls': None, + 'dependency_replacements': None, 'git_branch': 'eng-rhel-7', 'arches': None, 'signing_intent': None, @@ -259,6 +260,7 @@ class TestContainerBuildWithKoji(CliTestCase): 'isolated': False, 'koji_parent_build': None, 'yum_repourls': None, + 'dependency_replacements': None, 'git_branch': 'eng-rhel-7', 'arches': None, 'signing_intent': None, @@ -290,6 +292,7 @@ class TestContainerBuildWithKoji(CliTestCase): 'isolated': True, 'koji_parent_build': None, 'yum_repourls': None, + 'dependency_replacements': None, 'git_branch': 'eng-rhel-7', 'arches': None, 'signing_intent': None, @@ -331,6 +334,7 @@ class TestContainerBuildWithKoji(CliTestCase): 'isolated': False, 'koji_parent_build': None, 'yum_repourls': None, + 'dependency_replacements': None, 'git_branch': 'eng-rhel-7', 'arches': None, 'signing_intent': None,