b0b00b555f
* Add support for timeout while waiting for state. * Allow to limit removal wait time. * Add changelog. * Forgot version_added. * Add some check mode tests. * Use removal_wait_timeout in tests.
455 lines
11 KiB
YAML
455 lines
11 KiB
YAML
---
|
|
- name: Registering container name
|
|
set_fact:
|
|
cname: "{{ cname_prefix ~ '-hi' }}"
|
|
- name: Registering container name
|
|
set_fact:
|
|
cnames: "{{ cnames + [cname] }}"
|
|
|
|
####################################################################
|
|
## Creation ########################################################
|
|
####################################################################
|
|
|
|
- name: Create container (check)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: present
|
|
check_mode: yes
|
|
register: create_1
|
|
|
|
- name: Create container
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: present
|
|
register: create_2
|
|
|
|
- name: Create container (idempotent)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: present
|
|
register: create_3
|
|
|
|
- name: Create container (idempotent check)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: present
|
|
check_mode: yes
|
|
register: create_4
|
|
|
|
- assert:
|
|
that:
|
|
- create_1 is changed
|
|
- create_2 is changed
|
|
- create_3 is not changed
|
|
- create_4 is not changed
|
|
|
|
####################################################################
|
|
## Starting (after creation) #######################################
|
|
####################################################################
|
|
|
|
- name: Start container (check)
|
|
docker_container:
|
|
name: "{{ cname }}"
|
|
state: started
|
|
check_mode: yes
|
|
register: start_1
|
|
|
|
- name: Start container
|
|
docker_container:
|
|
name: "{{ cname }}"
|
|
state: started
|
|
register: start_2
|
|
|
|
- name: Start container (idempotent)
|
|
docker_container:
|
|
name: "{{ cname }}"
|
|
state: started
|
|
register: start_3
|
|
|
|
- name: Start container (idempotent check)
|
|
docker_container:
|
|
name: "{{ cname }}"
|
|
state: started
|
|
check_mode: yes
|
|
register: start_4
|
|
|
|
- assert:
|
|
that:
|
|
- start_1 is changed
|
|
- start_2 is changed
|
|
- start_3 is not changed
|
|
- start_4 is not changed
|
|
|
|
####################################################################
|
|
## Present check for running container #############################
|
|
####################################################################
|
|
|
|
- name: Present check for running container (check)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: present
|
|
check_mode: yes
|
|
register: present_check_1
|
|
|
|
- name: Present check for running container
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: present
|
|
register: present_check_2
|
|
|
|
- assert:
|
|
that:
|
|
- present_check_1 is not changed
|
|
- present_check_2 is not changed
|
|
|
|
####################################################################
|
|
## Starting (from scratch) #########################################
|
|
####################################################################
|
|
|
|
- name: Remove container (setup for starting from scratch)
|
|
docker_container:
|
|
name: "{{ cname }}"
|
|
state: absent
|
|
force_kill: yes
|
|
|
|
- name: Start container from scratch (check)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
stop_timeout: 1
|
|
name: "{{ cname }}"
|
|
state: started
|
|
check_mode: yes
|
|
register: start_scratch_1
|
|
|
|
- name: Start container from scratch
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
stop_timeout: 1
|
|
name: "{{ cname }}"
|
|
state: started
|
|
register: start_scratch_2
|
|
|
|
- name: Start container from scratch (idempotent)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
stop_timeout: 1
|
|
name: "{{ cname }}"
|
|
state: started
|
|
register: start_scratch_3
|
|
|
|
- name: Start container from scratch (idempotent check)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
stop_timeout: 1
|
|
name: "{{ cname }}"
|
|
state: started
|
|
check_mode: yes
|
|
register: start_scratch_4
|
|
|
|
- assert:
|
|
that:
|
|
- start_scratch_1 is changed
|
|
- start_scratch_2 is changed
|
|
- start_scratch_3 is not changed
|
|
- start_scratch_4 is not changed
|
|
|
|
####################################################################
|
|
## Recreating ######################################################
|
|
####################################################################
|
|
|
|
- name: Recreating container (created)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: present
|
|
force_kill: yes
|
|
register: recreate_1
|
|
|
|
- name: Recreating container (created, recreate, check mode)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
recreate: yes
|
|
state: present
|
|
force_kill: yes
|
|
register: recreate_2
|
|
check_mode: yes
|
|
|
|
- name: Recreating container (created, recreate)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
recreate: yes
|
|
state: present
|
|
force_kill: yes
|
|
register: recreate_3
|
|
|
|
- name: Recreating container (started)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
force_kill: yes
|
|
register: recreate_4
|
|
|
|
- name: Recreating container (started, recreate, check mode)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
recreate: yes
|
|
removal_wait_timeout: 10
|
|
state: started
|
|
force_kill: yes
|
|
register: recreate_5
|
|
check_mode: yes
|
|
|
|
- name: Recreating container (started, recreate)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
recreate: yes
|
|
removal_wait_timeout: 10
|
|
state: started
|
|
force_kill: yes
|
|
register: recreate_6
|
|
|
|
- name: cleanup
|
|
docker_container:
|
|
name: "{{ cname }}"
|
|
state: absent
|
|
force_kill: yes
|
|
diff: no
|
|
|
|
- debug: var=recreate_1
|
|
- debug: var=recreate_3
|
|
- debug: var=recreate_4
|
|
- debug: var=recreate_6
|
|
|
|
- assert:
|
|
that:
|
|
- recreate_2 is changed
|
|
- recreate_3 is changed
|
|
- recreate_4 is changed
|
|
- recreate_5 is changed
|
|
- recreate_6 is changed
|
|
- recreate_1.container.Id == recreate_2.container.Id
|
|
- recreate_1.container.Id != recreate_3.container.Id
|
|
- recreate_3.container.Id == recreate_4.container.Id
|
|
- recreate_4.container.Id == recreate_5.container.Id
|
|
- recreate_4.container.Id != recreate_6.container.Id
|
|
|
|
####################################################################
|
|
## Restarting ######################################################
|
|
####################################################################
|
|
|
|
- name: Restarting
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
stop_timeout: 1
|
|
volumes:
|
|
- /tmp/tmp
|
|
register: restart_1
|
|
|
|
- name: Restarting (restart, check mode)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
restart: yes
|
|
state: started
|
|
stop_timeout: 1
|
|
force_kill: yes
|
|
register: restart_2
|
|
check_mode: yes
|
|
|
|
- name: Restarting (restart)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
restart: yes
|
|
state: started
|
|
stop_timeout: 1
|
|
force_kill: yes
|
|
register: restart_3
|
|
|
|
- name: Restarting (verify volumes)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
stop_timeout: 1
|
|
volumes:
|
|
- /tmp/tmp
|
|
register: restart_4
|
|
|
|
- name: cleanup
|
|
docker_container:
|
|
name: "{{ cname }}"
|
|
state: absent
|
|
force_kill: yes
|
|
diff: no
|
|
|
|
- assert:
|
|
that:
|
|
- restart_1 is changed
|
|
- restart_2 is changed
|
|
- restart_3 is changed
|
|
- restart_1.container.Id == restart_3.container.Id
|
|
- restart_4 is not changed
|
|
|
|
####################################################################
|
|
## Stopping ########################################################
|
|
####################################################################
|
|
|
|
- name: Stop container (check)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
name: "{{ cname }}"
|
|
state: stopped
|
|
stop_timeout: 1
|
|
check_mode: yes
|
|
register: stop_1
|
|
|
|
- name: Stop container
|
|
docker_container:
|
|
image: alpine:3.8
|
|
name: "{{ cname }}"
|
|
state: stopped
|
|
stop_timeout: 1
|
|
register: stop_2
|
|
|
|
- name: Stop container (idempotent)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
name: "{{ cname }}"
|
|
state: stopped
|
|
stop_timeout: 1
|
|
register: stop_3
|
|
|
|
- name: Stop container (idempotent check)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
name: "{{ cname }}"
|
|
state: stopped
|
|
stop_timeout: 1
|
|
check_mode: yes
|
|
register: stop_4
|
|
|
|
- assert:
|
|
that:
|
|
- stop_1 is changed
|
|
- stop_2 is changed
|
|
- stop_3 is not changed
|
|
- stop_4 is not changed
|
|
|
|
####################################################################
|
|
## Removing ########################################################
|
|
####################################################################
|
|
|
|
- name: Remove container (check)
|
|
docker_container:
|
|
name: "{{ cname }}"
|
|
state: absent
|
|
check_mode: yes
|
|
register: remove_1
|
|
|
|
- name: Remove container
|
|
docker_container:
|
|
name: "{{ cname }}"
|
|
state: absent
|
|
register: remove_2
|
|
|
|
- name: Remove container (idempotent)
|
|
docker_container:
|
|
name: "{{ cname }}"
|
|
state: absent
|
|
register: remove_3
|
|
|
|
- name: Remove container (idempotent check)
|
|
docker_container:
|
|
name: "{{ cname }}"
|
|
state: absent
|
|
check_mode: yes
|
|
register: remove_4
|
|
|
|
- assert:
|
|
that:
|
|
- remove_1 is changed
|
|
- remove_2 is changed
|
|
- remove_3 is not changed
|
|
- remove_4 is not changed
|
|
|
|
####################################################################
|
|
## Removing (from running) #########################################
|
|
####################################################################
|
|
|
|
- name: Start container (setup for removing from running)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
name: "{{ cname }}"
|
|
state: started
|
|
|
|
- name: Remove container from running (check)
|
|
docker_container:
|
|
name: "{{ cname }}"
|
|
state: absent
|
|
force_kill: yes
|
|
check_mode: yes
|
|
register: remove_from_running_1
|
|
|
|
- name: Remove container from running
|
|
docker_container:
|
|
name: "{{ cname }}"
|
|
state: absent
|
|
force_kill: yes
|
|
register: remove_from_running_2
|
|
|
|
- name: Remove container from running (idempotent)
|
|
docker_container:
|
|
name: "{{ cname }}"
|
|
state: absent
|
|
force_kill: yes
|
|
register: remove_from_running_3
|
|
|
|
- name: Remove container from running (idempotent check)
|
|
docker_container:
|
|
name: "{{ cname }}"
|
|
state: absent
|
|
force_kill: yes
|
|
check_mode: yes
|
|
register: remove_from_running_4
|
|
|
|
- assert:
|
|
that:
|
|
- remove_from_running_1 is changed
|
|
- remove_from_running_2 is changed
|
|
- remove_from_running_3 is not changed
|
|
- remove_from_running_4 is not changed
|