Skip to content

Commit

Permalink
Add support of contains/startswith to RPM content
Browse files Browse the repository at this point in the history
fixes #687
  • Loading branch information
stanleyz committed May 17, 2024
1 parent fdad966 commit 055e113
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 1 deletion.
3 changes: 3 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,9 @@ 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"))
return body


Expand Down
35 changes: 34 additions & 1 deletion pulpcore/cli/rpm/content.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
import typing as t

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 PulpArtifactContext
from pulp_glue.rpm.context import (
Expand Down Expand Up @@ -108,10 +111,18 @@ 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,),
needs_plugins=[PluginRequirement("rpm", specifier=">=3.20.0")],
),
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,),
needs_plugins=[PluginRequirement("rpm", specifier=">=3.20.0")],
),
pulp_option("--epoch", allowed_with_contexts=(PulpRpmPackageContext,)),
pulp_option(
"--epoch-in", "epoch__in", multiple=True, allowed_with_contexts=(PulpRpmPackageContext,)
Expand All @@ -129,6 +140,12 @@ 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),
needs_plugins=[PluginRequirement("rpm", specifier=">=3.20.0")],
),
pulp_option(
"--name-in",
"name__in",
Expand All @@ -140,6 +157,12 @@ def content() -> None:
"name__ne",
allowed_with_contexts=(PulpRpmPackageContext, PulpRpmModulemdContext),
),
pulp_option(
"--name-startswith",
"name__startswith",
allowed_with_contexts=(PulpRpmPackageContext, PulpRpmModulemdContext),
needs_plugins=[PluginRequirement("rpm", specifier=">=3.20.0")],
),
pulp_option("--package-href", allowed_with_contexts=(PulpRpmPackageContext,)),
pulp_option("--pkgId", allowed_with_contexts=(PulpRpmPackageContext,)),
pulp_option(
Expand All @@ -149,10 +172,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,),
needs_plugins=[PluginRequirement("rpm", specifier=">=3.20.0")],
),
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,),
needs_plugins=[PluginRequirement("rpm", specifier=">=3.20.0")],
),
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 @@ -126,6 +126,8 @@ do
done

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

Expand Down

0 comments on commit 055e113

Please sign in to comment.