mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
3bb41ccb8e
* Check minimal API and docker-py versions for all docker_* tests. * Improve docker_swarm creation/destruction for tests. * Fail when conditions aren't met. * Don't hardcode address for advertise_addr.
62 lines
1.8 KiB
YAML
62 lines
1.8 KiB
YAML
---
|
|
- name: Create random names
|
|
set_fact:
|
|
cname: "{{ 'ansible-container-%0x' % ((2**32) | random) }}"
|
|
nname: "{{ 'ansible-network-%0x' % ((2**32) | random) }}"
|
|
vname: "{{ 'ansible-volume-%0x' % ((2**32) | random) }}"
|
|
|
|
- block:
|
|
# Create objects to be pruned
|
|
- docker_container:
|
|
name: "{{ cname }}"
|
|
image: hello-world
|
|
state: present
|
|
register: container
|
|
- docker_network:
|
|
name: "{{ nname }}"
|
|
state: present
|
|
register: network
|
|
- docker_volume:
|
|
name: "{{ vname }}"
|
|
state: present
|
|
register: volume
|
|
|
|
# Prune objects
|
|
- docker_prune:
|
|
containers: yes
|
|
images: yes
|
|
networks: yes
|
|
volumes: yes
|
|
builder_cache: "{{ docker_py_version is version('3.3.0', '>=') }}"
|
|
register: result
|
|
|
|
# Analyze result
|
|
- debug: var=result
|
|
- assert:
|
|
that:
|
|
# containers
|
|
- container.ansible_facts.docker_container.Id in result.containers
|
|
- "'containers_space_reclaimed' in result"
|
|
# images
|
|
- "'images_space_reclaimed' in result"
|
|
# networks
|
|
- network.ansible_facts.docker_network.Name in result.networks
|
|
# volumes
|
|
- volume.ansible_facts.docker_volume.Name in result.volumes
|
|
- "'volumes_space_reclaimed' in result"
|
|
# builder_cache
|
|
- "'builder_cache_space_reclaimed' in result"
|
|
|
|
# Test with filters
|
|
- docker_prune:
|
|
images: yes
|
|
images_filters:
|
|
dangling: true
|
|
register: result
|
|
|
|
- debug: var=result
|
|
|
|
when: docker_py_version is version('2.1.0', '>=') and docker_api_version is version('1.25', '>=')
|
|
|
|
- fail: msg="Too old docker / docker-py version to run docker_prune tests!"
|
|
when: not(docker_py_version is version('2.1.0', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
|