Skip to content

Commit 7ee4846

Browse files
committed
add support for pulp_labels key to deb_repository
1 parent 62ad27c commit 7ee4846

20 files changed

Lines changed: 14615 additions & 7550 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 strings for 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: 13585 additions & 7104 deletions
Large diffs are not rendered by default.

tests/fixtures/deb_repository-1.yml

Lines changed: 34 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,22 @@ interactions:
22
- request:
33
body: null
44
headers:
5-
Accept:
6-
- application/json
5+
? !!python/object/new:multidict._multidict_py.istr
6+
args:
7+
- Accept
8+
state:
9+
__istr_identity__: Accept
10+
: - application/json
711
Accept-Encoding:
8-
- gzip, deflate
12+
- gzip, deflate, zstd
913
Connection:
1014
- keep-alive
11-
User-Agent:
12-
- Squeezer/0.3.0-dev
15+
? !!python/object/new:multidict._multidict_py.istr
16+
args:
17+
- User-Agent
18+
state:
19+
__istr_identity__: User-Agent
20+
: - Squeezer/0.4.0-dev
1321
method: GET
1422
uri: http://pulp.example.org/pulp/api/v3/repositories/deb/apt/?name=test_deb_repository&offset=0&limit=1
1523
response:
@@ -27,11 +35,11 @@ interactions:
2735
Content-Type:
2836
- application/json
2937
Correlation-ID:
30-
- a2e44d4612a1493c8b719f92aa6fe9ad
38+
- 9f23225ad146416ba1d4d24f3d818a4a
3139
Cross-Origin-Opener-Policy:
3240
- same-origin
3341
Date:
34-
- Mon, 27 Oct 2025 11:43:30 GMT
42+
- Tue, 26 May 2026 10:57:20 GMT
3543
Referrer-Policy:
3644
- same-origin
3745
Server:
@@ -48,25 +56,33 @@ interactions:
4856
- request:
4957
body: '{"description": null, "name": "test_deb_repository"}'
5058
headers:
51-
Accept:
52-
- application/json
59+
? !!python/object/new:multidict._multidict_py.istr
60+
args:
61+
- Accept
62+
state:
63+
__istr_identity__: Accept
64+
: - application/json
5365
Accept-Encoding:
54-
- gzip, deflate
66+
- gzip, deflate, zstd
5567
Connection:
5668
- keep-alive
5769
Content-Length:
5870
- '52'
5971
Correlation-Id:
60-
- a2e44d4612a1493c8b719f92aa6fe9ad
61-
User-Agent:
62-
- Squeezer/0.3.0-dev
72+
- 9f23225ad146416ba1d4d24f3d818a4a
73+
? !!python/object/new:multidict._multidict_py.istr
74+
args:
75+
- User-Agent
76+
state:
77+
__istr_identity__: User-Agent
78+
: - Squeezer/0.4.0-dev
6379
content-type:
6480
- application/json
6581
method: POST
6682
uri: http://pulp.example.org/pulp/api/v3/repositories/deb/apt/
6783
response:
6884
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":{}}'
85+
string: '{"pulp_href":"/pulp/api/v3/repositories/deb/apt/019e63ee-9688-783a-b803-3075d01e6c85/","prn":"prn:deb.aptrepository:019e63ee-9688-783a-b803-3075d01e6c85","pulp_created":"2026-05-26T10:57:21.033732Z","pulp_last_updated":"2026-05-26T10:57:21.040401Z","versions_href":"/pulp/api/v3/repositories/deb/apt/019e63ee-9688-783a-b803-3075d01e6c85/versions/","pulp_labels":{},"latest_version_href":"/pulp/api/v3/repositories/deb/apt/019e63ee-9688-783a-b803-3075d01e6c85/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":{}}'
7086
headers:
7187
Access-Control-Expose-Headers:
7288
- Correlation-ID
@@ -75,17 +91,17 @@ interactions:
7591
Connection:
7692
- keep-alive
7793
Content-Length:
78-
- '663'
94+
- '709'
7995
Content-Type:
8096
- application/json
8197
Correlation-ID:
82-
- a2e44d4612a1493c8b719f92aa6fe9ad
98+
- 9f23225ad146416ba1d4d24f3d818a4a
8399
Cross-Origin-Opener-Policy:
84100
- same-origin
85101
Date:
86-
- Mon, 27 Oct 2025 11:43:31 GMT
102+
- Tue, 26 May 2026 10:57:21 GMT
87103
Location:
88-
- /pulp/api/v3/repositories/deb/apt/019a257b-06c2-7a0e-aa73-d444977f24ee/
104+
- /pulp/api/v3/repositories/deb/apt/019e63ee-9688-783a-b803-3075d01e6c85/
89105
Referrer-Policy:
90106
- same-origin
91107
Server:

tests/fixtures/deb_repository-10.yml

Lines changed: 19 additions & 159 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,28 @@ interactions:
22
- request:
33
body: null
44
headers:
5-
Accept:
6-
- application/json
5+
? !!python/object/new:multidict._multidict_py.istr
6+
args:
7+
- Accept
8+
state:
9+
__istr_identity__: Accept
10+
: - application/json
711
Accept-Encoding:
8-
- gzip, deflate
12+
- gzip, deflate, zstd
913
Connection:
1014
- keep-alive
11-
User-Agent:
12-
- Squeezer/0.3.0-dev
15+
? !!python/object/new:multidict._multidict_py.istr
16+
args:
17+
- User-Agent
18+
state:
19+
__istr_identity__: User-Agent
20+
: - Squeezer/0.4.0-dev
1321
method: GET
14-
uri: http://pulp.example.org/pulp/api/v3/repositories/deb/apt/?name=test_deb_repository&offset=0&limit=1
22+
uri: http://pulp.example.org/pulp/api/v3/repositories/deb/apt/?offset=0&limit=1000
1523
response:
1624
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":{}}]}'
25+
string: '{"count":1,"next":null,"previous":null,"results":[{"pulp_href":"/pulp/api/v3/repositories/deb/apt/019e63ee-9688-783a-b803-3075d01e6c85/","prn":"prn:deb.aptrepository:019e63ee-9688-783a-b803-3075d01e6c85","pulp_created":"2026-05-26T10:57:21.033732Z","pulp_last_updated":"2026-05-26T10:57:26.342006Z","versions_href":"/pulp/api/v3/repositories/deb/apt/019e63ee-9688-783a-b803-3075d01e6c85/versions/","pulp_labels":{"test_label":"1"},"latest_version_href":"/pulp/api/v3/repositories/deb/apt/019e63ee-9688-783a-b803-3075d01e6c85/versions/0/","name":"test_deb_repository","description":"repository
26+
created via ansible","retain_repo_versions":null,"retain_checkpoints":null,"remote":"/pulp/api/v3/remotes/deb/apt/019e63ee-8f11-7942-9aac-75e8f23f355c/","autopublish":false,"publish_upstream_release_fields":true,"signing_service":null,"signing_service_release_overrides":{}}]}'
1927
headers:
2028
Access-Control-Expose-Headers:
2129
- Correlation-ID
@@ -24,163 +32,15 @@ interactions:
2432
Connection:
2533
- keep-alive
2634
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:
41-
- 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
54-
Accept-Encoding:
55-
- gzip, deflate
56-
Connection:
57-
- 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
114-
method: GET
115-
uri: http://pulp.example.org/pulp/api/v3/tasks/019a257b-15dc-7190-8cc8-67af6a574b0a/
116-
response:
117-
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":{}}}'
119-
headers:
120-
Access-Control-Expose-Headers:
121-
- Correlation-ID
122-
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
172-
Connection:
173-
- keep-alive
174-
Content-Length:
175-
- '727'
35+
- '869'
17636
Content-Type:
17737
- application/json
17838
Correlation-ID:
179-
- 29a42fc86676483c922f8f4e831d898c
39+
- 3d73c5ecc4a541988b350ac04424fa48
18040
Cross-Origin-Opener-Policy:
18141
- same-origin
18242
Date:
183-
- Mon, 27 Oct 2025 11:43:35 GMT
43+
- Tue, 26 May 2026 10:57:28 GMT
18444
Referrer-Policy:
18545
- same-origin
18646
Server:

tests/fixtures/deb_repository-11.yml

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,28 @@ interactions:
22
- request:
33
body: null
44
headers:
5-
Accept:
6-
- application/json
5+
? !!python/object/new:multidict._multidict_py.istr
6+
args:
7+
- Accept
8+
state:
9+
__istr_identity__: Accept
10+
: - application/json
711
Accept-Encoding:
8-
- gzip, deflate
12+
- gzip, deflate, zstd
913
Connection:
1014
- keep-alive
11-
User-Agent:
12-
- Squeezer/0.3.0-dev
15+
? !!python/object/new:multidict._multidict_py.istr
16+
args:
17+
- User-Agent
18+
state:
19+
__istr_identity__: User-Agent
20+
: - Squeezer/0.4.0-dev
1321
method: GET
1422
uri: http://pulp.example.org/pulp/api/v3/repositories/deb/apt/?name=test_deb_repository&offset=0&limit=1
1523
response:
1624
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":{}}]}'
25+
string: '{"count":1,"next":null,"previous":null,"results":[{"pulp_href":"/pulp/api/v3/repositories/deb/apt/019e63ee-9688-783a-b803-3075d01e6c85/","prn":"prn:deb.aptrepository:019e63ee-9688-783a-b803-3075d01e6c85","pulp_created":"2026-05-26T10:57:21.033732Z","pulp_last_updated":"2026-05-26T10:57:26.342006Z","versions_href":"/pulp/api/v3/repositories/deb/apt/019e63ee-9688-783a-b803-3075d01e6c85/versions/","pulp_labels":{"test_label":"1"},"latest_version_href":"/pulp/api/v3/repositories/deb/apt/019e63ee-9688-783a-b803-3075d01e6c85/versions/0/","name":"test_deb_repository","description":"repository
26+
created via ansible","retain_repo_versions":null,"retain_checkpoints":null,"remote":"/pulp/api/v3/remotes/deb/apt/019e63ee-8f11-7942-9aac-75e8f23f355c/","autopublish":false,"publish_upstream_release_fields":true,"signing_service":null,"signing_service_release_overrides":{}}]}'
1827
headers:
1928
Access-Control-Expose-Headers:
2029
- Correlation-ID
@@ -23,15 +32,15 @@ interactions:
2332
Connection:
2433
- keep-alive
2534
Content-Length:
26-
- '779'
35+
- '869'
2736
Content-Type:
2837
- application/json
2938
Correlation-ID:
30-
- b80bf7dd567a4c648ec7cd2d4f4eb2b5
39+
- 7655612813264db49c23b8a0c456f972
3140
Cross-Origin-Opener-Policy:
3241
- same-origin
3342
Date:
34-
- Mon, 27 Oct 2025 11:43:35 GMT
43+
- Tue, 26 May 2026 10:57:28 GMT
3544
Referrer-Policy:
3645
- same-origin
3746
Server:

0 commit comments

Comments
 (0)