summaryrefslogtreecommitdiff
path: root/test/integration/targets/docker_node_info/tasks/test_node_info.yml
blob: 3ee5549b37639e9cf6150c1ef523d06ac723fa2d (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
76
77
78
79
80
81
82
83
84
85
86
87
88
---
- block:
  - name: Make sure we're not already using Docker swarm
    docker_swarm:
      state: absent
      force: true

  - name: Try to get docker_node_info when docker is not running in swarm mode
    docker_node_info:
    ignore_errors: yes
    register: output

  - name: assert failure when called when swarm is not in use or not run on manager node
    assert:
      that:
         - 'output is failed'
         - 'output.msg == "Error running docker swarm module: must run on swarm manager node"'

  - name: Create a Swarm cluster
    docker_swarm:
      state: present
      advertise_addr: "{{ansible_default_ipv4.address | default('127.0.0.1')}}"
    register: output

  - name: assert changed when create a new swarm cluster
    assert:
      that:
         - 'output is changed'
         - 'output.actions[0] | regex_search("New Swarm cluster created: ")'
         - 'output.swarm_facts.JoinTokens.Manager'
         - 'output.swarm_facts.JoinTokens.Worker'

  - name: Try to get docker_node_info when docker is running in swarm mode and as manager
    docker_node_info:
    register: output

  - name: assert reading docker swarm node facts
    assert:
      that:
         - 'output.nodes | length > 0'
         - 'output.nodes[0].ID is string'

  - name: Try to get docker_node_info using the self parameter
    docker_node_info:
      self: yes
    register: output

  - name: assert reading swarm facts with list of nodes option
    assert:
      that:
         - 'output.nodes | length == 1'
         - 'output.nodes[0].ID is string'

  - name: Get local docker node name
    set_fact:
      localnodename:  "{{ output.nodes[0].Description.Hostname }}"


  - name: Try to get docker_node_info using the local node name as parameter
    docker_node_info:
      name: "{{ localnodename }}"
    register: output

  - name: assert reading reading swarm facts and using node filter (random node name)
    assert:
      that:
         - 'output.nodes | length == 1'
         - 'output.nodes[0].ID is string'

  - name: Create random name
    set_fact:
      randomnodename: "{{ 'node-%0x' % ((2**32) | random) }}"

  - name: Try to get docker_node_info using random node name as parameter
    docker_node_info:
      name: "{{ randomnodename }}"
    register: output

  - name: assert reading reading swarm facts and using node filter (random node name)
    assert:
      that:
         - 'output.nodes | length == 0'

  always:
  - name: Cleanup
    docker_swarm:
      state: absent
      force: true