summaryrefslogtreecommitdiffstats
path: root/test/integration/targets/docker_swarm_service/tasks/main.yml
blob: 8be330dc4247813dbc0bc55ab75a8a076d578cec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
---

# Create random name prefix (for containers, networks, ...)
- name: Create random name prefix
  set_fact:
    name_prefix: "{{ 'ansible-test-%0x' % ((2**32) | random) }}"
    service_names: []
    network_names: []
    config_names: []
    secret_names: []
    volume_names: []

- debug:
    msg: "Using container name prefix {{ name_prefix }}"

# Run the tests
- block:
  - name: Create a Swarm cluster
    docker_swarm:
      state: present
      advertise_addr: "{{ansible_default_ipv4.address}}"

  - include_tasks: run-test.yml
    with_fileglob:
      - "tests/*.yml"

  always:
    - name: Make sure all services are removed
      docker_swarm_service:
        name: "{{ item }}"
        state: absent
      loop: "{{ service_names }}"
      ignore_errors: yes

    - name: Make sure all networks are removed
      docker_network:
        name: "{{ item }}"
        state: absent
        force: yes
      loop: "{{ network_names }}"
      ignore_errors: yes

    - name: Make sure all configs are removed
      docker_config:
        name: "{{ item }}"
        state: absent
        force: yes
      loop: "{{ config_names }}"
      ignore_errors: yes

    - name: Make sure all volumes are removed
      docker_volume:
        name: "{{ item }}"
        state: absent
      loop: "{{ volume_names }}"
      ignore_errors: yes

    - name: Make sure all secrets are removed
      docker_secret:
        name: "{{ item }}"
        state: absent
        force: yes
      loop: "{{ secret_names }}"
      ignore_errors: yes

    - name: Make sure swarm is removed
      docker_swarm:
        state: absent
        force: yes
      ignore_errors: yes
  # Maximum of 1.24 (docker API version for docker_swarm_service) and 1.25 (docker API version for docker_swarm) is 1.25
  when: docker_py_version is version('2.0.0', '>=') and docker_api_version is version('1.25', '>=')

- fail: msg="Too old docker / docker-py version to run docker_swarm_service tests!"
  when: not(docker_py_version is version('2.0.0', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)