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"
|