7caf70db42
* Sorting args. * Doing comparisons of options with container parameters in a more context-sensitive way. This prevents unnecessary restarts, or missing restarts (f.ex. if parameters are removed from ``cmd``). * Make blkio_weight work. * Fix cap_drop idempotency problem. * Making groups idempotent if it contains integers. * Make cpuset_mems work. * Make dns_opts work. * Fixing log_opts: docker expects string values, returns error for integer. * Adding tests from felixfontein/ansible-docker_container-test#2. * Make uts work. * Adding changelog entry. * Forgot option security_opts. * Fixing typo. * Explain strict set(dict) comparison a bit more. * Improving idempotency tests. * Making dns_servers a list, since the ordering is relevant. * Making dns_search_domains a list, since the ordering is relevant. * Improving dns_search_domains/dns_servers. * Fixing entrypoint test. * Making sure options are only supported for correct docker-py versions.
296 lines
7.1 KiB
YAML
296 lines
7.1 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
|
|
stop_timeout: 1
|
|
|
|
- name: Start container from scratch (check)
|
|
docker_container:
|
|
image: alpine:3.8
|
|
command: '/bin/sh -c "sleep 10m"'
|
|
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"'
|
|
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"'
|
|
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"'
|
|
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
|
|
|
|
####################################################################
|
|
## 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
|
|
stop_timeout: 1
|
|
check_mode: yes
|
|
register: remove_from_running_1
|
|
|
|
- name: Remove container from running
|
|
docker_container:
|
|
name: "{{ cname }}"
|
|
state: absent
|
|
stop_timeout: 1
|
|
register: remove_from_running_2
|
|
|
|
- name: Remove container from running (idempotent)
|
|
docker_container:
|
|
name: "{{ cname }}"
|
|
state: absent
|
|
stop_timeout: 1
|
|
register: remove_from_running_3
|
|
|
|
- name: Remove container from running (idempotent check)
|
|
docker_container:
|
|
name: "{{ cname }}"
|
|
state: absent
|
|
stop_timeout: 1
|
|
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
|