diff --git a/CHANGES/+replicate-policy.feature b/CHANGES/+replicate-policy.feature new file mode 100644 index 000000000..eae74e7d4 --- /dev/null +++ b/CHANGES/+replicate-policy.feature @@ -0,0 +1 @@ +Added support for the replicate policy options added in pulpcore 3.73.0. diff --git a/CHANGES/+replicate-q-select.feature b/CHANGES/+replicate-q-select.feature new file mode 100644 index 000000000..deae610f1 --- /dev/null +++ b/CHANGES/+replicate-q-select.feature @@ -0,0 +1 @@ +Added support for the replicate q-select option added in pulpcore 3.62.0. diff --git a/pulpcore/cli/core/upstream_pulp.py b/pulpcore/cli/core/upstream_pulp.py index c0d53df1f..70a80ac96 100644 --- a/pulpcore/cli/core/upstream_pulp.py +++ b/pulpcore/cli/core/upstream_pulp.py @@ -1,5 +1,5 @@ import click -from pulp_glue.common.context import PulpEntityContext +from pulp_glue.common.context import PluginRequirement, PulpEntityContext from pulp_glue.common.i18n import get_translation from pulp_glue.core.context import PulpUpstreamPulpContext @@ -12,6 +12,7 @@ pass_entity_context, pass_pulp_context, pulp_group, + pulp_option, resource_lookup_option, show_command, update_command, @@ -52,7 +53,16 @@ help=_("a PEM encode private key or @file containing same"), callback=load_string_callback, ), - click.option("--pulp-label-select"), + pulp_option( + "--pulp-label-select", + needs_plugins=[PluginRequirement("core", specifier="<3.62.0")], + ), + pulp_option("--q-select", needs_plugins=[PluginRequirement("core", specifier=">=3.62.0")]), + pulp_option( + "--policy", + type=click.Choice(["all", "labeled", "nodelete"], case_sensitive=False), + needs_plugins=[PluginRequirement("core", specifier=">=3.73.0")], + ), ] create_options = [ click.option("--name", required=True, help=_("Name of the upstream pulp")), diff --git a/tests/scripts/pulpcore/test_upstream_pulp.sh b/tests/scripts/pulpcore/test_upstream_pulp.sh index b923f7655..5082d101c 100755 --- a/tests/scripts/pulpcore/test_upstream_pulp.sh +++ b/tests/scripts/pulpcore/test_upstream_pulp.sh @@ -14,8 +14,20 @@ trap cleanup EXIT expect_succ pulp upstream-pulp create --name "cli_test_upstream_pulp" --base-url "$PULP_BASE_URL" --api-root "/123/" expect_succ pulp upstream-pulp show --upstream-pulp "cli_test_upstream_pulp" expect_succ pulp upstream-pulp list -# TODO: Add version check for this test -# expect_succ pulp upstream-pulp update --id "cli_test_upstream_pulp" --pulp-label-select "doesnotexist" + +if pulp debug has-plugin --name "core" --specifier "<=3.62.0" +then + expect_succ pulp upstream-pulp update --id "cli_test_upstream_pulp" --pulp-label-select "doesnotexist" +else + expect_succ pulp upstream-pulp update --id "cli_test_upstream_pulp" --q-select "pulp_label_select=doesnotexist" +fi + +if pulp debug has-plugin --name "core" --specifier ">=3.73.0" +then + expect_succ pulp upstream-pulp update --id "cli_test_upstream_pulp" --policy "nodelete" + expect_succ pulp upstream-pulp update --id "cli_test_upstream_pulp" --policy "labeled" + expect_fail pulp upstream-pulp update --id "cli_test_upstream_pulp" --policy "not_a_policy" +fi # Without credentials and a wrong API root, there is not much we can do... # Also this is a real dangerous command, deleting all existing repositories.