summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorPiotr Wojciechowski <23406016+WojciechowskiPiotr@users.noreply.github.com>2019-02-21 06:21:59 +0100
committeransibot <ansibot@users.noreply.github.com>2019-02-21 00:21:59 -0500
commit995c4bf02ea832ad2ff614ff2e8628a3635995a5 (patch)
tree66e9dae15bb275f81b2ec72cf7656790e155b5f8 /test
parentd6ef07ca45f645a5843c43f60fa4ccbd3a85aaa6 (diff)
downloadansible-995c4bf02ea832ad2ff614ff2e8628a3635995a5.tar.gz
Integration tests for docker_host_facts module (#52487)
* Integration tests for docker_host_facts * Integration tests for docker_host_facts (update to cover #52432 fix) * Integration tests for docker_host_facts updates after review * Integration tests for docker_host_facts updates after review * Integration tests for docker_host_facts updates after review * Integration tests for docker_host_facts - adding comments and integrated test for all options combined together * Integration tests for docker_host_facts - small code improvement * Adjusting variable name
Diffstat (limited to 'test')
-rw-r--r--test/integration/targets/docker_host_facts/aliases5
-rw-r--r--test/integration/targets/docker_host_facts/meta/main.yml3
-rw-r--r--test/integration/targets/docker_host_facts/tasks/main.yml5
-rw-r--r--test/integration/targets/docker_host_facts/tasks/test_host_facts.yml274
4 files changed, 287 insertions, 0 deletions
diff --git a/test/integration/targets/docker_host_facts/aliases b/test/integration/targets/docker_host_facts/aliases
new file mode 100644
index 0000000000..80f0500dff
--- /dev/null
+++ b/test/integration/targets/docker_host_facts/aliases
@@ -0,0 +1,5 @@
+shippable/posix/group2
+skip/osx
+skip/freebsd
+destructive
+skip/rhel8.0
diff --git a/test/integration/targets/docker_host_facts/meta/main.yml b/test/integration/targets/docker_host_facts/meta/main.yml
new file mode 100644
index 0000000000..07da8c6dda
--- /dev/null
+++ b/test/integration/targets/docker_host_facts/meta/main.yml
@@ -0,0 +1,3 @@
+---
+dependencies:
+ - setup_docker
diff --git a/test/integration/targets/docker_host_facts/tasks/main.yml b/test/integration/targets/docker_host_facts/tasks/main.yml
new file mode 100644
index 0000000000..4d56750d0a
--- /dev/null
+++ b/test/integration/targets/docker_host_facts/tasks/main.yml
@@ -0,0 +1,5 @@
+- include_tasks: test_host_facts.yml
+ when: docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.21', '>=')
+
+- fail: msg="Too old docker / docker-py version to run docker_swarm_facts tests!"
+ when: not(docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.21', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
diff --git a/test/integration/targets/docker_host_facts/tasks/test_host_facts.yml b/test/integration/targets/docker_host_facts/tasks/test_host_facts.yml
new file mode 100644
index 0000000000..b3255ae1bb
--- /dev/null
+++ b/test/integration/targets/docker_host_facts/tasks/test_host_facts.yml
@@ -0,0 +1,274 @@
+---
+- name: Create random container/volume name
+ set_fact:
+ cname: "{{ 'ansible-test-%0x' % ((2**32) | random) }}"
+ vname: "{{ 'ansible-test-%0x' % ((2**32) | random) }}"
+
+- debug:
+ msg: "Using container name '{{ cname }}' and volume name '{{ vname }}'"
+
+- block:
+ - name: Get info on Docker host
+ docker_host_facts:
+ register: output
+
+ - name: assert reading docker host facts when docker is running
+ assert:
+ that:
+ - 'output.docker_host_facts.Name is string'
+ - 'output.docker_containers_list is not defined'
+ - 'output.docker_networks_list is not defined'
+ - 'output.docker_volumes_list is not defined'
+ - 'output.docker_images_list is not defined'
+ - 'output.docker_disk_usage is not defined'
+
+# Container and volume are created so that all lists are non-empty:
+# * container and volume lists are non-emtpy because of the created objects;
+# * image list is non-empty because the image of the container is there;
+# * network list is always non-empty (default networks).
+ - name: Create container
+ docker_container:
+ image: alpine:3.8
+ command: '/bin/sh -c "sleep 10m"'
+ name: "{{ cname }}"
+ state: started
+ register: container_output
+
+ - assert:
+ that:
+ - container_output is changed
+
+ - name: Create a volume
+ docker_volume:
+ name: "{{ vname }}"
+ register: volume_output
+
+ - assert:
+ that:
+ - volume_output is changed
+
+ - name: Get info on Docker host and list containers
+ docker_host_facts:
+ containers: yes
+ register: output
+
+ - name: assert reading docker host facts when docker is running and list containers
+ assert:
+ that:
+ - 'output.docker_host_facts.Name is string'
+ - 'output.docker_networks_list is not defined'
+ - 'output.docker_volumes_list is not defined'
+ - 'output.docker_images_list is not defined'
+ - 'output.docker_disk_usage is not defined'
+ - 'output.docker_containers_list[0].Image is string'
+ - 'output.docker_containers_list[0].ImageID is not defined'
+
+ - name: Get info on Docker host and list containers with verbose output
+ docker_host_facts:
+ containers: yes
+ verbose_output: yes
+ register: output
+
+ - name: assert reading docker host facts when docker is running and list containers with verbose output
+ assert:
+ that:
+ - 'output.docker_host_facts.Name is string'
+ - 'output.docker_networks_list is not defined'
+ - 'output.docker_volumes_list is not defined'
+ - 'output.docker_images_list is not defined'
+ - 'output.docker_disk_usage is not defined'
+ - 'output.docker_containers_list[0].Image is string'
+ - 'output.docker_containers_list[0].ImageID is string'
+
+ - name: Get info on Docker host and list images
+ docker_host_facts:
+ images: yes
+ register: output
+
+ - name: assert reading docker host facts when docker is running and list images
+ assert:
+ that:
+ - 'output.docker_host_facts.Name is string'
+ - 'output.docker_containers_list is not defined'
+ - 'output.docker_networks_list is not defined'
+ - 'output.docker_volumes_list is not defined'
+ - 'output.docker_images_list[0].Id is string'
+ - 'output.docker_images_list[0].ParentId is not defined'
+ - 'output.docker_disk_usage is not defined'
+
+ - name: Get info on Docker host and list images with verbose output
+ docker_host_facts:
+ images: yes
+ verbose_output: yes
+ register: output
+
+ - name: assert reading docker host facts when docker is running and list images with verbose output
+ assert:
+ that:
+ - 'output.docker_host_facts.Name is string'
+ - 'output.docker_containers_list is not defined'
+ - 'output.docker_networks_list is not defined'
+ - 'output.docker_volumes_list is not defined'
+ - 'output.docker_images_list[0].Id is string'
+ - 'output.docker_images_list[0].ParentId is string'
+ - 'output.docker_disk_usage is not defined'
+
+ - name: Get info on Docker host and list networks
+ docker_host_facts:
+ networks: yes
+ register: output
+
+ - name: assert reading docker host facts when docker is running and list networks
+ assert:
+ that:
+ - 'output.docker_host_facts.Name is string'
+ - 'output.docker_containers_list is not defined'
+ - 'output.docker_networks_list[0].Id is string'
+ - 'output.docker_networks_list[0].Created is not defined'
+ - 'output.docker_volumes_list is not defined'
+ - 'output.docker_images_list is not defined'
+ - 'output.docker_disk_usage is not defined'
+
+ - name: Get info on Docker host and list networks with verbose output
+ docker_host_facts:
+ networks: yes
+ verbose_output: yes
+ register: output
+
+ - name: assert reading docker host facts when docker is running and list networks with verbose output
+ assert:
+ that:
+ - 'output.docker_host_facts.Name is string'
+ - 'output.docker_containers_list is not defined'
+ - 'output.docker_networks_list[0].Id is string'
+ - 'output.docker_networks_list[0].Created is string'
+ - 'output.docker_volumes_list is not defined'
+ - 'output.docker_images_list is not defined'
+ - 'output.docker_disk_usage is not defined'
+
+ - name: Get info on Docker host and list volumes
+ docker_host_facts:
+ volumes: yes
+ register: output
+
+ - name: assert reading docker host facts when docker is running and list volumes
+ assert:
+ that:
+ - 'output.docker_host_facts.Name is string'
+ - 'output.docker_containers_list is not defined'
+ - 'output.docker_networks_list is not defined'
+ - 'output.docker_volumes_list[0].Name is string'
+ - 'output.docker_volumes_list[0].Mountpoint is not defined'
+ - 'output.docker_images_list is not defined'
+ - 'output.docker_disk_usage is not defined'
+
+ - name: Get info on Docker host and list volumes with verbose output
+ docker_host_facts:
+ volumes: yes
+ verbose_output: yes
+ register: output
+
+ - name: assert reading docker host facts when docker is running and list volumes with verbose output
+ assert:
+ that:
+ - 'output.docker_host_facts.Name is string'
+ - 'output.docker_containers_list is not defined'
+ - 'output.docker_networks_list is not defined'
+ - 'output.docker_volumes_list[0].Name is string'
+ - 'output.docker_volumes_list[0].Mountpoint is string'
+ - 'output.docker_images_list is not defined'
+ - 'output.docker_disk_usage is not defined'
+
+ - name: Get info on Docker host and get disk usage
+ docker_host_facts:
+ disk_usage: yes
+ register: output
+
+ - name: assert reading docker host facts when docker is running and get disk usage
+ assert:
+ that:
+ - 'output.docker_host_facts.Name is string'
+ - 'output.docker_containers_list is not defined'
+ - 'output.docker_networks_list is not defined'
+ - 'output.docker_volumes_list is not defined'
+ - 'output.docker_images_list is not defined'
+ - 'output.docker_disk_usage.LayersSize is number'
+ - 'output.docker_disk_usage.BuilderSize is not defined'
+
+ - name: Get info on Docker host and get disk usage with verbose output
+ docker_host_facts:
+ disk_usage: yes
+ verbose_output: yes
+ register: output
+
+ - name: assert reading docker host facts when docker is running and get disk usage with verbose output
+ assert:
+ that:
+ - 'output.docker_host_facts.Name is string'
+ - 'output.docker_containers_list is not defined'
+ - 'output.docker_networks_list is not defined'
+ - 'output.docker_volumes_list is not defined'
+ - 'output.docker_images_list is not defined'
+ - 'output.docker_disk_usage.LayersSize is number'
+ - 'output.docker_disk_usage.BuilderSize is number'
+
+ - name: Get info on Docker host, disk usage and get all lists together
+ docker_host_facts:
+ volumes: yes
+ containers: yes
+ networks: yes
+ images: yes
+ disk_usage: yes
+ register: output
+
+ - name: assert reading docker host facts when docker is running, disk usage and get lists together
+ assert:
+ that:
+ - 'output.docker_host_facts.Name is string'
+ - 'output.docker_containers_list[0].Image is string'
+ - 'output.docker_containers_list[0].ImageID is not defined'
+ - 'output.docker_networks_list[0].Id is string'
+ - 'output.docker_networks_list[0].Created is not defined'
+ - 'output.docker_volumes_list[0].Name is string'
+ - 'output.docker_volumes_list[0].Mountpoint is not defined'
+ - 'output.docker_images_list[0].Id is string'
+ - 'output.docker_images_list[0].ParentId is not defined'
+ - 'output.docker_disk_usage.LayersSize is number'
+ - 'output.docker_disk_usage.BuilderSize is not defined'
+
+ - name: Get info on Docker host, disk usage and get all lists together with verbose output
+ docker_host_facts:
+ volumes: yes
+ containers: yes
+ networks: yes
+ images: yes
+ disk_usage: yes
+ verbose_output: yes
+ register: output
+
+ - name: assert reading docker host facts when docker is running and get disk usage with verbose output
+ assert:
+ that:
+ - 'output.docker_host_facts.Name is string'
+ - 'output.docker_containers_list[0].Image is string'
+ - 'output.docker_containers_list[0].ImageID is string'
+ - 'output.docker_networks_list[0].Id is string'
+ - 'output.docker_networks_list[0].Created is string'
+ - 'output.docker_volumes_list[0].Name is string'
+ - 'output.docker_volumes_list[0].Mountpoint is string'
+ - 'output.docker_images_list[0].Id is string'
+ - 'output.docker_images_list[0].ParentId is string'
+ - 'output.docker_disk_usage.LayersSize is number'
+ - 'output.docker_disk_usage.BuilderSize is number'
+
+ always:
+ - name: Delete container
+ docker_container:
+ name: "{{ cname }}"
+ state: absent
+ force_kill: yes
+
+ - name: Delete volume
+ docker_volume:
+ name: "{{ vname }}"
+ state: absent