Skip to content

Commit

Permalink
Add support of contains/startswith to RPM content
Browse files Browse the repository at this point in the history
  • Loading branch information
stanleyz committed May 22, 2024
1 parent fdad966 commit 784ea5e
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 0 deletions.
7 changes: 7 additions & 0 deletions CHANGES/687.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Added the below filters to `pulp rpm content list`:
- --arch-contains
- --arch-startswith
- --name-contains
- --name-startswith
- --release-contains
- --release-startswith
12 changes: 12 additions & 0 deletions pulp-glue/pulp_glue/rpm/context.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,18 @@ def preprocess_entity(self, body: EntityDefinition, partial: bool = False) -> En
self.pulp_ctx.needs_plugin(PluginRequirement("rpm", specifier=">=3.18.0"))
else:
PulpException(_("--relative-path must be provided"))
contains_startswith = [
"name__contains",
"name__startswith",
"release__contains",
"release__startswith",
"arch__contains",
"arch__startswith",
]
if any(k in body for k in contains_startswith):
self.pulp_ctx.needs_plugin(
PluginRequirement("rpm", specifier=">=3.20.0", feature=_("substring filters"))
)
return body


Expand Down
30 changes: 30 additions & 0 deletions pulpcore/cli/rpm/content.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,10 +108,20 @@ def content() -> None:
exclude_field_option,
pulp_option("--repository-version"),
pulp_option("--arch", allowed_with_contexts=(PulpRpmPackageContext,)),
pulp_option(
"--arch-contains",
"arch__contains",
allowed_with_contexts=(PulpRpmPackageContext,),
),
pulp_option(
"--arch-in", "arch__in", multiple=True, allowed_with_contexts=(PulpRpmPackageContext,)
),
pulp_option("--arch-ne", "arch__ne", allowed_with_contexts=(PulpRpmPackageContext,)),
pulp_option(
"--arch-startswith",
"arch__startswith",
allowed_with_contexts=(PulpRpmPackageContext,),
),
pulp_option("--epoch", allowed_with_contexts=(PulpRpmPackageContext,)),
pulp_option(
"--epoch-in", "epoch__in", multiple=True, allowed_with_contexts=(PulpRpmPackageContext,)
Expand All @@ -129,6 +139,11 @@ def content() -> None:
allowed_with_contexts=(PulpRpmModulemdDefaultsContext,),
),
pulp_option("--name", allowed_with_contexts=(PulpRpmPackageContext, PulpRpmModulemdContext)),
pulp_option(
"--name-contains",
"name__contains",
allowed_with_contexts=(PulpRpmPackageContext, PulpRpmModulemdContext),
),
pulp_option(
"--name-in",
"name__in",
Expand All @@ -140,6 +155,11 @@ def content() -> None:
"name__ne",
allowed_with_contexts=(PulpRpmPackageContext, PulpRpmModulemdContext),
),
pulp_option(
"--name-startswith",
"name__startswith",
allowed_with_contexts=(PulpRpmPackageContext, PulpRpmModulemdContext),
),
pulp_option("--package-href", allowed_with_contexts=(PulpRpmPackageContext,)),
pulp_option("--pkgId", allowed_with_contexts=(PulpRpmPackageContext,)),
pulp_option(
Expand All @@ -149,10 +169,20 @@ def content() -> None:
allowed_with_contexts=(PulpRpmPackageContext,),
),
pulp_option("--release", allowed_with_contexts=(PulpRpmPackageContext,)),
pulp_option(
"--release-contains",
"release__contains",
allowed_with_contexts=(PulpRpmPackageContext,),
),
pulp_option(
"--release-in", "release__in", multiple=True, allowed_with_contexts=(PulpRpmPackageContext,)
),
pulp_option("--release-ne", "release__ne", allowed_with_contexts=(PulpRpmPackageContext,)),
pulp_option(
"--release-startswith",
"release__startswith",
allowed_with_contexts=(PulpRpmPackageContext,),
),
pulp_option("--severity", allowed_with_contexts=(PulpRpmAdvisoryContext,)),
pulp_option(
"--severity-in",
Expand Down
2 changes: 2 additions & 0 deletions tests/scripts/pulp_rpm/test_content.sh
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,8 @@ do
fi
done

expect_succ pulp rpm content list --name-contains "${RPM_NAME}"
expect_succ pulp rpm content list --name-startswith "${RPM_NAME}"
expect_succ pulp rpm content list --name-in "${RPM_NAME}" --name-in "${RPM2_NAME}"
pulp rpm content list
expect_succ test "$(echo "${OUTPUT}" | jq -r 'length')" -eq 2
Expand Down

0 comments on commit 784ea5e

Please sign in to comment.