summaryrefslogtreecommitdiff
path: root/test/integration/targets/nxos_interface_ospf/tests/common/sanity.yaml
blob: de9f7209f955c97b74e2ae9791e7a4f3a443f5ca (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
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
---
- debug: msg="START connection={{ ansible_connection }} nxos_interface_ospf sanity test"

- set_fact: testint="{{ nxos_int1 }}"

- name: Setup - Disable features
  nxos_feature:
    feature: "{{ item }}"
    state: disabled
  loop: ['ospf', 'bfd']
  ignore_errors: yes

- name: Setup - Enable features
  nxos_feature:
    feature: "{{ item }}"
    state: enabled
  loop: ['ospf', 'bfd']

- name: "Put interface into default state"
  nxos_config: &intdefault
    lines:
      - "default interface {{ testint }}"
  ignore_errors: yes

- name: "Remove switchport config"
  nxos_config: &removeswitchport
    commands:
      - no switchport
    parents:
      - "interface {{ testint }}"
  ignore_errors: yes

- name: "Remove possibly existing port-channel and loopback ints"
  nxos_config: &removepcandlb
    commands:
      - no interface port-channel10
      - no interface port-channel11
      - no interface loopback55
      - no interface loopback77
  ignore_errors: yes

- block:
  - name: configure ospf interface
    nxos_interface_ospf: &configure
      interface: "{{ nxos_int1|upper }}"
      ospf: 1
      area: 12345678
      bfd: enable
      cost: 55
      passive_interface: true
      hello_interval: 15
      dead_interval: 75
      network: point-to-point
      state: present
    register: result

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

  - name: "Check Idempotence"
    nxos_interface_ospf: *configure
    register: result

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

  - name: Modify properties
    nxos_interface_ospf: &modify
      interface: "{{ testint }}"
      ospf: 1
      area: 12345678
      cost: 66
      passive_interface: false
      hello_interval: 17
      dead_interval: 70
      network: broadcast
      state: present
    register: result

  - assert: *true

  - name: "Check Idempotence"
    nxos_interface_ospf: *modify
    register: result

  - assert: *false

  - name: default properties
    nxos_interface_ospf: &def
      interface: "{{ testint }}"
      ospf: 1
      area: 12345678
      bfd: default
      cost: default
      hello_interval: 10
      dead_interval: default
      state: present
    register: result

  - assert: *true

  - name: "Check Idempotence"
    nxos_interface_ospf: *def
    register: result

  - assert: *false

  - name: Message_digest properties
    nxos_interface_ospf: &md
      interface: "{{ testint }}"
      ospf: 1
      area: 12345678
      message_digest: True
      message_digest_key_id: 10
      message_digest_algorithm_type: md5
      message_digest_encryption_type: 3des
      message_digest_password: b69f7bc54725b1bfd1ea93afa7b09400
      state: present
    register: result

  - assert: *true

  - name: "Check Idempotence"
    nxos_interface_ospf: *md
    register: result

  - assert: *false

  - name: Message_digest defaults
    nxos_interface_ospf: &mdd
      interface: "{{ testint }}"
      ospf: 1
      area: 12345678
      message_digest: False
      message_digest_key_id: default
      message_digest_algorithm_type: default
      message_digest_encryption_type: default
      message_digest_password: default
      state: present
    register: result

  - assert: *true

  - name: "Check Idempotence"
    nxos_interface_ospf: *mdd
    register: result

  - assert: *false

  - name: create port-channel and loopback interfaces
    nxos_config:
      commands:
        - interface port-channel10
        - interface port-channel11
        - interface loopback55
        - interface loopback77
      match: none

  - name: "Ensure port-channels are layer3"
    nxos_config:
      commands:
        - no switchport
      parents:
        - "interface {{ item }}"
    with_items:
      - port-channel10
      - port-channel11

  - name: configure ospf interface port-channel10
    nxos_interface_ospf: &configurepc
      interface: Port-channel10
      ospf: 1
      area: 429496729
      cost: 55
      passive_interface: true
      hello_interval: 15
      dead_interval: 75
      state: present
    register: result

  - assert: *true

  - name: "Check Idempotence for port-channel10"
    nxos_interface_ospf: *configurepc
    register: result

  - assert: *false

  - name: configure ospf interface port-channel11 using lower case name
    nxos_interface_ospf: &configurepclower
      interface: port-channel11
      ospf: 1
      area: 42949672
      cost: 55
      passive_interface: true
      hello_interval: 15
      dead_interval: 75
      state: present
    register: result

  - assert: *true

  - name: "Check Idempotence for port-channel11"
    nxos_interface_ospf: *configurepclower
    register: result

  - assert: *false

  - name: configure ospf interface loopback55
    nxos_interface_ospf: &configurelb
      interface: LOOPBACK55
      ospf: 1
      area: 192.0.2.4
      cost: 55
      hello_interval: 15
      dead_interval: 75
      state: present
    register: result

  - assert: *true

  - name: "Check Idempotence for loopback55"
    nxos_interface_ospf: *configurelb
    register: result

  - assert: *false

  - name: configure ospf interface loopback77 using lower case name
    nxos_interface_ospf: &configurelblower
      interface: loopback77
      ospf: 1
      area: 429496
      cost: 77
      hello_interval: 45
      dead_interval: 75
      state: present
    register: result

  - assert: *true

  - name: "Check Idempotence for loopback77"
    nxos_interface_ospf: *configurelblower
    register: result

  - assert: *false

  - name: remove ospf interface config
    nxos_interface_ospf: &removeconfig
      interface: "{{ testint }}"
      ospf: 1
      area: 12345678
      bfd: disable
      cost: 55
      passive_interface: true
      hello_interval: 15
      dead_interval: 75
      state: absent
    register: result

  - assert: *true

  - name: "Check Idempotence"
    nxos_interface_ospf: *removeconfig
    register: result

  - assert: *false

  always:
  - name: Disable features
    nxos_feature:
      feature: "{{ item }}"
      state: disabled
    loop: ['ospf', 'bfd']
    ignore_errors: yes

  - name: "Interface cleanup"
    nxos_config: *intdefault
    ignore_errors: yes

  - name: "Remove port-channel and loopback ints"
    nxos_config: *removepcandlb
    ignore_errors: yes

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