Skip to content

Commit 1b59399

Browse files
committed
add support for pulp_labels key to deb_repository
1 parent 2f9e290 commit 1b59399

20 files changed

Lines changed: 14377 additions & 7591 deletions

plugins/modules/deb_repository.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@
2323
description:
2424
- An optional remote to use by default when syncing
2525
type: str
26+
pulp_labels:
27+
description:
28+
- A dictionary assigning pulp labels using string keys and values
29+
type: dict
30+
version_added: "0.4.0"
2631
extends_documentation_fragment:
2732
- pulp.squeezer.pulp.entity_state
2833
- pulp.squeezer.pulp
@@ -113,6 +118,7 @@ def main():
113118
"name": {},
114119
"description": {},
115120
"remote": {},
121+
"pulp_labels": {"type": "dict"},
116122
},
117123
required_if=[("state", "present", ["name"]), ("state", "absent", ["name"])],
118124
) as module:
@@ -130,6 +136,16 @@ def main():
130136
if module.params["description"] is not None:
131137
desired_attributes["description"] = module.params["description"]
132138

139+
if module.params["pulp_labels"] is not None:
140+
labels = module.params["pulp_labels"]
141+
142+
# Ensure `pulp_labels` contains only strings for keys and values
143+
if not all(isinstance(k, str) and isinstance(v, str) for k, v in labels.items()):
144+
module.fail_json(
145+
msg="pulp_labels must be a dictionary with strings as keys and values"
146+
)
147+
desired_attributes["pulp_labels"] = labels
148+
133149
module.process(natural_key, desired_attributes)
134150

135151

tests/fixtures/deb_repository-0.yml

Lines changed: 13598 additions & 7174 deletions
Large diffs are not rendered by default.

tests/fixtures/deb_repository-1.yml

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,16 @@ interactions:
22
- request:
33
body: null
44
headers:
5-
Accept:
6-
- application/json
5+
? !!python/object/apply:multidict._multidict.istr
6+
- Accept
7+
: - application/json
78
Accept-Encoding:
89
- gzip, deflate
910
Connection:
1011
- keep-alive
11-
User-Agent:
12-
- Squeezer/0.3.0-dev
12+
? !!python/object/apply:multidict._multidict.istr
13+
- User-Agent
14+
: - Squeezer/0.4.0-dev
1315
method: GET
1416
uri: http://pulp.example.org/pulp/api/v3/repositories/deb/apt/?name=test_deb_repository&offset=0&limit=1
1517
response:
@@ -27,11 +29,11 @@ interactions:
2729
Content-Type:
2830
- application/json
2931
Correlation-ID:
30-
- a2e44d4612a1493c8b719f92aa6fe9ad
32+
- c36cc44033fa43c09e67125166897a6f
3133
Cross-Origin-Opener-Policy:
3234
- same-origin
3335
Date:
34-
- Mon, 27 Oct 2025 11:43:30 GMT
36+
- Sun, 17 May 2026 12:33:08 GMT
3537
Referrer-Policy:
3638
- same-origin
3739
Server:
@@ -48,25 +50,27 @@ interactions:
4850
- request:
4951
body: '{"description": null, "name": "test_deb_repository"}'
5052
headers:
51-
Accept:
52-
- application/json
53+
? !!python/object/apply:multidict._multidict.istr
54+
- Accept
55+
: - application/json
5356
Accept-Encoding:
5457
- gzip, deflate
5558
Connection:
5659
- keep-alive
5760
Content-Length:
5861
- '52'
5962
Correlation-Id:
60-
- a2e44d4612a1493c8b719f92aa6fe9ad
61-
User-Agent:
62-
- Squeezer/0.3.0-dev
63+
- c36cc44033fa43c09e67125166897a6f
64+
? !!python/object/apply:multidict._multidict.istr
65+
- User-Agent
66+
: - Squeezer/0.4.0-dev
6367
content-type:
6468
- application/json
6569
method: POST
6670
uri: http://pulp.example.org/pulp/api/v3/repositories/deb/apt/
6771
response:
6872
body:
69-
string: '{"pulp_href":"/pulp/api/v3/repositories/deb/apt/019a257b-06c2-7a0e-aa73-d444977f24ee/","prn":"prn:deb.aptrepository:019a257b-06c2-7a0e-aa73-d444977f24ee","pulp_created":"2025-10-27T11:43:31.011084Z","pulp_last_updated":"2025-10-27T11:43:31.014854Z","versions_href":"/pulp/api/v3/repositories/deb/apt/019a257b-06c2-7a0e-aa73-d444977f24ee/versions/","pulp_labels":{},"latest_version_href":"/pulp/api/v3/repositories/deb/apt/019a257b-06c2-7a0e-aa73-d444977f24ee/versions/0/","name":"test_deb_repository","description":null,"retain_repo_versions":null,"remote":null,"publish_upstream_release_fields":true,"signing_service":null,"signing_service_release_overrides":{}}'
73+
string: '{"pulp_href":"/pulp/api/v3/repositories/deb/apt/019e35ed-0d4b-7356-9376-a76a06636df0/","prn":"prn:deb.aptrepository:019e35ed-0d4b-7356-9376-a76a06636df0","pulp_created":"2026-05-17T12:33:08.428259Z","pulp_last_updated":"2026-05-17T12:33:08.433667Z","versions_href":"/pulp/api/v3/repositories/deb/apt/019e35ed-0d4b-7356-9376-a76a06636df0/versions/","pulp_labels":{},"latest_version_href":"/pulp/api/v3/repositories/deb/apt/019e35ed-0d4b-7356-9376-a76a06636df0/versions/0/","name":"test_deb_repository","description":null,"retain_repo_versions":null,"retain_checkpoints":null,"remote":null,"autopublish":false,"publish_upstream_release_fields":true,"signing_service":null,"signing_service_release_overrides":{}}'
7074
headers:
7175
Access-Control-Expose-Headers:
7276
- Correlation-ID
@@ -75,17 +79,17 @@ interactions:
7579
Connection:
7680
- keep-alive
7781
Content-Length:
78-
- '663'
82+
- '709'
7983
Content-Type:
8084
- application/json
8185
Correlation-ID:
82-
- a2e44d4612a1493c8b719f92aa6fe9ad
86+
- c36cc44033fa43c09e67125166897a6f
8387
Cross-Origin-Opener-Policy:
8488
- same-origin
8589
Date:
86-
- Mon, 27 Oct 2025 11:43:31 GMT
90+
- Sun, 17 May 2026 12:33:08 GMT
8791
Location:
88-
- /pulp/api/v3/repositories/deb/apt/019a257b-06c2-7a0e-aa73-d444977f24ee/
92+
- /pulp/api/v3/repositories/deb/apt/019e35ed-0d4b-7356-9376-a76a06636df0/
8993
Referrer-Policy:
9094
- same-origin
9195
Server:

tests/fixtures/deb_repository-10.yml

Lines changed: 12 additions & 158 deletions
Original file line numberDiff line numberDiff line change
@@ -2,185 +2,39 @@ interactions:
22
- request:
33
body: null
44
headers:
5-
Accept:
6-
- application/json
7-
Accept-Encoding:
8-
- gzip, deflate
9-
Connection:
10-
- keep-alive
11-
User-Agent:
12-
- Squeezer/0.3.0-dev
13-
method: GET
14-
uri: http://pulp.example.org/pulp/api/v3/repositories/deb/apt/?name=test_deb_repository&offset=0&limit=1
15-
response:
16-
body:
17-
string: '{"count":1,"next":null,"previous":null,"results":[{"pulp_href":"/pulp/api/v3/repositories/deb/apt/019a257b-06c2-7a0e-aa73-d444977f24ee/","prn":"prn:deb.aptrepository:019a257b-06c2-7a0e-aa73-d444977f24ee","pulp_created":"2025-10-27T11:43:31.011084Z","pulp_last_updated":"2025-10-27T11:43:32.854212Z","versions_href":"/pulp/api/v3/repositories/deb/apt/019a257b-06c2-7a0e-aa73-d444977f24ee/versions/","pulp_labels":{},"latest_version_href":"/pulp/api/v3/repositories/deb/apt/019a257b-06c2-7a0e-aa73-d444977f24ee/versions/0/","name":"test_deb_repository","description":"repository
18-
created via ansible","retain_repo_versions":null,"remote":"/pulp/api/v3/remotes/deb/apt/019a257a-fb12-7498-9bc2-5bac5ad0bd5c/","publish_upstream_release_fields":true,"signing_service":null,"signing_service_release_overrides":{}}]}'
19-
headers:
20-
Access-Control-Expose-Headers:
21-
- Correlation-ID
22-
Allow:
23-
- GET, POST, HEAD, OPTIONS
24-
Connection:
25-
- keep-alive
26-
Content-Length:
27-
- '807'
28-
Content-Type:
29-
- application/json
30-
Correlation-ID:
31-
- 29a42fc86676483c922f8f4e831d898c
32-
Cross-Origin-Opener-Policy:
33-
- same-origin
34-
Date:
35-
- Mon, 27 Oct 2025 11:43:34 GMT
36-
Referrer-Policy:
37-
- same-origin
38-
Server:
39-
- nginx/1.22.1
40-
Vary:
5+
? !!python/object/apply:multidict._multidict.istr
416
- Accept
42-
X-Content-Type-Options:
43-
- nosniff
44-
X-Frame-Options:
45-
- DENY
46-
status:
47-
code: 200
48-
message: OK
49-
- request:
50-
body: '{"description": null}'
51-
headers:
52-
Accept:
53-
- application/json
7+
: - application/json
548
Accept-Encoding:
559
- gzip, deflate
5610
Connection:
5711
- keep-alive
58-
Content-Length:
59-
- '21'
60-
Correlation-Id:
61-
- 29a42fc86676483c922f8f4e831d898c
62-
User-Agent:
63-
- Squeezer/0.3.0-dev
64-
content-type:
65-
- application/json
66-
method: PATCH
67-
uri: http://pulp.example.org/pulp/api/v3/repositories/deb/apt/019a257b-06c2-7a0e-aa73-d444977f24ee/
68-
response:
69-
body:
70-
string: '{"task":"/pulp/api/v3/tasks/019a257b-15dc-7190-8cc8-67af6a574b0a/"}'
71-
headers:
72-
Access-Control-Expose-Headers:
73-
- Correlation-ID
74-
Allow:
75-
- GET, PUT, PATCH, DELETE, HEAD, OPTIONS
76-
Connection:
77-
- keep-alive
78-
Content-Length:
79-
- '67'
80-
Content-Type:
81-
- application/json
82-
Correlation-ID:
83-
- 29a42fc86676483c922f8f4e831d898c
84-
Cross-Origin-Opener-Policy:
85-
- same-origin
86-
Date:
87-
- Mon, 27 Oct 2025 11:43:34 GMT
88-
Referrer-Policy:
89-
- same-origin
90-
Server:
91-
- nginx/1.22.1
92-
Vary:
93-
- Accept
94-
X-Content-Type-Options:
95-
- nosniff
96-
X-Frame-Options:
97-
- DENY
98-
status:
99-
code: 202
100-
message: Accepted
101-
- request:
102-
body: null
103-
headers:
104-
Accept:
105-
- application/json
106-
Accept-Encoding:
107-
- gzip, deflate
108-
Connection:
109-
- keep-alive
110-
Correlation-Id:
111-
- 29a42fc86676483c922f8f4e831d898c
112-
User-Agent:
113-
- Squeezer/0.3.0-dev
12+
? !!python/object/apply:multidict._multidict.istr
13+
- User-Agent
14+
: - Squeezer/0.4.0-dev
11415
method: GET
115-
uri: http://pulp.example.org/pulp/api/v3/tasks/019a257b-15dc-7190-8cc8-67af6a574b0a/
16+
uri: http://pulp.example.org/pulp/api/v3/repositories/deb/apt/?offset=0&limit=1000
11617
response:
11718
body:
118-
string: '{"pulp_href":"/pulp/api/v3/tasks/019a257b-15dc-7190-8cc8-67af6a574b0a/","prn":"prn:core.task:019a257b-15dc-7190-8cc8-67af6a574b0a","pulp_created":"2025-10-27T11:43:34.877686Z","pulp_last_updated":"2025-10-27T11:43:34.876376Z","state":"completed","name":"pulpcore.app.tasks.base.ageneral_update","logging_cid":"29a42fc86676483c922f8f4e831d898c","created_by":"/pulp/api/v3/users/1/","unblocked_at":"2025-10-27T11:43:34.883927Z","started_at":"2025-10-27T11:43:34.884699Z","finished_at":"2025-10-27T11:43:34.892733Z","error":null,"worker":null,"parent_task":null,"child_tasks":[],"task_group":null,"progress_reports":[],"created_resources":[],"reserved_resources_record":["prn:deb.aptrepository:019a257b-06c2-7a0e-aa73-d444977f24ee","shared:prn:core.domain:9f85dc51-beb2-4a9e-978e-41fef887ee2f"],"result":{"prn":"prn:deb.aptrepository:019a257b-06c2-7a0e-aa73-d444977f24ee","name":"test_deb_repository","remote":"/pulp/api/v3/remotes/deb/apt/019a257a-fb12-7498-9bc2-5bac5ad0bd5c/","pulp_href":"/pulp/api/v3/repositories/deb/apt/019a257b-06c2-7a0e-aa73-d444977f24ee/","description":null,"pulp_labels":{},"pulp_created":"2025-10-27T11:43:31.011084Z","versions_href":"/pulp/api/v3/repositories/deb/apt/019a257b-06c2-7a0e-aa73-d444977f24ee/versions/","signing_service":null,"pulp_last_updated":"2025-10-27T11:43:34.888315Z","latest_version_href":"/pulp/api/v3/repositories/deb/apt/019a257b-06c2-7a0e-aa73-d444977f24ee/versions/0/","retain_repo_versions":null,"publish_upstream_release_fields":true,"signing_service_release_overrides":{}}}'
19+
string: '{"count":1,"next":null,"previous":null,"results":[{"pulp_href":"/pulp/api/v3/repositories/deb/apt/019e35ed-0d4b-7356-9376-a76a06636df0/","prn":"prn:deb.aptrepository:019e35ed-0d4b-7356-9376-a76a06636df0","pulp_created":"2026-05-17T12:33:08.428259Z","pulp_last_updated":"2026-05-17T12:33:12.525240Z","versions_href":"/pulp/api/v3/repositories/deb/apt/019e35ed-0d4b-7356-9376-a76a06636df0/versions/","pulp_labels":{"test_label":"1"},"latest_version_href":"/pulp/api/v3/repositories/deb/apt/019e35ed-0d4b-7356-9376-a76a06636df0/versions/0/","name":"test_deb_repository","description":"repository
20+
created via ansible","retain_repo_versions":null,"retain_checkpoints":null,"remote":"/pulp/api/v3/remotes/deb/apt/019e35ed-073e-7c06-ad9e-477586e6c1af/","autopublish":false,"publish_upstream_release_fields":true,"signing_service":null,"signing_service_release_overrides":{}}]}'
11921
headers:
12022
Access-Control-Expose-Headers:
12123
- Correlation-ID
12224
Allow:
123-
- GET, PATCH, DELETE, HEAD, OPTIONS
124-
Connection:
125-
- keep-alive
126-
Content-Length:
127-
- '1529'
128-
Content-Type:
129-
- application/json
130-
Correlation-ID:
131-
- 29a42fc86676483c922f8f4e831d898c
132-
Cross-Origin-Opener-Policy:
133-
- same-origin
134-
Date:
135-
- Mon, 27 Oct 2025 11:43:34 GMT
136-
Referrer-Policy:
137-
- same-origin
138-
Server:
139-
- nginx/1.22.1
140-
Vary:
141-
- Accept
142-
X-Content-Type-Options:
143-
- nosniff
144-
X-Frame-Options:
145-
- DENY
146-
status:
147-
code: 200
148-
message: OK
149-
- request:
150-
body: null
151-
headers:
152-
Accept:
153-
- application/json
154-
Accept-Encoding:
155-
- gzip, deflate
156-
Connection:
157-
- keep-alive
158-
Correlation-Id:
159-
- 29a42fc86676483c922f8f4e831d898c
160-
User-Agent:
161-
- Squeezer/0.3.0-dev
162-
method: GET
163-
uri: http://pulp.example.org/pulp/api/v3/repositories/deb/apt/019a257b-06c2-7a0e-aa73-d444977f24ee/
164-
response:
165-
body:
166-
string: '{"pulp_href":"/pulp/api/v3/repositories/deb/apt/019a257b-06c2-7a0e-aa73-d444977f24ee/","prn":"prn:deb.aptrepository:019a257b-06c2-7a0e-aa73-d444977f24ee","pulp_created":"2025-10-27T11:43:31.011084Z","pulp_last_updated":"2025-10-27T11:43:34.888315Z","versions_href":"/pulp/api/v3/repositories/deb/apt/019a257b-06c2-7a0e-aa73-d444977f24ee/versions/","pulp_labels":{},"latest_version_href":"/pulp/api/v3/repositories/deb/apt/019a257b-06c2-7a0e-aa73-d444977f24ee/versions/0/","name":"test_deb_repository","description":null,"retain_repo_versions":null,"remote":"/pulp/api/v3/remotes/deb/apt/019a257a-fb12-7498-9bc2-5bac5ad0bd5c/","publish_upstream_release_fields":true,"signing_service":null,"signing_service_release_overrides":{}}'
167-
headers:
168-
Access-Control-Expose-Headers:
169-
- Correlation-ID
170-
Allow:
171-
- GET, PUT, PATCH, DELETE, HEAD, OPTIONS
25+
- GET, POST, HEAD, OPTIONS
17226
Connection:
17327
- keep-alive
17428
Content-Length:
175-
- '727'
29+
- '869'
17630
Content-Type:
17731
- application/json
17832
Correlation-ID:
179-
- 29a42fc86676483c922f8f4e831d898c
33+
- e1a01c6a55514c05a6f2c89d46461f80
18034
Cross-Origin-Opener-Policy:
18135
- same-origin
18236
Date:
183-
- Mon, 27 Oct 2025 11:43:35 GMT
37+
- Sun, 17 May 2026 12:33:14 GMT
18438
Referrer-Policy:
18539
- same-origin
18640
Server:

tests/fixtures/deb_repository-11.yml

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,22 @@ interactions:
22
- request:
33
body: null
44
headers:
5-
Accept:
6-
- application/json
5+
? !!python/object/apply:multidict._multidict.istr
6+
- Accept
7+
: - application/json
78
Accept-Encoding:
89
- gzip, deflate
910
Connection:
1011
- keep-alive
11-
User-Agent:
12-
- Squeezer/0.3.0-dev
12+
? !!python/object/apply:multidict._multidict.istr
13+
- User-Agent
14+
: - Squeezer/0.4.0-dev
1315
method: GET
1416
uri: http://pulp.example.org/pulp/api/v3/repositories/deb/apt/?name=test_deb_repository&offset=0&limit=1
1517
response:
1618
body:
17-
string: '{"count":1,"next":null,"previous":null,"results":[{"pulp_href":"/pulp/api/v3/repositories/deb/apt/019a257b-06c2-7a0e-aa73-d444977f24ee/","prn":"prn:deb.aptrepository:019a257b-06c2-7a0e-aa73-d444977f24ee","pulp_created":"2025-10-27T11:43:31.011084Z","pulp_last_updated":"2025-10-27T11:43:34.888315Z","versions_href":"/pulp/api/v3/repositories/deb/apt/019a257b-06c2-7a0e-aa73-d444977f24ee/versions/","pulp_labels":{},"latest_version_href":"/pulp/api/v3/repositories/deb/apt/019a257b-06c2-7a0e-aa73-d444977f24ee/versions/0/","name":"test_deb_repository","description":null,"retain_repo_versions":null,"remote":"/pulp/api/v3/remotes/deb/apt/019a257a-fb12-7498-9bc2-5bac5ad0bd5c/","publish_upstream_release_fields":true,"signing_service":null,"signing_service_release_overrides":{}}]}'
19+
string: '{"count":1,"next":null,"previous":null,"results":[{"pulp_href":"/pulp/api/v3/repositories/deb/apt/019e35ed-0d4b-7356-9376-a76a06636df0/","prn":"prn:deb.aptrepository:019e35ed-0d4b-7356-9376-a76a06636df0","pulp_created":"2026-05-17T12:33:08.428259Z","pulp_last_updated":"2026-05-17T12:33:12.525240Z","versions_href":"/pulp/api/v3/repositories/deb/apt/019e35ed-0d4b-7356-9376-a76a06636df0/versions/","pulp_labels":{"test_label":"1"},"latest_version_href":"/pulp/api/v3/repositories/deb/apt/019e35ed-0d4b-7356-9376-a76a06636df0/versions/0/","name":"test_deb_repository","description":"repository
20+
created via ansible","retain_repo_versions":null,"retain_checkpoints":null,"remote":"/pulp/api/v3/remotes/deb/apt/019e35ed-073e-7c06-ad9e-477586e6c1af/","autopublish":false,"publish_upstream_release_fields":true,"signing_service":null,"signing_service_release_overrides":{}}]}'
1821
headers:
1922
Access-Control-Expose-Headers:
2023
- Correlation-ID
@@ -23,15 +26,15 @@ interactions:
2326
Connection:
2427
- keep-alive
2528
Content-Length:
26-
- '779'
29+
- '869'
2730
Content-Type:
2831
- application/json
2932
Correlation-ID:
30-
- b80bf7dd567a4c648ec7cd2d4f4eb2b5
33+
- fa948eab86d74f02a11f47c6e3847fbf
3134
Cross-Origin-Opener-Policy:
3235
- same-origin
3336
Date:
34-
- Mon, 27 Oct 2025 11:43:35 GMT
37+
- Sun, 17 May 2026 12:33:14 GMT
3538
Referrer-Policy:
3639
- same-origin
3740
Server:

0 commit comments

Comments
 (0)