Add docker_volume_facts module (#49692)

* Add docker_volume_facts module.

* Fix type confusion.

* Improve tests.
This commit is contained in:
Felix Fontein
2018-12-10 06:41:46 +01:00
committed by Will Thames
parent 36e3edff50
commit aec98b6aab
7 changed files with 204 additions and 5 deletions

View File

@@ -19,7 +19,7 @@
that:
- "not result.exists"
- "'docker_container' in result"
- "not result.docker_container"
- "result.docker_container is none"
- name: Make sure container exists
docker_container:

View File

@@ -0,0 +1,5 @@
shippable/posix/group2
skip/osx
skip/freebsd
destructive
skip/rhel8.0

View File

@@ -0,0 +1,3 @@
---
dependencies:
- setup_docker

View File

@@ -0,0 +1,60 @@
---
- block:
- name: Create random volume name
set_fact:
cname: "{{ 'ansible-test-%0x' % ((2**32) | random) }}"
- name: Make sure volume is not there
docker_volume:
name: "{{ cname }}"
state: absent
force: yes
- name: Inspect a non-present volume
docker_volume_facts:
name: "{{ cname }}"
register: result
- assert:
that:
- "not result.exists"
- "'docker_volume' in result"
- "result.docker_volume is none"
- name: Make sure volume exists
docker_volume:
name: "{{ cname }}"
- name: Inspect a present volume
docker_volume_facts:
name: "{{ cname }}"
register: result
- name: Dump docker_volume_facts result
debug: var=result
- name: "Comparison: use 'docker volume inspect'"
command: docker volume inspect "{{ cname }}"
register: docker_volume_inspect
- set_fact:
docker_volume_inspect_result: "{{ docker_volume_inspect.stdout | from_json }}"
- name: Dump docker volume inspect result
debug: var=docker_volume_inspect_result
- name: Cleanup
docker_volume:
name: "{{ cname }}"
state: absent
force: yes
- assert:
that:
- result.exists
- "'docker_volume' in result"
- "result.docker_volume"
- "result.docker_volume == docker_volume_inspect_result[0]"
# Requirements for docker_volume
when: docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.24', '>=')
- fail: msg="Too old docker / docker-py version to run docker_volume_facts tests!"
when: not(docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.24', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)