Skip to content

Commit

Permalink
Merge pull request #155 from chtaylo2/develop
Browse files Browse the repository at this point in the history
ISSUE-154 - Add retain_package_versions to rpm_repository.py and associated tests
  • Loading branch information
mdellweg authored Apr 5, 2024
2 parents 30b9ed0 + 298b7fc commit 08eba4e
Show file tree
Hide file tree
Showing 27 changed files with 4,077 additions and 2,822 deletions.
1 change: 1 addition & 0 deletions galaxy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ authors:
- "Christian Loos <[email protected]>"
- "Kevin P. Fleming <[email protected]>"
- "Alessandro Taufer <[email protected]>"
- "Chris Taylor <[email protected]>"
version: "0.0.16-dev"
license_file: LICENSE
readme: README.md
Expand Down
9 changes: 8 additions & 1 deletion plugins/modules/rpm_repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,11 @@
- A JSON document or data structure describing a config.repo file
type: raw
version_added: "0.0.16"
retain_package_versions:
description:
- Max number of latest versions of each package to keep (optional)
type: int
version_added: "0.0.16"
extends_documentation_fragment:
- pulp.squeezer.pulp
- pulp.squeezer.pulp.entity_state
Expand Down Expand Up @@ -69,6 +74,7 @@
description: A brand new repository with a description
autopublish: true
remote: existing_remote
retain_package_versions: 3
repo_config:
gpgcheck: 1
state: present
Expand Down Expand Up @@ -102,7 +108,7 @@
PulpRpmRepository,
)

DESIRED_KEYS = {"autopublish", "remote", "repo_config"}
DESIRED_KEYS = {"autopublish", "remote", "repo_config", "retain_package_versions"}


def main():
Expand All @@ -113,6 +119,7 @@ def main():
autopublish=dict(type="bool"),
remote=dict(),
repo_config=dict(type="raw"),
retain_package_versions=dict(type="int"),
),
required_if=[("state", "present", ["name"]), ("state", "absent", ["name"])],
) as module:
Expand Down
5,354 changes: 3,030 additions & 2,324 deletions tests/fixtures/rpm_repository-0.yml

Large diffs are not rendered by default.

28 changes: 14 additions & 14 deletions tests/fixtures/rpm_repository-1.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ interactions:
Host:
- localhost:8080
User-Agent:
- Python-urllib/3.10
- Python-urllib/3.9
method: GET
uri: http://pulp.example.org/pulp/api/v3/remotes/rpm/rpm/?limit=1&name=test_rpm_remote
response:
body:
string: '{"count":1,"next":null,"previous":null,"results":[{"pulp_href":"/pulp/api/v3/remotes/rpm/rpm/018e0f9d-04b5-7b0d-ac02-5287da03f5dd/","pulp_created":"2024-03-05T17:15:32.406058Z","name":"test_rpm_remote","url":"https://fixtures.pulpproject.org/rpm-signed/","ca_cert":null,"client_cert":null,"tls_validation":true,"proxy_url":null,"pulp_labels":{},"pulp_last_updated":"2024-03-05T17:15:32.406069Z","download_concurrency":null,"max_retries":null,"policy":"immediate","total_timeout":null,"connect_timeout":null,"sock_connect_timeout":null,"sock_read_timeout":null,"headers":null,"rate_limit":null,"hidden_fields":[{"name":"client_key","is_set":false},{"name":"proxy_username","is_set":false},{"name":"proxy_password","is_set":false},{"name":"username","is_set":false},{"name":"password","is_set":false}],"sles_auth_token":null}]}'
string: '{"count":1,"next":null,"previous":null,"results":[{"pulp_href":"/pulp/api/v3/remotes/rpm/rpm/018eaac8-0cd7-7085-8c47-cc7a8e54e61f/","pulp_created":"2024-04-04T20:23:41.016518Z","pulp_last_updated":"2024-04-04T20:23:41.016539Z","name":"test_rpm_remote","url":"https://fixtures.pulpproject.org/rpm-signed/","ca_cert":null,"client_cert":null,"tls_validation":true,"proxy_url":null,"pulp_labels":{},"download_concurrency":null,"max_retries":null,"policy":"immediate","total_timeout":null,"connect_timeout":null,"sock_connect_timeout":null,"sock_read_timeout":null,"headers":null,"rate_limit":null,"hidden_fields":[{"name":"client_key","is_set":false},{"name":"proxy_username","is_set":false},{"name":"proxy_password","is_set":false},{"name":"username","is_set":false},{"name":"password","is_set":false}],"sles_auth_token":null}]}'
headers:
Access-Control-Expose-Headers:
- Correlation-ID
Expand All @@ -29,11 +29,11 @@ interactions:
Content-Type:
- application/json
Correlation-ID:
- ece08571f0dc4a739f8097272f639a93
- 8cd179487da8444da39fb0f94ada5bae
Cross-Origin-Opener-Policy:
- same-origin
Date:
- Tue, 05 Mar 2024 17:15:36 GMT
- Thu, 04 Apr 2024 20:23:50 GMT
Referrer-Policy:
- same-origin
Server:
Expand All @@ -59,7 +59,7 @@ interactions:
Host:
- localhost:8080
User-Agent:
- Python-urllib/3.10
- Python-urllib/3.9
method: GET
uri: http://pulp.example.org/pulp/api/v3/repositories/rpm/rpm/?limit=1&name=test_rpm_repository
response:
Expand All @@ -77,11 +77,11 @@ interactions:
Content-Type:
- application/json
Correlation-ID:
- 7e690ff098a047e3b82d778f23d7aab6
- 09755bf03dd84afaaaa3f81cad8f50f4
Cross-Origin-Opener-Policy:
- same-origin
Date:
- Tue, 05 Mar 2024 17:15:36 GMT
- Thu, 04 Apr 2024 20:23:50 GMT
Referrer-Policy:
- same-origin
Server:
Expand All @@ -96,7 +96,7 @@ interactions:
code: 200
message: OK
- request:
body: '{"name": "test_rpm_repository", "remote": "/pulp/api/v3/remotes/rpm/rpm/018e0f9d-04b5-7b0d-ac02-5287da03f5dd/",
body: '{"name": "test_rpm_repository", "remote": "/pulp/api/v3/remotes/rpm/rpm/018eaac8-0cd7-7085-8c47-cc7a8e54e61f/",
"description": null}'
headers:
Accept:
Expand All @@ -110,12 +110,12 @@ interactions:
Host:
- localhost:8080
User-Agent:
- Python-urllib/3.10
- Python-urllib/3.9
method: POST
uri: http://pulp.example.org/pulp/api/v3/repositories/rpm/rpm/
response:
body:
string: '{"pulp_href":"/pulp/api/v3/repositories/rpm/rpm/018e0f9d-16a5-73e6-a30d-cdac09ff569f/","pulp_created":"2024-03-05T17:15:36.998019Z","versions_href":"/pulp/api/v3/repositories/rpm/rpm/018e0f9d-16a5-73e6-a30d-cdac09ff569f/versions/","pulp_labels":{},"latest_version_href":"/pulp/api/v3/repositories/rpm/rpm/018e0f9d-16a5-73e6-a30d-cdac09ff569f/versions/0/","name":"test_rpm_repository","description":null,"retain_repo_versions":null,"remote":"/pulp/api/v3/remotes/rpm/rpm/018e0f9d-04b5-7b0d-ac02-5287da03f5dd/","autopublish":false,"metadata_signing_service":null,"retain_package_versions":0,"checksum_type":null,"metadata_checksum_type":null,"package_checksum_type":null,"gpgcheck":null,"repo_gpgcheck":null,"sqlite_metadata":false,"repo_config":{},"compression_type":null}'
string: '{"pulp_href":"/pulp/api/v3/repositories/rpm/rpm/018eaac8-35a5-7499-89ea-29e8cd1913c7/","pulp_created":"2024-04-04T20:23:51.463770Z","pulp_last_updated":"2024-04-04T20:23:51.474134Z","versions_href":"/pulp/api/v3/repositories/rpm/rpm/018eaac8-35a5-7499-89ea-29e8cd1913c7/versions/","pulp_labels":{},"latest_version_href":"/pulp/api/v3/repositories/rpm/rpm/018eaac8-35a5-7499-89ea-29e8cd1913c7/versions/0/","name":"test_rpm_repository","description":null,"retain_repo_versions":null,"remote":"/pulp/api/v3/remotes/rpm/rpm/018eaac8-0cd7-7085-8c47-cc7a8e54e61f/","autopublish":false,"metadata_signing_service":null,"retain_package_versions":0,"checksum_type":null,"metadata_checksum_type":null,"package_checksum_type":null,"gpgcheck":null,"repo_gpgcheck":null,"sqlite_metadata":false,"repo_config":{},"compression_type":null}'
headers:
Access-Control-Expose-Headers:
- Correlation-ID
Expand All @@ -124,17 +124,17 @@ interactions:
Connection:
- close
Content-Length:
- '771'
- '821'
Content-Type:
- application/json
Correlation-ID:
- 98202fb1d35d473cb55fb6eea7ab9052
- b19c1b1c93a349c9ac77b248e61f73d9
Cross-Origin-Opener-Policy:
- same-origin
Date:
- Tue, 05 Mar 2024 17:15:37 GMT
- Thu, 04 Apr 2024 20:23:51 GMT
Location:
- /pulp/api/v3/repositories/rpm/rpm/018e0f9d-16a5-73e6-a30d-cdac09ff569f/
- /pulp/api/v3/repositories/rpm/rpm/018eaac8-35a5-7499-89ea-29e8cd1913c7/
Referrer-Policy:
- same-origin
Server:
Expand Down
12 changes: 6 additions & 6 deletions tests/fixtures/rpm_repository-10.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@ interactions:
Host:
- localhost:8080
User-Agent:
- Python-urllib/3.10
- Python-urllib/3.9
method: GET
uri: http://pulp.example.org/pulp/api/v3/repositories/rpm/rpm/?limit=1&name=test_rpm_repository
response:
body:
string: '{"count":1,"next":null,"previous":null,"results":[{"pulp_href":"/pulp/api/v3/repositories/rpm/rpm/018e0f9d-16a5-73e6-a30d-cdac09ff569f/","pulp_created":"2024-03-05T17:15:36.998019Z","versions_href":"/pulp/api/v3/repositories/rpm/rpm/018e0f9d-16a5-73e6-a30d-cdac09ff569f/versions/","pulp_labels":{},"latest_version_href":"/pulp/api/v3/repositories/rpm/rpm/018e0f9d-16a5-73e6-a30d-cdac09ff569f/versions/0/","name":"test_rpm_repository","description":"repository
created via ansible","retain_repo_versions":null,"remote":"/pulp/api/v3/remotes/rpm/rpm/018e0f9d-04b5-7b0d-ac02-5287da03f5dd/","autopublish":true,"metadata_signing_service":null,"retain_package_versions":0,"checksum_type":null,"metadata_checksum_type":null,"package_checksum_type":null,"gpgcheck":null,"repo_gpgcheck":null,"sqlite_metadata":false,"repo_config":"{\"gpgcheck\":
string: '{"count":1,"next":null,"previous":null,"results":[{"pulp_href":"/pulp/api/v3/repositories/rpm/rpm/018eaac8-35a5-7499-89ea-29e8cd1913c7/","pulp_created":"2024-04-04T20:23:51.463770Z","pulp_last_updated":"2024-04-04T20:24:08.746242Z","versions_href":"/pulp/api/v3/repositories/rpm/rpm/018eaac8-35a5-7499-89ea-29e8cd1913c7/versions/","pulp_labels":{},"latest_version_href":"/pulp/api/v3/repositories/rpm/rpm/018eaac8-35a5-7499-89ea-29e8cd1913c7/versions/0/","name":"test_rpm_repository","description":"repository
created via ansible","retain_repo_versions":null,"remote":"/pulp/api/v3/remotes/rpm/rpm/018eaac8-0cd7-7085-8c47-cc7a8e54e61f/","autopublish":true,"metadata_signing_service":null,"retain_package_versions":0,"checksum_type":null,"metadata_checksum_type":null,"package_checksum_type":null,"gpgcheck":null,"repo_gpgcheck":null,"sqlite_metadata":false,"repo_config":"{\"gpgcheck\":
0}","compression_type":null}]}'
headers:
Access-Control-Expose-Headers:
Expand All @@ -27,15 +27,15 @@ interactions:
Connection:
- close
Content-Length:
- '867'
- '917'
Content-Type:
- application/json
Correlation-ID:
- 51acbc4374c94855991ed582eb4f258f
- c41b59833af644a1b78d24cb44a33892
Cross-Origin-Opener-Policy:
- same-origin
Date:
- Tue, 05 Mar 2024 17:15:43 GMT
- Thu, 04 Apr 2024 20:24:11 GMT
Referrer-Policy:
- same-origin
Server:
Expand Down
159 changes: 153 additions & 6 deletions tests/fixtures/rpm_repository-11.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@ interactions:
Host:
- localhost:8080
User-Agent:
- Python-urllib/3.10
- Python-urllib/3.9
method: GET
uri: http://pulp.example.org/pulp/api/v3/repositories/rpm/rpm/?limit=1&name=test_rpm_repository
response:
body:
string: '{"count":1,"next":null,"previous":null,"results":[{"pulp_href":"/pulp/api/v3/repositories/rpm/rpm/018e0f9d-16a5-73e6-a30d-cdac09ff569f/","pulp_created":"2024-03-05T17:15:36.998019Z","versions_href":"/pulp/api/v3/repositories/rpm/rpm/018e0f9d-16a5-73e6-a30d-cdac09ff569f/versions/","pulp_labels":{},"latest_version_href":"/pulp/api/v3/repositories/rpm/rpm/018e0f9d-16a5-73e6-a30d-cdac09ff569f/versions/0/","name":"test_rpm_repository","description":"repository
created via ansible","retain_repo_versions":null,"remote":"/pulp/api/v3/remotes/rpm/rpm/018e0f9d-04b5-7b0d-ac02-5287da03f5dd/","autopublish":true,"metadata_signing_service":null,"retain_package_versions":0,"checksum_type":null,"metadata_checksum_type":null,"package_checksum_type":null,"gpgcheck":null,"repo_gpgcheck":null,"sqlite_metadata":false,"repo_config":"{\"gpgcheck\":
string: '{"count":1,"next":null,"previous":null,"results":[{"pulp_href":"/pulp/api/v3/repositories/rpm/rpm/018eaac8-35a5-7499-89ea-29e8cd1913c7/","pulp_created":"2024-04-04T20:23:51.463770Z","pulp_last_updated":"2024-04-04T20:24:08.746242Z","versions_href":"/pulp/api/v3/repositories/rpm/rpm/018eaac8-35a5-7499-89ea-29e8cd1913c7/versions/","pulp_labels":{},"latest_version_href":"/pulp/api/v3/repositories/rpm/rpm/018eaac8-35a5-7499-89ea-29e8cd1913c7/versions/0/","name":"test_rpm_repository","description":"repository
created via ansible","retain_repo_versions":null,"remote":"/pulp/api/v3/remotes/rpm/rpm/018eaac8-0cd7-7085-8c47-cc7a8e54e61f/","autopublish":true,"metadata_signing_service":null,"retain_package_versions":0,"checksum_type":null,"metadata_checksum_type":null,"package_checksum_type":null,"gpgcheck":null,"repo_gpgcheck":null,"sqlite_metadata":false,"repo_config":"{\"gpgcheck\":
0}","compression_type":null}]}'
headers:
Access-Control-Expose-Headers:
Expand All @@ -27,15 +27,162 @@ interactions:
Connection:
- close
Content-Length:
- '867'
- '917'
Content-Type:
- application/json
Correlation-ID:
- 21436fbf61954dbba56c775b5d3bb30c
- 31c4fa14d14841a48b4e85133b6dcd83
Cross-Origin-Opener-Policy:
- same-origin
Date:
- Tue, 05 Mar 2024 17:15:43 GMT
- Thu, 04 Apr 2024 20:24:12 GMT
Referrer-Policy:
- same-origin
Server:
- nginx/1.22.1
Vary:
- Accept
X-Content-Type-Options:
- nosniff
X-Frame-Options:
- DENY
status:
code: 200
message: OK
- request:
body: '{"retain_package_versions": 3}'
headers:
Accept:
- application/json
Connection:
- close
Content-Length:
- 30
Content-Type:
- application/json
Host:
- localhost:8080
User-Agent:
- Python-urllib/3.9
method: PATCH
uri: http://pulp.example.org/pulp/api/v3/repositories/rpm/rpm/018eaac8-35a5-7499-89ea-29e8cd1913c7/
response:
body:
string: '{"task":"/pulp/api/v3/tasks/018eaac8-8b14-7e8e-8399-8084f1c0eadd/"}'
headers:
Access-Control-Expose-Headers:
- Correlation-ID
Allow:
- GET, PUT, PATCH, DELETE, HEAD, OPTIONS
Connection:
- close
Content-Length:
- '67'
Content-Type:
- application/json
Correlation-ID:
- 0765cd10ff894411b4ab99425cb39759
Cross-Origin-Opener-Policy:
- same-origin
Date:
- Thu, 04 Apr 2024 20:24:13 GMT
Referrer-Policy:
- same-origin
Server:
- nginx/1.22.1
Vary:
- Accept
X-Content-Type-Options:
- nosniff
X-Frame-Options:
- DENY
status:
code: 202
message: Accepted
- request:
body: null
headers:
Accept:
- application/json
Connection:
- close
Content-Type:
- application/json
Host:
- localhost:8080
User-Agent:
- Python-urllib/3.9
method: GET
uri: http://pulp.example.org/pulp/api/v3/tasks/018eaac8-8b14-7e8e-8399-8084f1c0eadd/
response:
body:
string: '{"pulp_href":"/pulp/api/v3/tasks/018eaac8-8b14-7e8e-8399-8084f1c0eadd/","pulp_created":"2024-04-04T20:24:13.332831Z","pulp_last_updated":"2024-04-04T20:24:13.332855Z","state":"completed","name":"pulpcore.app.tasks.base.general_update","logging_cid":"0765cd10ff894411b4ab99425cb39759","created_by":"/pulp/api/v3/users/1/","unblocked_at":"2024-04-04T20:24:13.345311Z","started_at":"2024-04-04T20:24:13.346377Z","finished_at":"2024-04-04T20:24:13.357511Z","error":null,"worker":null,"parent_task":null,"child_tasks":[],"task_group":null,"progress_reports":[],"created_resources":[],"reserved_resources_record":["prn:rpm.rpmrepository:018eaac8-35a5-7499-89ea-29e8cd1913c7","/pulp/api/v3/repositories/rpm/rpm/018eaac8-35a5-7499-89ea-29e8cd1913c7/","shared:prn:core.domain:018eaac6-4bdb-72db-a4fd-db3fffa2d5e8","shared:/pulp/api/v3/domains/018eaac6-4bdb-72db-a4fd-db3fffa2d5e8/"]}'
headers:
Access-Control-Expose-Headers:
- Correlation-ID
Allow:
- GET, PATCH, DELETE, HEAD, OPTIONS
Connection:
- close
Content-Length:
- '874'
Content-Type:
- application/json
Correlation-ID:
- aea7eec718664a6fae7b3c9c4181521c
Cross-Origin-Opener-Policy:
- same-origin
Date:
- Thu, 04 Apr 2024 20:24:14 GMT
Referrer-Policy:
- same-origin
Server:
- nginx/1.22.1
Vary:
- Accept
X-Content-Type-Options:
- nosniff
X-Frame-Options:
- DENY
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Connection:
- close
Content-Type:
- application/json
Host:
- localhost:8080
User-Agent:
- Python-urllib/3.9
method: GET
uri: http://pulp.example.org/pulp/api/v3/repositories/rpm/rpm/018eaac8-35a5-7499-89ea-29e8cd1913c7/
response:
body:
string: '{"pulp_href":"/pulp/api/v3/repositories/rpm/rpm/018eaac8-35a5-7499-89ea-29e8cd1913c7/","pulp_created":"2024-04-04T20:23:51.463770Z","pulp_last_updated":"2024-04-04T20:24:13.354317Z","versions_href":"/pulp/api/v3/repositories/rpm/rpm/018eaac8-35a5-7499-89ea-29e8cd1913c7/versions/","pulp_labels":{},"latest_version_href":"/pulp/api/v3/repositories/rpm/rpm/018eaac8-35a5-7499-89ea-29e8cd1913c7/versions/0/","name":"test_rpm_repository","description":"repository
created via ansible","retain_repo_versions":null,"remote":"/pulp/api/v3/remotes/rpm/rpm/018eaac8-0cd7-7085-8c47-cc7a8e54e61f/","autopublish":true,"metadata_signing_service":null,"retain_package_versions":3,"checksum_type":null,"metadata_checksum_type":null,"package_checksum_type":null,"gpgcheck":null,"repo_gpgcheck":null,"sqlite_metadata":false,"repo_config":{},"compression_type":null}'
headers:
Access-Control-Expose-Headers:
- Correlation-ID
Allow:
- GET, PUT, PATCH, DELETE, HEAD, OPTIONS
Connection:
- close
Content-Length:
- '848'
Content-Type:
- application/json
Correlation-ID:
- 4a22f33ddebd4909b79b7d0d7ba3e423
Cross-Origin-Opener-Policy:
- same-origin
Date:
- Thu, 04 Apr 2024 20:24:14 GMT
Referrer-Policy:
- same-origin
Server:
Expand Down
Loading

0 comments on commit 08eba4e

Please sign in to comment.