From 685abd8dddc31049f7f6ff7c526160a9d4814135 Mon Sep 17 00:00:00 2001 From: Matthias Dellweg Date: Fri, 2 Jan 2026 18:44:48 +0100 Subject: [PATCH] Stop passing base version when not provided fixes #1290 --- CHANGES/1290.bugfix | 1 + pulp_cli/generic.py | 48 +++++++++++++++++++++++++-------------------- 2 files changed, 28 insertions(+), 21 deletions(-) create mode 100644 CHANGES/1290.bugfix diff --git a/CHANGES/1290.bugfix b/CHANGES/1290.bugfix new file mode 100644 index 00000000..98c779ce --- /dev/null +++ b/CHANGES/1290.bugfix @@ -0,0 +1 @@ +Stop passing latest repository version on modify commands if no version number was provided. diff --git a/pulp_cli/generic.py b/pulp_cli/generic.py index 2e8806cc..b889e987 100644 --- a/pulp_cli/generic.py +++ b/pulp_cli/generic.py @@ -1731,14 +1731,16 @@ def content_add( content_ctx: PulpContentContext, repo_ctx: PulpRepositoryContext, /, - base_repository: PulpRepositoryContext, - base_version: int, + base_repository: PulpRepositoryContext | None, + base_version: int | None, ) -> None: - if base_repository is None: - base_repository = repo_ctx - base_version_ctx = base_repository.get_version_context( - -1 if base_version is None else base_version - ) + base_version_ctx: PulpRepositoryVersionContext | None = None + if base_version is not None: + if base_repository is None: + base_repository = repo_ctx + base_version_ctx = base_repository.get_version_context(base_version) + elif base_repository is not None: + base_version_ctx = base_repository.get_version_context(-1) repo_ctx.modify(add_content=[content_ctx.pulp_href], base_version=base_version_ctx) @pulp_command("remove") @@ -1752,15 +1754,17 @@ def content_remove( content_ctx: PulpContentContext, repo_ctx: PulpRepositoryContext, /, - base_repository: PulpRepositoryContext, - base_version: int, + base_repository: PulpRepositoryContext | None, + base_version: int | None, all: bool, ) -> None: - if base_repository is None: - base_repository = repo_ctx - base_version_ctx = base_repository.get_version_context( - -1 if base_version is None else base_version - ) + base_version_ctx: PulpRepositoryVersionContext | None = None + if base_version is not None: + if base_repository is None: + base_repository = repo_ctx + base_version_ctx = base_repository.get_version_context(base_version) + elif base_repository is not None: + base_version_ctx = base_repository.get_version_context(-1) remove_content = ["*" if all else content_ctx.pulp_href] repo_ctx.modify(remove_content=remove_content, base_version=base_version_ctx) @@ -1771,16 +1775,18 @@ def content_remove( @pass_repository_context def content_modify( repo_ctx: PulpRepositoryContext, - base_repository: PulpRepositoryContext, - base_version: int, + base_repository: PulpRepositoryContext | None, + base_version: int | None, add_content: list[PulpContentContext] | None, remove_content: list[PulpContentContext] | None, ) -> None: - if base_repository is None: - base_repository = repo_ctx - base_version_ctx = base_repository.get_version_context( - -1 if base_version is None else base_version - ) + base_version_ctx: PulpRepositoryVersionContext | None = None + if base_version is not None: + if base_repository is None: + base_repository = repo_ctx + base_version_ctx = base_repository.get_version_context(base_version) + elif base_repository is not None: + base_version_ctx = base_repository.get_version_context(-1) ac = [unit.pulp_href for unit in add_content] if add_content else None rc = [unit.pulp_href for unit in remove_content] if remove_content else None repo_ctx.modify(add_content=ac, remove_content=rc, base_version=base_version_ctx)