mirror of
https://github.com/ansible-collections/community.docker.git
synced 2026-07-29 11:55:04 +00:00
Python code modernization, 5/n (#1165)
* Address raise-missing-from. * Address simplifiable-if-expression. * Address unnecessary-dunder-call. * Address unnecessary-pass. * Address use-list-literal. * Address unused-variable. * Address use-dict-literal.
This commit is contained in:
@@ -919,10 +919,10 @@ def get_docker_environment(env, env_files):
|
||||
for item in env:
|
||||
try:
|
||||
name, value = item.split("=", 1)
|
||||
except ValueError:
|
||||
except ValueError as exc:
|
||||
raise ValueError(
|
||||
"Invalid environment variable found in list, needs to be in format KEY=VALUE."
|
||||
)
|
||||
) from exc
|
||||
env_dict[name] = value
|
||||
elif env is not None:
|
||||
raise ValueError(
|
||||
@@ -983,7 +983,7 @@ def get_docker_networks(networks, network_ids):
|
||||
try:
|
||||
parsed_network["id"] = network_ids[network_name]
|
||||
except KeyError as e:
|
||||
raise ValueError(f"Could not find a network named: {e}.")
|
||||
raise ValueError(f"Could not find a network named: {e}.") from None
|
||||
parsed_networks.append(parsed_network)
|
||||
return parsed_networks or []
|
||||
|
||||
@@ -1019,9 +1019,9 @@ def has_dict_changed(new_dict, old_dict):
|
||||
return True
|
||||
if not old_dict and new_dict:
|
||||
return True
|
||||
defined_options = dict(
|
||||
(option, value) for option, value in new_dict.items() if value is not None
|
||||
)
|
||||
defined_options = {
|
||||
option: value for option, value in new_dict.items() if value is not None
|
||||
}
|
||||
for option, value in defined_options.items():
|
||||
old_value = old_dict.get(option)
|
||||
if not value and not old_value:
|
||||
@@ -1370,7 +1370,9 @@ class DockerService(DockerBaseClass):
|
||||
try:
|
||||
memory = human_to_bytes(memory)
|
||||
except ValueError as exc:
|
||||
raise ValueError(f"Failed to convert limit_memory to bytes: {exc}")
|
||||
raise ValueError(
|
||||
f"Failed to convert limit_memory to bytes: {exc}"
|
||||
) from exc
|
||||
return {
|
||||
"limit_cpu": cpus,
|
||||
"limit_memory": memory,
|
||||
@@ -1392,7 +1394,9 @@ class DockerService(DockerBaseClass):
|
||||
try:
|
||||
memory = human_to_bytes(memory)
|
||||
except ValueError as exc:
|
||||
raise ValueError(f"Failed to convert reserve_memory to bytes: {exc}")
|
||||
raise ValueError(
|
||||
f"Failed to convert reserve_memory to bytes: {exc}"
|
||||
) from exc
|
||||
return {
|
||||
"reserve_cpu": cpus,
|
||||
"reserve_memory": memory,
|
||||
@@ -1559,7 +1563,7 @@ class DockerService(DockerBaseClass):
|
||||
except ValueError as exc:
|
||||
raise ValueError(
|
||||
f"Failed to convert tmpfs_size to bytes: {exc}"
|
||||
)
|
||||
) from exc
|
||||
|
||||
service_m["tmpfs_size"] = tmpfs_size
|
||||
s.mounts.append(service_m)
|
||||
@@ -1855,12 +1859,12 @@ class DockerService(DockerBaseClass):
|
||||
if not publish_item.get("mode"):
|
||||
ignored_keys.add("mode")
|
||||
# Create copies of publish_item dicts where keys specified in ignored_keys are left out
|
||||
filtered_old_publish_item = dict(
|
||||
(k, v) for k, v in old_publish_item.items() if k not in ignored_keys
|
||||
)
|
||||
filtered_publish_item = dict(
|
||||
(k, v) for k, v in publish_item.items() if k not in ignored_keys
|
||||
)
|
||||
filtered_old_publish_item = {
|
||||
k: v for k, v in old_publish_item.items() if k not in ignored_keys
|
||||
}
|
||||
filtered_publish_item = {
|
||||
k: v for k, v in publish_item.items() if k not in ignored_keys
|
||||
}
|
||||
if filtered_publish_item != filtered_old_publish_item:
|
||||
return True
|
||||
return False
|
||||
@@ -2213,11 +2217,11 @@ class DockerServiceManager:
|
||||
"StartPeriod": "start_period",
|
||||
"Retries": "retries",
|
||||
}
|
||||
healthcheck = dict(
|
||||
(options[key], value)
|
||||
healthcheck = {
|
||||
options[key]: value
|
||||
for key, value in healthcheck_data.items()
|
||||
if value is not None and key in options
|
||||
)
|
||||
}
|
||||
ds.healthcheck = healthcheck
|
||||
|
||||
update_config_data = raw_data["Spec"].get("UpdateConfig")
|
||||
@@ -2258,7 +2262,7 @@ class DockerServiceManager:
|
||||
)
|
||||
for host in hosts
|
||||
]
|
||||
ds.hosts = dict((hostname, ip) for ip, hostname in hosts)
|
||||
ds.hosts = {hostname: ip for ip, hostname in hosts}
|
||||
ds.tty = task_template_data["ContainerSpec"].get("TTY")
|
||||
|
||||
placement = task_template_data.get("Placement")
|
||||
@@ -2268,10 +2272,10 @@ class DockerServiceManager:
|
||||
placement_preferences = []
|
||||
for preference in placement.get("Preferences", []):
|
||||
placement_preferences.append(
|
||||
dict(
|
||||
(key.lower(), value["SpreadDescriptor"])
|
||||
{
|
||||
key.lower(): value["SpreadDescriptor"]
|
||||
for key, value in preference.items()
|
||||
)
|
||||
}
|
||||
)
|
||||
ds.placement_preferences = placement_preferences or None
|
||||
|
||||
@@ -2345,10 +2349,9 @@ class DockerServiceManager:
|
||||
volume_options = mount_data.get("VolumeOptions", {})
|
||||
tmpfs_options = mount_data.get("TmpfsOptions", {})
|
||||
driver_config = volume_options.get("DriverConfig", {})
|
||||
driver_config = (
|
||||
dict((key.lower(), value) for key, value in driver_config.items())
|
||||
or None
|
||||
)
|
||||
driver_config = {
|
||||
key.lower(): value for key, value in driver_config.items()
|
||||
} or None
|
||||
ds.mounts.append(
|
||||
{
|
||||
"source": mount_data.get("Source", ""),
|
||||
@@ -2444,9 +2447,7 @@ class DockerServiceManager:
|
||||
return f"{name}@{digest}"
|
||||
|
||||
def get_networks_names_ids(self):
|
||||
return dict(
|
||||
(network["Name"], network["Id"]) for network in self.client.networks()
|
||||
)
|
||||
return {network["Name"]: network["Id"] for network in self.client.networks()}
|
||||
|
||||
def get_missing_secret_ids(self):
|
||||
"""
|
||||
@@ -2460,11 +2461,11 @@ class DockerServiceManager:
|
||||
if not secret_names:
|
||||
return {}
|
||||
secrets = self.client.secrets(filters={"name": secret_names})
|
||||
secrets = dict(
|
||||
(secret["Spec"]["Name"], secret["ID"])
|
||||
secrets = {
|
||||
secret["Spec"]["Name"]: secret["ID"]
|
||||
for secret in secrets
|
||||
if secret["Spec"]["Name"] in secret_names
|
||||
)
|
||||
}
|
||||
for secret_name in secret_names:
|
||||
if secret_name not in secrets:
|
||||
self.client.fail(f'Could not find a secret named "{secret_name}"')
|
||||
@@ -2482,11 +2483,11 @@ class DockerServiceManager:
|
||||
if not config_names:
|
||||
return {}
|
||||
configs = self.client.configs(filters={"name": config_names})
|
||||
configs = dict(
|
||||
(config["Spec"]["Name"], config["ID"])
|
||||
configs = {
|
||||
config["Spec"]["Name"]: config["ID"]
|
||||
for config in configs
|
||||
if config["Spec"]["Name"] in config_names
|
||||
)
|
||||
}
|
||||
for config_name in config_names:
|
||||
if config_name not in configs:
|
||||
self.client.fail(f'Could not find a config named "{config_name}"')
|
||||
@@ -2627,26 +2628,30 @@ def _detect_update_config_failure_action_rollback(client):
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = dict(
|
||||
name=dict(type="str", required=True),
|
||||
image=dict(type="str"),
|
||||
state=dict(type="str", default="present", choices=["present", "absent"]),
|
||||
mounts=dict(
|
||||
type="list",
|
||||
elements="dict",
|
||||
options=dict(
|
||||
source=dict(type="str"),
|
||||
target=dict(type="str", required=True),
|
||||
type=dict(
|
||||
type="str",
|
||||
default="bind",
|
||||
choices=["bind", "volume", "tmpfs", "npipe"],
|
||||
),
|
||||
readonly=dict(type="bool"),
|
||||
labels=dict(type="dict"),
|
||||
propagation=dict(
|
||||
type="str",
|
||||
choices=[
|
||||
argument_spec = {
|
||||
"name": {"type": "str", "required": True},
|
||||
"image": {"type": "str"},
|
||||
"state": {
|
||||
"type": "str",
|
||||
"default": "present",
|
||||
"choices": ["present", "absent"],
|
||||
},
|
||||
"mounts": {
|
||||
"type": "list",
|
||||
"elements": "dict",
|
||||
"options": {
|
||||
"source": {"type": "str"},
|
||||
"target": {"type": "str", "required": True},
|
||||
"type": {
|
||||
"type": "str",
|
||||
"default": "bind",
|
||||
"choices": ["bind", "volume", "tmpfs", "npipe"],
|
||||
},
|
||||
"readonly": {"type": "bool"},
|
||||
"labels": {"type": "dict"},
|
||||
"propagation": {
|
||||
"type": "str",
|
||||
"choices": [
|
||||
"shared",
|
||||
"slave",
|
||||
"private",
|
||||
@@ -2654,266 +2659,273 @@ def main():
|
||||
"rslave",
|
||||
"rprivate",
|
||||
],
|
||||
),
|
||||
no_copy=dict(type="bool"),
|
||||
driver_config=dict(
|
||||
type="dict",
|
||||
options=dict(name=dict(type="str"), options=dict(type="dict")),
|
||||
),
|
||||
tmpfs_size=dict(type="str"),
|
||||
tmpfs_mode=dict(type="int"),
|
||||
),
|
||||
),
|
||||
configs=dict(
|
||||
type="list",
|
||||
elements="dict",
|
||||
options=dict(
|
||||
config_id=dict(type="str"),
|
||||
config_name=dict(type="str", required=True),
|
||||
filename=dict(type="str"),
|
||||
uid=dict(type="str"),
|
||||
gid=dict(type="str"),
|
||||
mode=dict(type="int"),
|
||||
),
|
||||
),
|
||||
secrets=dict(
|
||||
type="list",
|
||||
elements="dict",
|
||||
no_log=False,
|
||||
options=dict(
|
||||
secret_id=dict(type="str", no_log=False),
|
||||
secret_name=dict(type="str", required=True, no_log=False),
|
||||
filename=dict(type="str"),
|
||||
uid=dict(type="str"),
|
||||
gid=dict(type="str"),
|
||||
mode=dict(type="int"),
|
||||
),
|
||||
),
|
||||
networks=dict(type="list", elements="raw"),
|
||||
command=dict(type="raw"),
|
||||
args=dict(type="list", elements="str"),
|
||||
env=dict(type="raw"),
|
||||
env_files=dict(type="list", elements="path"),
|
||||
force_update=dict(type="bool", default=False),
|
||||
groups=dict(type="list", elements="str"),
|
||||
logging=dict(
|
||||
type="dict",
|
||||
options=dict(
|
||||
driver=dict(type="str"),
|
||||
options=dict(type="dict"),
|
||||
),
|
||||
),
|
||||
publish=dict(
|
||||
type="list",
|
||||
elements="dict",
|
||||
options=dict(
|
||||
published_port=dict(type="int", required=False),
|
||||
target_port=dict(type="int", required=True),
|
||||
protocol=dict(type="str", default="tcp", choices=["tcp", "udp"]),
|
||||
mode=dict(type="str", choices=["ingress", "host"]),
|
||||
),
|
||||
),
|
||||
placement=dict(
|
||||
type="dict",
|
||||
options=dict(
|
||||
constraints=dict(type="list", elements="str"),
|
||||
preferences=dict(type="list", elements="dict"),
|
||||
replicas_max_per_node=dict(type="int"),
|
||||
),
|
||||
),
|
||||
tty=dict(type="bool"),
|
||||
dns=dict(type="list", elements="str"),
|
||||
dns_search=dict(type="list", elements="str"),
|
||||
dns_options=dict(type="list", elements="str"),
|
||||
healthcheck=dict(
|
||||
type="dict",
|
||||
options=dict(
|
||||
test=dict(type="raw"),
|
||||
interval=dict(type="str"),
|
||||
timeout=dict(type="str"),
|
||||
start_period=dict(type="str"),
|
||||
retries=dict(type="int"),
|
||||
),
|
||||
),
|
||||
hostname=dict(type="str"),
|
||||
hosts=dict(type="dict"),
|
||||
labels=dict(type="dict"),
|
||||
container_labels=dict(type="dict"),
|
||||
sysctls=dict(type="dict"),
|
||||
mode=dict(
|
||||
type="str",
|
||||
default="replicated",
|
||||
choices=["replicated", "global", "replicated-job"],
|
||||
),
|
||||
replicas=dict(type="int", default=-1),
|
||||
endpoint_mode=dict(type="str", choices=["vip", "dnsrr"]),
|
||||
stop_grace_period=dict(type="str"),
|
||||
stop_signal=dict(type="str"),
|
||||
limits=dict(
|
||||
type="dict",
|
||||
options=dict(
|
||||
cpus=dict(type="float"),
|
||||
memory=dict(type="str"),
|
||||
),
|
||||
),
|
||||
read_only=dict(type="bool"),
|
||||
reservations=dict(
|
||||
type="dict",
|
||||
options=dict(
|
||||
cpus=dict(type="float"),
|
||||
memory=dict(type="str"),
|
||||
),
|
||||
),
|
||||
resolve_image=dict(type="bool", default=False),
|
||||
restart_config=dict(
|
||||
type="dict",
|
||||
options=dict(
|
||||
condition=dict(type="str", choices=["none", "on-failure", "any"]),
|
||||
delay=dict(type="str"),
|
||||
max_attempts=dict(type="int"),
|
||||
window=dict(type="str"),
|
||||
),
|
||||
),
|
||||
rollback_config=dict(
|
||||
type="dict",
|
||||
options=dict(
|
||||
parallelism=dict(type="int"),
|
||||
delay=dict(type="str"),
|
||||
failure_action=dict(type="str", choices=["continue", "pause"]),
|
||||
monitor=dict(type="str"),
|
||||
max_failure_ratio=dict(type="float"),
|
||||
order=dict(type="str"),
|
||||
),
|
||||
),
|
||||
update_config=dict(
|
||||
type="dict",
|
||||
options=dict(
|
||||
parallelism=dict(type="int"),
|
||||
delay=dict(type="str"),
|
||||
failure_action=dict(
|
||||
type="str", choices=["continue", "pause", "rollback"]
|
||||
),
|
||||
monitor=dict(type="str"),
|
||||
max_failure_ratio=dict(type="float"),
|
||||
order=dict(type="str"),
|
||||
),
|
||||
),
|
||||
user=dict(type="str"),
|
||||
working_dir=dict(type="str"),
|
||||
init=dict(type="bool"),
|
||||
cap_add=dict(type="list", elements="str"),
|
||||
cap_drop=dict(type="list", elements="str"),
|
||||
)
|
||||
},
|
||||
"no_copy": {"type": "bool"},
|
||||
"driver_config": {
|
||||
"type": "dict",
|
||||
"options": {"name": {"type": "str"}, "options": {"type": "dict"}},
|
||||
},
|
||||
"tmpfs_size": {"type": "str"},
|
||||
"tmpfs_mode": {"type": "int"},
|
||||
},
|
||||
},
|
||||
"configs": {
|
||||
"type": "list",
|
||||
"elements": "dict",
|
||||
"options": {
|
||||
"config_id": {"type": "str"},
|
||||
"config_name": {"type": "str", "required": True},
|
||||
"filename": {"type": "str"},
|
||||
"uid": {"type": "str"},
|
||||
"gid": {"type": "str"},
|
||||
"mode": {"type": "int"},
|
||||
},
|
||||
},
|
||||
"secrets": {
|
||||
"type": "list",
|
||||
"elements": "dict",
|
||||
"no_log": False,
|
||||
"options": {
|
||||
"secret_id": {"type": "str", "no_log": False},
|
||||
"secret_name": {"type": "str", "required": True, "no_log": False},
|
||||
"filename": {"type": "str"},
|
||||
"uid": {"type": "str"},
|
||||
"gid": {"type": "str"},
|
||||
"mode": {"type": "int"},
|
||||
},
|
||||
},
|
||||
"networks": {"type": "list", "elements": "raw"},
|
||||
"command": {"type": "raw"},
|
||||
"args": {"type": "list", "elements": "str"},
|
||||
"env": {"type": "raw"},
|
||||
"env_files": {"type": "list", "elements": "path"},
|
||||
"force_update": {"type": "bool", "default": False},
|
||||
"groups": {"type": "list", "elements": "str"},
|
||||
"logging": {
|
||||
"type": "dict",
|
||||
"options": {
|
||||
"driver": {"type": "str"},
|
||||
"options": {"type": "dict"},
|
||||
},
|
||||
},
|
||||
"publish": {
|
||||
"type": "list",
|
||||
"elements": "dict",
|
||||
"options": {
|
||||
"published_port": {"type": "int", "required": False},
|
||||
"target_port": {"type": "int", "required": True},
|
||||
"protocol": {
|
||||
"type": "str",
|
||||
"default": "tcp",
|
||||
"choices": ["tcp", "udp"],
|
||||
},
|
||||
"mode": {"type": "str", "choices": ["ingress", "host"]},
|
||||
},
|
||||
},
|
||||
"placement": {
|
||||
"type": "dict",
|
||||
"options": {
|
||||
"constraints": {"type": "list", "elements": "str"},
|
||||
"preferences": {"type": "list", "elements": "dict"},
|
||||
"replicas_max_per_node": {"type": "int"},
|
||||
},
|
||||
},
|
||||
"tty": {"type": "bool"},
|
||||
"dns": {"type": "list", "elements": "str"},
|
||||
"dns_search": {"type": "list", "elements": "str"},
|
||||
"dns_options": {"type": "list", "elements": "str"},
|
||||
"healthcheck": {
|
||||
"type": "dict",
|
||||
"options": {
|
||||
"test": {"type": "raw"},
|
||||
"interval": {"type": "str"},
|
||||
"timeout": {"type": "str"},
|
||||
"start_period": {"type": "str"},
|
||||
"retries": {"type": "int"},
|
||||
},
|
||||
},
|
||||
"hostname": {"type": "str"},
|
||||
"hosts": {"type": "dict"},
|
||||
"labels": {"type": "dict"},
|
||||
"container_labels": {"type": "dict"},
|
||||
"sysctls": {"type": "dict"},
|
||||
"mode": {
|
||||
"type": "str",
|
||||
"default": "replicated",
|
||||
"choices": ["replicated", "global", "replicated-job"],
|
||||
},
|
||||
"replicas": {"type": "int", "default": -1},
|
||||
"endpoint_mode": {"type": "str", "choices": ["vip", "dnsrr"]},
|
||||
"stop_grace_period": {"type": "str"},
|
||||
"stop_signal": {"type": "str"},
|
||||
"limits": {
|
||||
"type": "dict",
|
||||
"options": {
|
||||
"cpus": {"type": "float"},
|
||||
"memory": {"type": "str"},
|
||||
},
|
||||
},
|
||||
"read_only": {"type": "bool"},
|
||||
"reservations": {
|
||||
"type": "dict",
|
||||
"options": {
|
||||
"cpus": {"type": "float"},
|
||||
"memory": {"type": "str"},
|
||||
},
|
||||
},
|
||||
"resolve_image": {"type": "bool", "default": False},
|
||||
"restart_config": {
|
||||
"type": "dict",
|
||||
"options": {
|
||||
"condition": {"type": "str", "choices": ["none", "on-failure", "any"]},
|
||||
"delay": {"type": "str"},
|
||||
"max_attempts": {"type": "int"},
|
||||
"window": {"type": "str"},
|
||||
},
|
||||
},
|
||||
"rollback_config": {
|
||||
"type": "dict",
|
||||
"options": {
|
||||
"parallelism": {"type": "int"},
|
||||
"delay": {"type": "str"},
|
||||
"failure_action": {"type": "str", "choices": ["continue", "pause"]},
|
||||
"monitor": {"type": "str"},
|
||||
"max_failure_ratio": {"type": "float"},
|
||||
"order": {"type": "str"},
|
||||
},
|
||||
},
|
||||
"update_config": {
|
||||
"type": "dict",
|
||||
"options": {
|
||||
"parallelism": {"type": "int"},
|
||||
"delay": {"type": "str"},
|
||||
"failure_action": {
|
||||
"type": "str",
|
||||
"choices": ["continue", "pause", "rollback"],
|
||||
},
|
||||
"monitor": {"type": "str"},
|
||||
"max_failure_ratio": {"type": "float"},
|
||||
"order": {"type": "str"},
|
||||
},
|
||||
},
|
||||
"user": {"type": "str"},
|
||||
"working_dir": {"type": "str"},
|
||||
"init": {"type": "bool"},
|
||||
"cap_add": {"type": "list", "elements": "str"},
|
||||
"cap_drop": {"type": "list", "elements": "str"},
|
||||
}
|
||||
|
||||
option_minimal_versions = dict(
|
||||
dns=dict(docker_py_version="2.6.0"),
|
||||
dns_options=dict(docker_py_version="2.6.0"),
|
||||
dns_search=dict(docker_py_version="2.6.0"),
|
||||
endpoint_mode=dict(docker_py_version="3.0.0"),
|
||||
force_update=dict(docker_py_version="2.1.0"),
|
||||
healthcheck=dict(docker_py_version="2.6.0"),
|
||||
hostname=dict(docker_py_version="2.2.0"),
|
||||
hosts=dict(docker_py_version="2.6.0"),
|
||||
groups=dict(docker_py_version="2.6.0"),
|
||||
tty=dict(docker_py_version="2.4.0"),
|
||||
secrets=dict(docker_py_version="2.4.0"),
|
||||
configs=dict(docker_py_version="2.6.0", docker_api_version="1.30"),
|
||||
stop_signal=dict(docker_py_version="2.6.0", docker_api_version="1.28"),
|
||||
publish=dict(docker_py_version="3.0.0"),
|
||||
read_only=dict(docker_py_version="2.6.0", docker_api_version="1.28"),
|
||||
resolve_image=dict(docker_api_version="1.30", docker_py_version="3.2.0"),
|
||||
rollback_config=dict(docker_py_version="3.5.0", docker_api_version="1.28"),
|
||||
init=dict(docker_py_version="4.0.0", docker_api_version="1.37"),
|
||||
cap_add=dict(docker_py_version="5.0.3", docker_api_version="1.41"),
|
||||
cap_drop=dict(docker_py_version="5.0.3", docker_api_version="1.41"),
|
||||
sysctls=dict(docker_py_version="6.0.0", docker_api_version="1.40"),
|
||||
option_minimal_versions = {
|
||||
"dns": {"docker_py_version": "2.6.0"},
|
||||
"dns_options": {"docker_py_version": "2.6.0"},
|
||||
"dns_search": {"docker_py_version": "2.6.0"},
|
||||
"endpoint_mode": {"docker_py_version": "3.0.0"},
|
||||
"force_update": {"docker_py_version": "2.1.0"},
|
||||
"healthcheck": {"docker_py_version": "2.6.0"},
|
||||
"hostname": {"docker_py_version": "2.2.0"},
|
||||
"hosts": {"docker_py_version": "2.6.0"},
|
||||
"groups": {"docker_py_version": "2.6.0"},
|
||||
"tty": {"docker_py_version": "2.4.0"},
|
||||
"secrets": {"docker_py_version": "2.4.0"},
|
||||
"configs": {"docker_py_version": "2.6.0", "docker_api_version": "1.30"},
|
||||
"stop_signal": {"docker_py_version": "2.6.0", "docker_api_version": "1.28"},
|
||||
"publish": {"docker_py_version": "3.0.0"},
|
||||
"read_only": {"docker_py_version": "2.6.0", "docker_api_version": "1.28"},
|
||||
"resolve_image": {"docker_api_version": "1.30", "docker_py_version": "3.2.0"},
|
||||
"rollback_config": {"docker_py_version": "3.5.0", "docker_api_version": "1.28"},
|
||||
"init": {"docker_py_version": "4.0.0", "docker_api_version": "1.37"},
|
||||
"cap_add": {"docker_py_version": "5.0.3", "docker_api_version": "1.41"},
|
||||
"cap_drop": {"docker_py_version": "5.0.3", "docker_api_version": "1.41"},
|
||||
"sysctls": {"docker_py_version": "6.0.0", "docker_api_version": "1.40"},
|
||||
# specials
|
||||
publish_mode=dict(
|
||||
docker_py_version="3.0.0",
|
||||
detect_usage=_detect_publish_mode_usage,
|
||||
usage_msg="set publish.mode",
|
||||
),
|
||||
healthcheck_start_period=dict(
|
||||
docker_py_version="2.6.0",
|
||||
docker_api_version="1.29",
|
||||
detect_usage=_detect_healthcheck_start_period,
|
||||
usage_msg="set healthcheck.start_period",
|
||||
),
|
||||
update_config_max_failure_ratio=dict(
|
||||
docker_py_version="2.1.0",
|
||||
detect_usage=lambda c: (c.module.params["update_config"] or {}).get(
|
||||
"publish_mode": {
|
||||
"docker_py_version": "3.0.0",
|
||||
"detect_usage": _detect_publish_mode_usage,
|
||||
"usage_msg": "set publish.mode",
|
||||
},
|
||||
"healthcheck_start_period": {
|
||||
"docker_py_version": "2.6.0",
|
||||
"docker_api_version": "1.29",
|
||||
"detect_usage": _detect_healthcheck_start_period,
|
||||
"usage_msg": "set healthcheck.start_period",
|
||||
},
|
||||
"update_config_max_failure_ratio": {
|
||||
"docker_py_version": "2.1.0",
|
||||
"detect_usage": lambda c: (c.module.params["update_config"] or {}).get(
|
||||
"max_failure_ratio"
|
||||
)
|
||||
is not None,
|
||||
usage_msg="set update_config.max_failure_ratio",
|
||||
),
|
||||
update_config_failure_action=dict(
|
||||
docker_py_version="3.5.0",
|
||||
docker_api_version="1.28",
|
||||
detect_usage=_detect_update_config_failure_action_rollback,
|
||||
usage_msg="set update_config.failure_action.rollback",
|
||||
),
|
||||
update_config_monitor=dict(
|
||||
docker_py_version="2.1.0",
|
||||
detect_usage=lambda c: (c.module.params["update_config"] or {}).get(
|
||||
"usage_msg": "set update_config.max_failure_ratio",
|
||||
},
|
||||
"update_config_failure_action": {
|
||||
"docker_py_version": "3.5.0",
|
||||
"docker_api_version": "1.28",
|
||||
"detect_usage": _detect_update_config_failure_action_rollback,
|
||||
"usage_msg": "set update_config.failure_action.rollback",
|
||||
},
|
||||
"update_config_monitor": {
|
||||
"docker_py_version": "2.1.0",
|
||||
"detect_usage": lambda c: (c.module.params["update_config"] or {}).get(
|
||||
"monitor"
|
||||
)
|
||||
is not None,
|
||||
usage_msg="set update_config.monitor",
|
||||
),
|
||||
update_config_order=dict(
|
||||
docker_py_version="2.7.0",
|
||||
docker_api_version="1.29",
|
||||
detect_usage=lambda c: (c.module.params["update_config"] or {}).get("order")
|
||||
is not None,
|
||||
usage_msg="set update_config.order",
|
||||
),
|
||||
placement_config_preferences=dict(
|
||||
docker_py_version="2.4.0",
|
||||
docker_api_version="1.27",
|
||||
detect_usage=lambda c: (c.module.params["placement"] or {}).get(
|
||||
"preferences"
|
||||
)
|
||||
is not None,
|
||||
usage_msg="set placement.preferences",
|
||||
),
|
||||
placement_config_constraints=dict(
|
||||
docker_py_version="2.4.0",
|
||||
detect_usage=lambda c: (c.module.params["placement"] or {}).get(
|
||||
"constraints"
|
||||
)
|
||||
is not None,
|
||||
usage_msg="set placement.constraints",
|
||||
),
|
||||
placement_config_replicas_max_per_node=dict(
|
||||
docker_py_version="4.4.3",
|
||||
docker_api_version="1.40",
|
||||
detect_usage=lambda c: (c.module.params["placement"] or {}).get(
|
||||
"replicas_max_per_node"
|
||||
)
|
||||
is not None,
|
||||
usage_msg="set placement.replicas_max_per_node",
|
||||
),
|
||||
mounts_tmpfs=dict(
|
||||
docker_py_version="2.6.0",
|
||||
detect_usage=_detect_mount_tmpfs_usage,
|
||||
usage_msg="set mounts.tmpfs",
|
||||
),
|
||||
rollback_config_order=dict(
|
||||
docker_api_version="1.29",
|
||||
detect_usage=lambda c: (c.module.params["rollback_config"] or {}).get(
|
||||
"usage_msg": "set update_config.monitor",
|
||||
},
|
||||
"update_config_order": {
|
||||
"docker_py_version": "2.7.0",
|
||||
"docker_api_version": "1.29",
|
||||
"detect_usage": lambda c: (c.module.params["update_config"] or {}).get(
|
||||
"order"
|
||||
)
|
||||
is not None,
|
||||
usage_msg="set rollback_config.order",
|
||||
),
|
||||
mode_replicated_job=dict(
|
||||
docker_py_version="6.0.0",
|
||||
docker_api_version="1.41",
|
||||
detect_usage=lambda c: c.module.params.get("mode") == "replicated-job",
|
||||
usage_msg="set mode",
|
||||
),
|
||||
)
|
||||
"usage_msg": "set update_config.order",
|
||||
},
|
||||
"placement_config_preferences": {
|
||||
"docker_py_version": "2.4.0",
|
||||
"docker_api_version": "1.27",
|
||||
"detect_usage": lambda c: (c.module.params["placement"] or {}).get(
|
||||
"preferences"
|
||||
)
|
||||
is not None,
|
||||
"usage_msg": "set placement.preferences",
|
||||
},
|
||||
"placement_config_constraints": {
|
||||
"docker_py_version": "2.4.0",
|
||||
"detect_usage": lambda c: (c.module.params["placement"] or {}).get(
|
||||
"constraints"
|
||||
)
|
||||
is not None,
|
||||
"usage_msg": "set placement.constraints",
|
||||
},
|
||||
"placement_config_replicas_max_per_node": {
|
||||
"docker_py_version": "4.4.3",
|
||||
"docker_api_version": "1.40",
|
||||
"detect_usage": lambda c: (c.module.params["placement"] or {}).get(
|
||||
"replicas_max_per_node"
|
||||
)
|
||||
is not None,
|
||||
"usage_msg": "set placement.replicas_max_per_node",
|
||||
},
|
||||
"mounts_tmpfs": {
|
||||
"docker_py_version": "2.6.0",
|
||||
"detect_usage": _detect_mount_tmpfs_usage,
|
||||
"usage_msg": "set mounts.tmpfs",
|
||||
},
|
||||
"rollback_config_order": {
|
||||
"docker_api_version": "1.29",
|
||||
"detect_usage": lambda c: (c.module.params["rollback_config"] or {}).get(
|
||||
"order"
|
||||
)
|
||||
is not None,
|
||||
"usage_msg": "set rollback_config.order",
|
||||
},
|
||||
"mode_replicated_job": {
|
||||
"docker_py_version": "6.0.0",
|
||||
"docker_api_version": "1.41",
|
||||
"detect_usage": lambda c: c.module.params.get("mode") == "replicated-job",
|
||||
"usage_msg": "set mode",
|
||||
},
|
||||
}
|
||||
required_if = [("state", "present", ["image"])]
|
||||
|
||||
client = AnsibleDockerClient(
|
||||
@@ -2928,16 +2940,16 @@ def main():
|
||||
dsm = DockerServiceManager(client)
|
||||
msg, changed, rebuilt, changes, facts = dsm.run_safe()
|
||||
|
||||
results = dict(
|
||||
msg=msg,
|
||||
changed=changed,
|
||||
rebuilt=rebuilt,
|
||||
changes=changes,
|
||||
swarm_service=facts,
|
||||
)
|
||||
results = {
|
||||
"msg": msg,
|
||||
"changed": changed,
|
||||
"rebuilt": rebuilt,
|
||||
"changes": changes,
|
||||
"swarm_service": facts,
|
||||
}
|
||||
if client.module._diff:
|
||||
before, after = dsm.diff_tracker.get_before_after()
|
||||
results["diff"] = dict(before=before, after=after)
|
||||
results["diff"] = {"before": before, "after": after}
|
||||
|
||||
client.module.exit_json(**results)
|
||||
except DockerException as e:
|
||||
|
||||
Reference in New Issue
Block a user