summaryrefslogtreecommitdiff
path: root/test/integration/targets/docker_image
diff options
context:
space:
mode:
authorFelix Fontein <felix@fontein.de>2018-10-26 02:51:41 +0200
committerJordan Borean <jborean93@gmail.com>2018-10-26 10:51:41 +1000
commitf19ab56eb4842674cefd169a281e0cd4e3758b5e (patch)
tree8d33c9b101746a832f4873761faabb98d86f83ec /test/integration/targets/docker_image
parent300db3af848b1e5865496ced48a74b7736d68e23 (diff)
downloadansible-f19ab56eb4842674cefd169a281e0cd4e3758b5e.tar.gz
docker_image, docker_image_facts, docker_volume: add basic integration tests (#47383)
* Add docker_image_facts tests. * Add basic integration test for docker_volume. * Add basic docker_image tests. * Only start test registry when tests are actually run (i.e. not on CentOS 6).
Diffstat (limited to 'test/integration/targets/docker_image')
-rw-r--r--test/integration/targets/docker_image/aliases4
-rw-r--r--test/integration/targets/docker_image/meta/main.yml3
-rw-r--r--test/integration/targets/docker_image/tasks/main.yml51
-rw-r--r--test/integration/targets/docker_image/tasks/run-test.yml3
-rw-r--r--test/integration/targets/docker_image/tasks/tests/basic.yml107
5 files changed, 168 insertions, 0 deletions
diff --git a/test/integration/targets/docker_image/aliases b/test/integration/targets/docker_image/aliases
new file mode 100644
index 0000000000..2b3832dde5
--- /dev/null
+++ b/test/integration/targets/docker_image/aliases
@@ -0,0 +1,4 @@
+shippable/posix/group2
+skip/osx
+skip/freebsd
+destructive
diff --git a/test/integration/targets/docker_image/meta/main.yml b/test/integration/targets/docker_image/meta/main.yml
new file mode 100644
index 0000000000..07da8c6dda
--- /dev/null
+++ b/test/integration/targets/docker_image/meta/main.yml
@@ -0,0 +1,3 @@
+---
+dependencies:
+ - setup_docker
diff --git a/test/integration/targets/docker_image/tasks/main.yml b/test/integration/targets/docker_image/tasks/main.yml
new file mode 100644
index 0000000000..e9c53b4543
--- /dev/null
+++ b/test/integration/targets/docker_image/tasks/main.yml
@@ -0,0 +1,51 @@
+---
+- name: Create random name prefix and test registry name
+ set_fact:
+ name_prefix: "{{ 'ansible-test-%0x' % ((2**32) | random) }}"
+ registry_name: "{{ 'ansible-test-registry-%0x' % ((2**32) | random) }}"
+- name: Create image and container list
+ set_fact:
+ inames: []
+ cnames:
+ - "{{ registry_name }}"
+
+- debug:
+ msg: "Using name prefix {{ name_prefix }} and test registry name {{ registry_name }}"
+
+- block:
+ - name: Start test registry
+ docker_container:
+ name: "{{ registry_name }}"
+ image: registry:2.6.1
+ ports: 5000
+
+ - name: Get registry URL
+ set_fact:
+ registry_address: "localhost:{{ docker_container.NetworkSettings.Ports['5000/tcp'].0.HostPort }}"
+
+ - debug: msg="Registry available under {{ registry_address }}"
+
+ - include_tasks: run-test.yml
+ with_fileglob:
+ - "tests/*.yml"
+
+ always:
+ - name: "Make sure all images are removed"
+ docker_image:
+ name: "{{ item }}"
+ state: absent
+ with_items: "{{ inames }}"
+ - name: "Get registry logs"
+ command: "docker logs {{ registry_name }}"
+ register: registry_logs
+ - name: "Printing registry logs"
+ debug: var=registry_logs.stdout_lines
+ - name: "Make sure all containers are removed"
+ docker_container:
+ name: "{{ item }}"
+ state: absent
+ stop_timeout: 1
+ with_items: "{{ cnames }}"
+
+ # Skip for CentOS 6
+ when: ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6
diff --git a/test/integration/targets/docker_image/tasks/run-test.yml b/test/integration/targets/docker_image/tasks/run-test.yml
new file mode 100644
index 0000000000..a299937014
--- /dev/null
+++ b/test/integration/targets/docker_image/tasks/run-test.yml
@@ -0,0 +1,3 @@
+---
+- name: "Loading tasks from {{ item }}"
+ include_tasks: "{{ item }}"
diff --git a/test/integration/targets/docker_image/tasks/tests/basic.yml b/test/integration/targets/docker_image/tasks/tests/basic.yml
new file mode 100644
index 0000000000..b09c4fbba1
--- /dev/null
+++ b/test/integration/targets/docker_image/tasks/tests/basic.yml
@@ -0,0 +1,107 @@
+---
+####################################################################
+## basic ###########################################################
+####################################################################
+
+- name: Make sure image is not there
+ docker_image:
+ name: "hello-world:latest"
+ state: absent
+ register: absent_1
+
+- name: Make sure image is not there (idempotency)
+ docker_image:
+ name: "hello-world:latest"
+ state: absent
+ register: absent_2
+
+- assert:
+ that:
+ - absent_2 is not changed
+
+- name: Make sure image is there
+ docker_image:
+ name: "hello-world:latest"
+ state: present
+ pull: no
+ register: present_1
+
+- name: Make sure image is there (idempotent)
+ docker_image:
+ name: "hello-world:latest"
+ state: present
+ pull: yes
+ register: present_2
+
+- assert:
+ that:
+ - present_1 is changed
+ - present_2 is not changed
+
+####################################################################
+## interact with test registry #####################################
+####################################################################
+
+- name: Make sure image is not there
+ docker_image:
+ name: "{{ registry_address }}/test/hello-world:latest"
+ state: absent
+
+- name: Push image to test registry
+ docker_image:
+ name: "hello-world:latest"
+ repository: "{{ registry_address }}/test/hello-world"
+ push: yes
+ register: push_1
+
+- name: Push image to test registry (idempotent)
+ docker_image:
+ name: "hello-world:latest"
+ repository: "{{ registry_address }}/test/hello-world"
+ push: yes
+ register: push_2
+
+- assert:
+ that:
+ - push_1 is changed
+ - push_2 is not changed
+
+- name: Get facts of local image
+ docker_image_facts:
+ name: "{{ registry_address }}/test/hello-world:latest"
+ register: facts_1
+
+- name: Make sure image is not there
+ docker_image:
+ name: "{{ registry_address }}/test/hello-world:latest"
+ state: absent
+
+- name: Get facts of local image (absent)
+ docker_image_facts:
+ name: "{{ registry_address }}/test/hello-world:latest"
+ register: facts_2
+
+- name: Pull image from test registry
+ docker_image:
+ name: "{{ registry_address }}/test/hello-world:latest"
+ state: present
+ register: pull_1
+
+- name: Pull image from test registry (idempotency)
+ docker_image:
+ name: "{{ registry_address }}/test/hello-world:latest"
+ state: present
+ register: pull_2
+
+- name: Get facts of local image (present)
+ docker_image_facts:
+ name: "{{ registry_address }}/test/hello-world:latest"
+ register: facts_3
+
+- assert:
+ that:
+ - pull_1 is changed
+ - pull_2 is not changed
+ - facts_1.images | length == 1
+ - facts_2.images | length == 0
+ - facts_3.images | length == 1