Skip to content

Commit 62ad27c

Browse files
authored
Merge pull request #247 from mdellweg/update_glue
Update glue
2 parents f04fe62 + 41fcde3 commit 62ad27c

40 files changed

Lines changed: 25702 additions & 120858 deletions

.github/workflows/test.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ jobs:
1818
matrix:
1919
include:
2020
- python: "3.11"
21-
ansible: "stable-2.18"
21+
ansible: "stable-2.19"
2222
lower_bounds: true
2323
image_tag: "latest"
2424
- python: "3.13"
25-
ansible: "stable-2.19"
26-
- python: "3.14"
2725
ansible: "stable-2.20"
26+
- python: "3.14"
27+
ansible: "stable-2.21"
2828
image_tag: "nightly"
2929
lower_bounds: true
3030
steps:

meta/runtime.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,5 +43,5 @@ action_groups:
4343
- task
4444
- user
4545
- x509_cert_guard
46-
requires_ansible: '>=2.16.0,<2.21'
46+
requires_ansible: '>=2.16.0,<2.22'
4747
...

plugins/module_utils/pulp_glue.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010

1111
from ansible.module_utils.basic import AnsibleModule, env_fallback, missing_required_lib
1212

13-
GLUE_VERSION_SPEC = ">=0.29.2,<0.37"
14-
GLUE_DEB_VERSION_SPEC = ">=0.3.0,<0.4"
13+
GLUE_VERSION_SPEC = ">=0.29.2,<0.40"
14+
GLUE_DEB_VERSION_SPEC = ">=0.3.0,<0.5"
1515

1616

1717
def assert_version(spec, version, name):
@@ -23,7 +23,11 @@ def assert_version(spec, version, name):
2323
from packaging.requirements import SpecifierSet
2424
from pulp_glue.common import __version__ as pulp_glue_version
2525
from pulp_glue.common.context import PulpContext, PulpException, PulpNoWait
26-
from pulp_glue.common.openapi import BasicAuthProvider
26+
27+
if SpecifierSet(">=0.38").contains(pulp_glue_version):
28+
from pulp_glue.common.authentication import BasicAuthProvider
29+
else:
30+
from pulp_glue.common.openapi import BasicAuthProvider
2731

2832
assert_version(GLUE_VERSION_SPEC, pulp_glue_version, "pulp-glue")
2933
PULP_CLI_IMPORT_ERR = None

plugins/modules/ansible_sync.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,17 @@ def main():
113113
repository_version = repository["latest_version_href"]
114114
# In check_mode, assume nothing changed
115115
if not module.check_mode:
116-
sync_task = repository_ctx.sync(body=payload)
117-
118-
if sync_task["created_resources"]:
116+
old_repository_version = repository_version
117+
sync_result = repository_ctx.sync(body=payload)
118+
119+
if "content_summary" in sync_result:
120+
# Looks like a repository version.
121+
repository_version = sync_result["pulp_href"]
122+
elif sync_result["created_resources"]:
123+
# Assume it's a task.
124+
repository_version = sync_result["created_resources"][0]
125+
if old_repository_version != repository_version:
119126
module.set_changed()
120-
repository_version = sync_task["created_resources"][0]
121127

122128
module.set_result("repository_version", repository_version)
123129

plugins/modules/container_remote.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,37 @@
8888
from ansible_collections.pulp.squeezer.plugins.module_utils.pulp_glue import PulpRemoteAnsibleModule
8989

9090
try:
91+
from pulp_glue.common.context import PluginRequirement
9192
from pulp_glue.container.context import PulpContainerRemoteContext
9293

94+
class PulpContainerRemoteContext(PulpContainerRemoteContext):
95+
def converge(self, desired_attributes, defaults=None):
96+
if self.pulp_ctx.has_plugin(PluginRequirement("container", specifier=">=2.28.0")):
97+
# Translate the old name to the new one and back afterwards.
98+
# Here specifically we can assume there are no defaults.
99+
# Eventually we expect glue to only expose the new name to us.
100+
if desired_attributes is not None:
101+
if "include_tags" in desired_attributes:
102+
desired_attributes["includes"] = desired_attributes.pop("include_tags")
103+
if "exclude_tags" in desired_attributes:
104+
desired_attributes["excludes"] = desired_attributes.pop("exclude_tags")
105+
106+
changed, before, after = super().converge(desired_attributes, defaults=defaults)
107+
108+
if before is not None:
109+
if "includes" in before:
110+
before["include_tags"] = before.pop("includes")
111+
if "excludes" in before:
112+
before["exclude_tags"] = before.pop("excludes")
113+
if after is not None:
114+
if "includes" in after:
115+
after["include_tags"] = after.pop("includes")
116+
if "excludes" in after:
117+
after["exclude_tags"] = after.pop("excludes")
118+
119+
return changed, before, after
120+
return super().converge(desired_attributes, defaults=defaults)
121+
93122
PULP_GLUE_IMPORT_ERR = None
94123
except ImportError:
95124
PULP_GLUE_IMPORT_ERR = traceback.format_exc()

plugins/modules/container_sync.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,11 +98,17 @@ def main():
9898
repository_version = repository["latest_version_href"]
9999
# In check_mode, assume nothing changed
100100
if not module.check_mode:
101-
sync_task = repository_ctx.sync(body=payload)
102-
103-
if sync_task["created_resources"]:
101+
old_repository_version = repository_version
102+
sync_result = repository_ctx.sync(body=payload)
103+
104+
if "content_summary" in sync_result:
105+
# Looks like a repository version.
106+
repository_version = sync_result["pulp_href"]
107+
elif sync_result["created_resources"]:
108+
# Assume it's a task.
109+
repository_version = sync_result["created_resources"][0]
110+
if old_repository_version != repository_version:
104111
module.set_changed()
105-
repository_version = sync_task["created_resources"][0]
106112

107113
module.set_result("repository_version", repository_version)
108114

plugins/modules/deb_sync.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,11 +116,17 @@ def main():
116116
repository_version = repository["latest_version_href"]
117117
# In check_mode, assume nothing changed
118118
if not module.check_mode:
119-
sync_task = repository_ctx.sync(body=payload)
120-
121-
if sync_task["created_resources"]:
119+
old_repository_version = repository_version
120+
sync_result = repository_ctx.sync(body=payload)
121+
122+
if "content_summary" in sync_result:
123+
# Looks like a repository version.
124+
repository_version = sync_result["pulp_href"]
125+
elif sync_result["created_resources"]:
126+
# Assume it's a task.
127+
repository_version = sync_result["created_resources"][0]
128+
if old_repository_version != repository_version:
122129
module.set_changed()
123-
repository_version = sync_task["created_resources"][0]
124130

125131
module.set_result("repository_version", repository_version)
126132

plugins/modules/file_sync.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,11 +105,17 @@ def main():
105105
repository_version = repository["latest_version_href"]
106106
# In check_mode, assume nothing changed
107107
if not module.check_mode:
108-
sync_task = repository_ctx.sync(body=payload)
109-
110-
if sync_task["created_resources"]:
108+
old_repository_version = repository_version
109+
sync_result = repository_ctx.sync(body=payload)
110+
111+
if "content_summary" in sync_result:
112+
# Looks like a repository version.
113+
repository_version = sync_result["pulp_href"]
114+
elif sync_result["created_resources"]:
115+
# Assume it's a task.
116+
repository_version = sync_result["created_resources"][0]
117+
if old_repository_version != repository_version:
111118
module.set_changed()
112-
repository_version = sync_task["created_resources"][0]
113119

114120
module.set_result("repository_version", repository_version)
115121

plugins/modules/python_sync.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,17 @@ def main():
9292
repository_version = repository["latest_version_href"]
9393
# In check_mode, assume nothing changed
9494
if not module.check_mode:
95-
sync_task = repository_ctx.sync(body=payload)
96-
97-
if sync_task["created_resources"]:
95+
old_repository_version = repository_version
96+
sync_result = repository_ctx.sync(body=payload)
97+
98+
if "content_summary" in sync_result:
99+
# Looks like a repository version.
100+
repository_version = sync_result["pulp_href"]
101+
elif sync_result["created_resources"]:
102+
# Assume it's a task.
103+
repository_version = sync_result["created_resources"][0]
104+
if old_repository_version != repository_version:
98105
module.set_changed()
99-
repository_version = sync_task["created_resources"][0]
100106

101107
module.set_result("repository_version", repository_version)
102108

plugins/modules/rpm_repository.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,6 @@
107107
import json
108108
import traceback
109109

110-
from ansible.module_utils.six import string_types
111110
from ansible_collections.pulp.squeezer.plugins.module_utils.pulp_glue import PulpEntityAnsibleModule
112111

113112
try:
@@ -161,7 +160,7 @@ def main():
161160

162161
# Encode the repo_config unless its a string, then assume it is pre-formatted JSON
163162
if "repo_config" in desired_attributes and isinstance(
164-
desired_attributes["repo_config"], string_types
163+
desired_attributes["repo_config"], str
165164
):
166165
desired_attributes["repo_config"] = json.loads(desired_attributes["repo_config"])
167166

0 commit comments

Comments
 (0)