--- #################################################################### # WARNING: These are designed specifically for Ansible tests # # and should not be used as examples of how to write Ansible roles # #################################################################### - block: - name: Create random container name set_fact: cname: "{{ 'ansible-test-%0x' % ((2**32) | random) }}" - name: Make sure container is not there docker_container: name: "{{ cname }}" state: absent force_kill: yes - name: Inspect a non-present container docker_container_info: name: "{{ cname }}" register: result - assert: that: - "not result.exists" - "'container' in result" - "result.container is none" - name: Make sure container exists docker_container: name: "{{ cname }}" image: "{{ docker_test_image_alpine }}" command: '/bin/sh -c "sleep 10m"' state: started force_kill: yes - name: Inspect a present container docker_container_info: name: "{{ cname }}" register: result - name: Dump docker_container_info result debug: var=result - name: "Comparison: use 'docker inspect'" command: docker inspect "{{ cname }}" register: docker_inspect ignore_errors: yes - block: - set_fact: docker_inspect_result: "{{ docker_inspect.stdout | from_json }}" - name: Dump docker inspect result debug: var=docker_inspect_result when: docker_inspect is not failed - assert: that: - result.exists - "'container' in result" - "result.container" - assert: that: - "result.container == docker_inspect_result[0]" when: docker_inspect is not failed - assert: that: - "'is too new. Maximum supported API version is' in docker_inspect.stderr" when: docker_inspect is failed always: - name: Cleanup docker_container: name: "{{ cname }}" state: absent force_kill: yes when: docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.20', '>=') - fail: msg="Too old docker / docker-py version to run docker_container_info tests!" when: not(docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.20', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)