mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-08-22 22:11:44 -07:00
Docker common consolidation (#49707)
* [docker] Consolidating Python Boolean conversion for Docker API (#49563) * [docker] Consolidating docker option min version checks (#49564) * [docker] Moving option min version checks out of docker_swarm (#49564) Also renaming Boolean cleanup function and fixing docker_container minimum version check for network interfaces. * Cleanup from PR feedback
This commit is contained in:
parent
8fcf9e1a28
commit
b67719ba1d
5 changed files with 132 additions and 227 deletions
|
@ -176,28 +176,12 @@ from distutils.version import LooseVersion
|
|||
from ansible.module_utils.docker_common import AnsibleDockerClient
|
||||
|
||||
try:
|
||||
from ansible.module_utils.docker_common import docker_version
|
||||
from ansible.module_utils.docker_common import docker_version, clean_dict_booleans_for_docker_api
|
||||
except Exception as dummy:
|
||||
# missing docker-py handled in ansible.module_utils.docker
|
||||
pass
|
||||
|
||||
|
||||
def get_filters(module, name):
|
||||
result = dict()
|
||||
filters = module.params.get(name)
|
||||
if filters is not None:
|
||||
for k, v in filters.items():
|
||||
# Go doesn't like 'True' or 'False'
|
||||
if v is True:
|
||||
v = 'true'
|
||||
elif v is False:
|
||||
v = 'false'
|
||||
else:
|
||||
v = str(v)
|
||||
result[str(k)] = v
|
||||
return result
|
||||
|
||||
|
||||
def main():
|
||||
argument_spec = dict(
|
||||
containers=dict(type='bool', default=False),
|
||||
|
@ -227,24 +211,24 @@ def main():
|
|||
result = dict()
|
||||
|
||||
if client.module.params['containers']:
|
||||
filters = get_filters(client.module, 'containers_filters')
|
||||
filters = clean_dict_booleans_for_docker_api(client.module.params.get('containers_filters'))
|
||||
res = client.prune_containers(filters=filters)
|
||||
result['containers'] = res.get('ContainersDeleted') or []
|
||||
result['containers_space_reclaimed'] = res['SpaceReclaimed']
|
||||
|
||||
if client.module.params['images']:
|
||||
filters = get_filters(client.module, 'images_filters')
|
||||
filters = clean_dict_booleans_for_docker_api(client.module.params.get('images_filters'))
|
||||
res = client.prune_images(filters=filters)
|
||||
result['images'] = res.get('ImagesDeleted') or []
|
||||
result['images_space_reclaimed'] = res['SpaceReclaimed']
|
||||
|
||||
if client.module.params['networks']:
|
||||
filters = get_filters(client.module, 'networks_filters')
|
||||
filters = clean_dict_booleans_for_docker_api(client.module.params.get('networks_filters'))
|
||||
res = client.prune_networks(filters=filters)
|
||||
result['networks'] = res.get('NetworksDeleted') or []
|
||||
|
||||
if client.module.params['volumes']:
|
||||
filters = get_filters(client.module, 'volumes_filters')
|
||||
filters = clean_dict_booleans_for_docker_api(client.module.params.get('volumes_filters'))
|
||||
res = client.prune_volumes(filters=filters)
|
||||
result['volumes'] = res.get('VolumesDeleted') or []
|
||||
result['volumes_space_reclaimed'] = res['SpaceReclaimed']
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue