--- #################################################################### # WARNING: These are designed specifically for Ansible tests # # and should not be used as examples of how to write Ansible roles # #################################################################### - 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: "{{ docker_test_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.container.Id in result.containers - "'containers_space_reclaimed' in result" # images - "'images_space_reclaimed' in result" # networks - network.network.Name in result.networks # volumes - volume.volume.Name in result.volumes - "'volumes_space_reclaimed' in result" # builder_cache - "'builder_cache_space_reclaimed' in result or docker_py_version is version('3.3.0', '<')" - "'builder_cache_space_reclaimed' not in result or docker_py_version is version('3.3.0', '>=')" # 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)