summaryrefslogtreecommitdiff
path: root/test/integration/targets/nxos_vlan/tests/common/sanity.yaml
blob: a4d134de8fc3536328b48fda2f3376d7237f0194 (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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
---
- debug: msg="START connection={{ ansible_connection }} nxos_vlan sanity test"
- debug: msg="Using provider={{ connection.transport }}"
  when: ansible_connection == "local"

- set_fact: testint1="{{ nxos_int1 }}"
- set_fact: testint2="{{ nxos_int2 }}"

- block:
  - name: Install and Enable FabricPath feature set
    nxos_config:
      lines:
        - install feature-set fabricpath
        - feature-set fabricpath
      provider: "{{ connection }}"
    when: platform is search('N5K|N7K')

  - name: "Enable feature vn segment"
    nxos_config:
      commands:
        - feature vn-segment-vlan-based
      match: none
      provider: "{{ connection }}"
    when: platform is search('N9K')

  - name: vlan teardown
    nxos_vlan: &vlan_teardown
      vlan_range: "2-200"
      provider: "{{ connection }}"
      state: absent
    ignore_errors: yes

  - name: Ensure a range of VLANs are present on the switch
    nxos_vlan: &conf_vlan
      vlan_range: "2-10,20,50,55-60,100-150"
      provider: "{{ connection }}"
    register: result

  - assert: &true
      that:
        - "result.changed == true"

  - name: "Vlan Idempotence"
    nxos_vlan: *conf_vlan
    register: result

  - assert: &false
      that:
        - "result.changed == false"

  - name: Ensure VLAN 50 exists with the name WEB and is in the shutdown state
    nxos_vlan: &web1
      vlan_id: 50
      vlan_state: suspend
      admin_state: down
      name: WEB
      mapped_vni: 5555
      provider: "{{ connection }}"
    register: result
    when: platform is search('N9K')

  - assert: *true
    when: platform is search('N9K')

  - name: "web1 Idempotence"
    nxos_vlan: *web1
    register: result
    when: platform is search('N9K')

  - assert: *false
    when: platform is search('N9K')

  - name: change name and vni to default
    nxos_vlan: &web2
      vlan_id: 50
      vlan_state: active
      admin_state: up
      name: default
      mapped_vni: default
      provider: "{{ connection }}"
    register: result
    when: platform is search('N9K')

  - assert: *true
    when: platform is search('N9K')

  - name: "web2 Idempotence"
    nxos_vlan: *web2
    register: result
    when: platform is search('N9K')

  - assert: *false
    when: platform is search('N9K')

  - name: Ensure VLAN 50 exists with the name WEB and is in the shutdown state
    nxos_vlan: &web3
      vlan_id: 50
      vlan_state: suspend
      admin_state: down
      name: WEB
      provider: "{{ connection }}"
    register: result
    when: platform is search('N3K|N7K')

  - assert: *true
    when: platform is search('N3K|N7K')

  - name: "web3 Idempotence"
    nxos_vlan: *web3
    register: result
    when: platform is search('N3K|N7K')

  - assert: *false
    when: platform is search('N3K|N7K')

  - name: Change name to default
    nxos_vlan: &web4
      vlan_id: 50
      vlan_state: active
      admin_state: up
      name: default
      provider: "{{ connection }}"
    register: result
    when: platform is search('N3K|N7K')

  - assert: *true
    when: platform is search('N3K|N7K')

  - name: "web4 Idempotence"
    nxos_vlan: *web4
    register: result
    when: platform is search('N3K|N7K')

  - assert: *false
    when: platform is search('N3K|N7K')

# Uncomment this once the get_capabilities() work on nxapi as well
  - name: Change mode
    nxos_vlan: &mode1
      vlan_id: 50
      mode: fabricpath
      provider: "{{ connection }}"
    register: result
    when: platform is search('N5K|N7K')

  - assert: *true
    when: platform is search('N5K|N7K')

  - name: "mode1 Idempotence"
    nxos_vlan: *mode1
    register: result
    when: platform is search('N5K|N7K')

  - assert: *false
    when: platform is search('N5K|N7K')

  - name: Change mode again
    nxos_vlan: &mode2
      vlan_id: 50
      mode: ce
      provider: "{{ connection }}"
    register: result
    when: platform is search('N5K|N7K')

  - assert: *true
    when: platform is search('N5K|N7K')

  - name: "mode2 Idempotence"
    nxos_vlan: *mode2
    register: result
    when: platform is search('N5K|N7K')

  - assert: *false
    when: platform is search('N5K|N7K')

  - name: Ensure VLAN is NOT on the device
    nxos_vlan: &no_vlan
      vlan_id: 50
      provider: "{{ connection }}"
      state: absent
    register: result

  - assert: *true

  - name: "no vlan Idempotence"
    nxos_vlan: *no_vlan
    register: result

  - assert: *false

  - name: Add interfaces to vlan
    nxos_vlan: &addint
      vlan_id: 101
      vlan_state: suspend
      interfaces:
        - "{{ testint1 }}"
        - "{{ testint2 }}"
      provider: "{{ connection }}"
    register: result

  - assert: *true

  - name: "Addint idempotence"
    nxos_vlan: *addint
    register: result

  - assert: *false

  - name: Remove interfaces from vlan
    nxos_vlan: &remint
      vlan_id: 101
      interfaces: default
      provider: "{{ connection }}"
    register: result

  - assert: *true

  - name: "Remint idempotence"
    nxos_vlan: *remint
    register: result

  - assert: *false

  always:
    - name: Remove int from vlan
      nxos_vlan: *remint
      ignore_errors: yes

    - name: vlan teardown final
      nxos_vlan: *vlan_teardown
      ignore_errors: yes

    - name: "Disable feature vn segement"
      nxos_feature:
        feature: vn-segment-vlan-based
        provider: "{{ connection }}"
        state: disabled
      ignore_errors: yes
      when: platform is search('N9K')

- debug: msg="END connection={{ ansible_connection }} nxos_vlan sanity test"