ansible/test/integration/targets/docker_prune/tasks/main.yml
Felix Fontein 3bb41ccb8e docker_* tests: check API version (#48620)
* 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.
2018-11-19 10:01:40 +00:00

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)