update ansible collections sops, docker and debops
All checks were successful
/ build (pull_request) Successful in 28s
/ Ansible Lint (push) Successful in 2m36s
/ Ansible Lint (pull_request) Successful in 2m41s

This commit is contained in:
chris 2026-09-21 22:26:20 +02:00
commit e31ee5e39c
Signed by: c6ristian
SSH key fingerprint: SHA256:B3m+yzpaxGXSEcDBpPHfvza/DNC0wuX+CKMeGq8wgak
910 changed files with 27667 additions and 19786 deletions

View file

@ -21,11 +21,13 @@ from ..test_support.docker_image_archive_stubbing import (
)
if t.TYPE_CHECKING:
from collections.abc import Callable
from collections.abc import Callable # pragma: no cover
def assert_no_logging(msg: str) -> t.NoReturn:
raise AssertionError(f"Should not have logged anything but logged {msg}")
raise AssertionError(
f"Should not have logged anything but logged {msg}"
) # pragma: no cover
def capture_logging(messages: list[str]) -> Callable[[str], None]:

View file

@ -12,7 +12,8 @@ from ansible_collections.community.docker.plugins.modules import (
docker_swarm_service,
)
APIError = pytest.importorskip("docker.errors.APIError")
docker_errors = pytest.importorskip("docker.errors")
APIError = docker_errors.APIError
def test_retry_on_out_of_sequence_error(mocker: t.Any) -> None:
@ -375,3 +376,79 @@ def test_get_docker_networks() -> None:
docker_swarm_service.get_docker_networks(
[{"name": "test", "nonexisting_option": "foo"}], {"test": "1"}
)
def test_combine_command_args() -> None:
"""command + args combine into a single argv list for CLI-compatible mode."""
combine = docker_swarm_service._combine_command_args
assert combine(None, None) is None
assert combine(["sleep"], ["3600"]) == ["sleep", "3600"]
# Flag-style command alone (issue #1044 / #212)
assert combine(["-config.file=/etc/loki/loki-config.yaml"], None) == [
"-config.file=/etc/loki/loki-config.yaml"
]
assert combine(None, ["--path.rootfs=/host"]) == ["--path.rootfs=/host"]
assert combine(["prometheus"], ["--config.file=a.yml"]) == [
"prometheus",
"--config.file=a.yml",
]
def _make_service(
command: list[str] | None = None,
args: list[str] | None = None,
command_as_args: bool = False,
) -> docker_swarm_service.DockerService:
svc = docker_swarm_service.DockerService(
docker_swarm_service.LooseVersion("1.40"),
docker_swarm_service.LooseVersion("5.0.0"),
)
svc.image = "alpine:latest"
svc.command = command
svc.args = args
svc.command_as_args = command_as_args
return svc
def test_build_container_spec_legacy_command_mapping(mocker: t.Any) -> None:
"""Default command_as_args=false keeps historical Command/Args split."""
captured: dict[str, t.Any] = {}
class FakeContainerSpec:
def __init__(self, image: str, **kwargs: t.Any) -> None:
captured["image"] = image
captured.update(kwargs)
mocker.patch.object(docker_swarm_service.types, "ContainerSpec", FakeContainerSpec)
svc = _make_service(command=["sleep"], args=["3600"], command_as_args=False)
svc.build_container_spec()
assert captured.get("command") == ["sleep"]
assert captured.get("args") == ["3600"]
def test_build_container_spec_command_as_args(mocker: t.Any) -> None:
"""command_as_args=true maps command+args to ContainerSpec.Args only."""
captured: dict[str, t.Any] = {}
class FakeContainerSpec:
def __init__(self, image: str, **kwargs: t.Any) -> None:
captured["image"] = image
captured.update(kwargs)
mocker.patch.object(docker_swarm_service.types, "ContainerSpec", FakeContainerSpec)
svc = _make_service(
command=["-config.file=/etc/loki/loki-config.yaml"],
args=None,
command_as_args=True,
)
svc.build_container_spec()
assert "command" not in captured
assert captured.get("args") == ["-config.file=/etc/loki/loki-config.yaml"]
captured.clear()
svc = _make_service(command=["sleep"], args=["3600"], command_as_args=True)
svc.build_container_spec()
assert "command" not in captured
assert captured.get("args") == ["sleep", "3600"]