CSIT-423: HC Test: delete VxLAN interface
[csit.git] / resources / libraries / robot / honeycomb / interfaces.robot
1 # Copyright (c) 2016 Cisco and/or its affiliates.
2 # Licensed under the Apache License, Version 2.0 (the "License");
3 # you may not use this file except in compliance with the License.
4 # You may obtain a copy of the License at:
5 #
6 #     http://www.apache.org/licenses/LICENSE-2.0
7 #
8 # Unless required by applicable law or agreed to in writing, software
9 # distributed under the License is distributed on an "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 # See the License for the specific language governing permissions and
12 # limitations under the License.
13
14 *** Settings ***
15 | Library | resources.libraries.python.InterfaceUtil
16 | ...     | WITH NAME | interfaceCLI
17 | Library | resources.libraries.python.honeycomb.HcAPIKwInterfaces.InterfaceKeywords
18 | ...     | WITH NAME | InterfaceAPI
19
20 *** Keywords ***
21 | Interface state is
22 | | [Documentation] | Uses VPP binary API to ensure that the interface under\
23 | | ... | test is in the specified admin state.
24 | | ...
25 | | ... | *Arguments:*
26 | | ... | - node - information about a DUT node. Type: dictionary
27 | | ... | - interface - name of an interface on the specified node. Type: string
28 | | ... | - state - state to set on interface. Type:string
29 | | ...
30 | | ... | *Example:*
31 | | ...
32 | | ... | \| Interface state is \| ${nodes['DUT1']} \| GigabitEthernet0/8/0 \
33 | | ... | \| up \|
34 | | [Arguments] | ${node} | ${interface} | ${state}
35 | | interfaceCLI.Set interface state | ${node} | ${interface} | ${state}
36 | | ... | if_type=name
37
38 | Honeycomb sets interface state
39 | | [Documentation] | Uses Honeycomb API to change the admin state\
40 | | ... | of the specified interface.
41 | | ...
42 | | ... | *Arguments:*
43 | | ... | - node - information about a DUT node. Type: dictionary
44 | | ... | - interface - name of an interface on the specified node. Type: string
45 | | ... | - state - state to set on interface. Type:string
46 | | ...
47 | | ... | *Example:*
48 | | ...
49 | | ... | \| Honeycomb sets interface state \| ${nodes['DUT1']} \
50 | | ... | \| GigabitEthernet0/8/0 \| up \|
51 | | [Arguments] | ${node} | ${interface} | ${state}
52 | | interfaceAPI.Set interface state | ${node} | ${interface} | ${state}
53
54 | Interface state from Honeycomb should be
55 | | [Documentation] | Retrieves interface admin state through Honeycomb and\
56 | | ... | compares with state supplied in argument.
57 | | ...
58 | | ... | *Arguments:*
59 | | ... | - node - information about a DUT node. Type: dictionary
60 | | ... | - interface - name of an interface on the specified node. Type: string
61 | | ... | - state - expected interface state. Type: string
62 | | ...
63 | | ... | *Example:*
64 | | ...
65 | | ... | \| Interface state from Honeycomb should be \| ${nodes['DUT1']} \
66 | | ... | \| GigabitEthernet0/8/0 \| up \|
67 | | [Arguments] | ${node} | ${interface} | ${state}
68 | | ${api_data}= | interfaceAPI.Get interface oper data | ${node} | ${interface}
69 | | ${api_state}= | Set Variable | ${api_data['admin-status']}
70 | | Should be equal | ${api_state} | ${state}
71
72 | Interface state from VAT should be
73 | | [Documentation] | Retrieves interface admin state through VAT and compares\
74 | | ... | with state supplied in argument.
75 | | ...
76 | | ... | *Arguments:*
77 | | ... | - node - information about a DUT node. Type: dictionary
78 | | ... | - interface - name of an interface on the specified node. Type: string
79 | | ... | - state - expected interface state. Type: string
80 | | ...
81 | | ... | _NOTE:_ Vat returns state as int (1/0) instead of string (up/down).
82 | | ... | This keyword also handles translation.
83 | | ...
84 | | ... | *Example:*
85 | | ...
86 | | ... | \| Interface state from VAT should be \| ${nodes['DUT1']} \
87 | | ... | \| GigabitEthernet0/8/0 \| up \|
88 | | [Arguments] | ${node} | ${interface} | ${state}
89 | | ${vat_data}= | InterfaceCLI.VPP get interface data | ${node} | ${interface}
90 | | ${vat_state}= | Set Variable if
91 | | ... | ${vat_data['admin_up_down']} == 1 | up | down
92 | | Should be equal | ${vat_state} | ${state}
93
94 | Honeycomb sets interface ipv4 address
95 | | [Documentation] | Uses Honeycomb API to change ipv4 address\
96 | | ... | of the specified interface.
97 | | ...
98 | | ... | *Arguments:*
99 | | ... | - node - information about a DUT node. Type: dictionary
100 | | ... | - interface - name of an interface on the specified node. Type: string
101 | | ... | - address - IP address to set. Type: string
102 | | ... | - netmask - subnet mask to set. Type: string
103 | | ...
104 | | ... | *Example:*
105 | | ...
106 | | ... | \| Honeycomb sets interface ipv4 address \| ${nodes['DUT1']} \
107 | | ... | \| GigabitEthernet0/8/0 \| 192.168.0.2 \| 255.255.255.0 \|
108 | | [Arguments] | ${node} | ${interface} | ${address} | ${netmask}
109 | | interfaceAPI.Add first ipv4 address
110 | | ... | ${node} | ${interface} | ${address} | ${netmask}
111
112 | Honeycomb sets interface ipv4 address with prefix
113 | | [Documentation] | Uses Honeycomb API to assign an ipv4 address to the\
114 | | ... | specified interface. Any existing addresses will be removed.
115 | | ...
116 | | ... | *Arguments:*
117 | | ... | - node - information about a DUT node. Type: dictionary
118 | | ... | - interface - name of an interface on the specified node. Type: string
119 | | ... | - address - IP address to set. Type: string
120 | | ... | - prefix - length of address network prefix. Type: int
121 | | ...
122 | | ... | *Example:*
123 | | ...
124 | | ... | \| Honeycomb sets interface ipv4 address with prefix \
125 | | ... | \| ${nodes['DUT1']} \| GigabitEthernet0/8/0 \| 192.168.0.2 \| 24 \|
126 | | [Arguments] | ${node} | ${interface} | ${address} | ${prefix}
127 | | interfaceAPI.Add first ipv4 address
128 | | ... | ${node} | ${interface} | ${address} | ${prefix}
129
130 | IPv4 address from Honeycomb should be
131 | | [Documentation] | Retrieves interface ipv4 address through Honeycomb\
132 | | ... | and compares with state supplied in argument.
133 | | ...
134 | | ... | *Arguments:*
135 | | ... | - node - information about a DUT node. Type: dictionary
136 | | ... | - interface - name of an interface on the specified node. Type: string
137 | | ... | - address - IP address to expect. Type: string
138 | | ... | - prefix - prefix length to expect. Type: string
139 | | ...
140 | | ... | *Example:*
141 | | ...
142 | | ... | \| IPv4 address from Honeycomb should be \| ${nodes['DUT1']} \
143 | | ... | \| GigabitEthernet0/8/0 \| 192.168.0.2 \| 255.255.255.0 \
144 | | [Arguments] | ${node} | ${interface} | ${address} | ${prefix}
145 | | ${api_data}= | interfaceAPI.Get interface oper data | ${node} | ${interface}
146 | | Should be equal | ${address}
147 | | ... | ${api_data['ietf-ip:ipv4']['address'][0]['ip']}
148 | | Should be equal | ${prefix}
149 | | ... | ${api_data['ietf-ip:ipv4']['address'][0]['prefix-length']}
150
151 | IPv4 address from VAT should be
152 | | [Documentation] | Retrieves interface ipv4 address through VAT and\
153 | | ... | compares with state supplied in argument.
154 | | ...
155 | | ... | *Arguments:*
156 | | ... | - node - information about a DUT node. Type: dictionary
157 | | ... | - interface - name of an interface on the specified node. Type: string
158 | | ... | - address - IP address to expect. Type: string
159 | | ... | - netmask - subnet mask to expect. Type: string
160 | | ...
161 | | ... | *Example:*
162 | | ...
163 | | ... | \| IPv4 address from VAT should be \| ${nodes['DUT1']} \
164 | | ... | \| GigabitEthernet0/8/0 \| 192.168.0.2 \| 255.255.255.0 \|
165 | | [Arguments] | ${node} | ${interface} | ${address} | ${netmask}
166 | | ${vpp_data}= | interfaceCLI.VPP get interface ip addresses
167 | | ... | ${node} | ${interface} | ipv4
168 | | Should be equal | ${vpp_data[0]['ip']} | ${address}
169 | | Should be equal | ${vpp_data[0]['netmask']} | ${netmask}
170
171 | Honeycomb removes interface ipv4 addresses
172 | | [Documentation] | Removes all configured ipv4 addresses from the specified\
173 | | ... | interface.
174 | | ...
175 | | ... | *Arguments:*
176 | | ... | - node - information about a DUT node. Type: dictionary
177 | | ... | - interface - name of an interface on the specified node. Type: string
178 | | ...
179 | | ... | *Example:*
180 | | ...
181 | | ... | \| Honeycomb removes interface ipv4 addresses \| ${nodes['DUT1']} \
182 | | ... | \| GigabitEthernet0/8/0 \|
183 | | [Arguments] | ${node} | ${interface}
184 | | Remove all ipv4 addresses | ${node} | ${interface}
185
186 | IPv4 address from Honeycomb should be empty
187 | | [Documentation] | Retrieves interface ipv4 configuration through Honeycomb\
188 | | ... | and expects to find no IPv4 addresses.
189 | | ...
190 | | ... | *Arguments:*
191 | | ... | - node - information about a DUT node. Type: dictionary
192 | | ... | - interface - name of an interface on the specified node. Type: string
193 | | ...
194 | | ... | *Example:*
195 | | ...
196 | | ... | \| IPv4 address from Honeycomb should be empty\| ${nodes['DUT1']} \
197 | | ... | \| GigabitEthernet0/8/0 \|
198 | | [Arguments] | ${node} | ${interface}
199 | | ${api_data}= | interfaceAPI.Get interface oper data | ${node} | ${interface}
200 | | Run keyword and expect error | *KeyError: 'ietf-ip:ipv4'
201 | | ... | Set Variable | ${api_data['ietf-ip:ipv4']['address']}
202
203 | IPv4 address from VAT should be empty
204 | | [Documentation] | Retrieves interface ipv4 configuration through VAT and\
205 | | ... | and expects to find no ipv4 addresses.
206 | | ...
207 | | ... | *Arguments:*
208 | | ... | - node - information about a DUT node. Type: dictionary
209 | | ... | - interface - name of an interface on the specified node. Type: string
210 | | ...
211 | | ... | *Example:*
212 | | ...
213 | | ... | \| IPv4 config from VAT should be empty \| ${nodes['DUT1']} \
214 | | ... | \| GigabitEthernet0/8/0 \|
215 | | [Arguments] | ${node} | ${interface}
216 | | Run keyword and expect error | *No JSON object could be decoded*
217 | | ... | InterfaceCLI.VPP get interface ip addresses
218 | | ... | ${node} | ${interface} | ipv4
219
220 | Honeycomb adds interface ipv4 neighbor
221 | | [Documentation] | Uses Honeycomb API to assign an ipv4 neighbor to the\
222 | | ... | specified interface.
223 | | ...
224 | | ... | *Arguments:*
225 | | ... | - node - information about a DUT node. Type: dictionary
226 | | ... | - interface - name of an interface on the specified node. Type: string
227 | | ... | - fib_address - IP address to add to fib table. Type: string
228 | | ... | - fib_mac - MAC address to add to fib table. Type: string
229 | | ...
230 | | ... | *Example:*
231 | | ...
232 | | ... | \| Honeycomb adds interface ipv4 neighbor \| ${nodes['DUT1']} \
233 | | ... | \| GigabitEthernet0/8/0 \| 192.168.0.3 \| 08:00:27:c0:5d:37 \
234 | | [Arguments] | ${node} | ${interface} | ${fib_address} | ${fib_mac}
235 | | interfaceAPI.Add ipv4 neighbor
236 | | ... | ${node} | ${interface} | ${fib_address} | ${fib_mac}
237
238 | IPv4 neighbor from Honeycomb should be
239 | | [Documentation] | Retrieves ipv4 neighbor list through Honeycomb\
240 | | and compares with neighbor list supplied in argument.
241 | | ...
242 | | ... | *Arguments:*
243 | | ... | - node - information about a DUT node. Type: dictionary
244 | | ... | - interface - name of an interface on the specified node. Type: string
245 | | ... | - neighbors - list of ipv4 neighbor dictionaries. Type: list
246 | | ...
247 | | ... | *Example:*
248 | | ...
249 | | ... | \| IPv4 neighbor from Honeycomb should be \| ${nodes['DUT1']} \
250 | | ... | \| GigabitEthernet0/8/0 \| 192.168.0.4 \| 08:00:27:60:26:ab \|
251 | | [Arguments] | ${node} | ${interface} | @{neighbors}
252 | | ${api_data}= | interfaceAPI.Get interface oper data | ${node} | ${interface}
253 | | ${data_neighbors}= | Set Variable | ${api_data['ietf-ip:ipv4']['neighbor']}
254 | | Compare data structures
255 | | ... | ${data_neighbors} | ${neighbors} | list_order=${False}
256 | | Should be equal | ${neighbor['fib_address']}
257 | | ... | ${api_data['ietf-ip:ipv4']['neighbor'][0]['ip']}
258 | | Should be equal | ${neighbor['fib_mac']}
259 | | ... | ${api_data['ietf-ip:ipv4']['neighbor'][0]['link-layer-address']}
260
261 | Honeycomb clears all interface ipv4 neighbors
262 | | [Documentation] | Uses Honeycomb API to assign an ipv4 neighbor to the\
263 | | ... | specified interface.
264 | | ...
265 | | ... | *Arguments:*
266 | | ... | - node - information about a DUT node. Type: dictionary
267 | | ... | - interface - name of an interface on the specified node. Type: string
268 | | ...
269 | | ... | *Example:*
270 | | ...
271 | | ... | \| Honeycomb clears all interface ipv4 neighbors \| ${nodes['DUT1']} \
272 | | ... | \| GigabitEthernet0/8/0 \|
273 | | [Arguments] | ${node} | ${interface}
274 | | interfaceAPI.clear all ipv4 neighbors | ${node} | ${interface}
275
276 | Honeycomb sets interface ipv6 address
277 | | [Documentation] | Uses Honeycomb API to change ipv6 address\
278 | | ... | of the specified interface.
279 | | ...
280 | | ... | *Arguments:*
281 | | ... | - node - information about a DUT node. Type: dictionary
282 | | ... | - interface - name of an interface on the specified node. Type: string
283 | | ... | - address - IP address to set. Type: string
284 | | ... | - prefix - length of subnet prefix to set. Type: string
285 | | ...
286 | | ... | *Example:*
287 | | ...
288 | | ... | \| Honeycomb sets interface ipv6 address \| ${nodes['DUT1']} \
289 | | ... | \| GigabitEthernet0/8/0 \| 10::10 \| 64 \|
290 | | [Arguments] | ${node} | ${interface} | ${address} | ${prefix}
291 | | interfaceAPI.Add first ipv6 address
292 | | ... | ${node} | ${interface} | ${address} | ${prefix}
293
294 | IPv6 address from Honeycomb should be
295 | | [Documentation] | Retrieves interface ipv6 address through Honeycomb\
296 | | ... | and compares with state supplied in argument.
297 | | ...
298 | | ... | *Arguments:*
299 | | ... | - node - information about a DUT node. Type: dictionary
300 | | ... | - interface - name of an interface on the specified node. Type: string
301 | | ... | - address - IP address to expect. Type: string
302 | | ... | - prefix - length of subnet prefix to expect. Type: string
303 | | ...
304 | | ... | *Example:*
305 | | ...
306 | | ... | \| IPv6 address from Honeycomb should be \| ${nodes['DUT1']} \
307 | | ... | \| GigabitEthernet0/8/0 \| 10::10 \| 64 \|
308 | | [Arguments] | ${node} | ${interface} | ${address} | ${prefix}
309 | | ${api_data}= | interfaceAPI.Get interface oper data | ${node} | ${interface}
310 | | Should be equal | ${address}
311 | | ... | ${api_data['ietf-ip:ipv6']['address'][0]['ip']}
312 | | Should be equal | ${prefix}
313 | | ... | ${api_data['ietf-ip:ipv6']['address'][0]['prefix-length']}
314 | | Should be equal | ${fib_address}
315
316 | IPv6 address from VAT should be
317 | | [Documentation] | Retrieves interface ipv6 address through VAT and\
318 | | ... | compares with state supplied in argument.
319 | | ...
320 | | ... | *Arguments:*
321 | | ... | - node - information about a DUT node. Type: dictionary
322 | | ... | - interface - name of an interface on the specified node. Type: string
323 | | ... | - address - IP address to expect. Type: string
324 | | ... | - prefix - length of subnet prefix to expect. Type: string
325 | | ...
326 | | ... | *Example:*
327 | | ...
328 | | ... | \| IPv6 address from VAT should be \| ${nodes['DUT1']} \
329 | | ... | \| GigabitEthernet0/8/0 \| 10::10 \| 64 \|
330 | | [Arguments] | ${node} | ${interface} | ${address} | ${prefix}
331 | | ${vpp_data}= | interfaceCLI.VPP get interface ip addresses
332 | | ... | ${node} | ${interface} | ipv6
333 | | Should be equal | ${vpp_data[0]['ip']} | ${address}
334 | | Should be equal | ${vpp_data[0]['prefix-length']} | ${prefix}
335
336 | Honeycomb sets interface ethernet and routing configuration
337 | | [Documentation] | Uses Honeycomb API to change interface configuration.
338 | | ...
339 | | ... | *Arguments:*
340 | | ... | - node - information about a DUT node. Type: dictionary
341 | | ... | - interface - name of an interface on the specified node. Type: string
342 | | ... | - ethernet - interface ethernet settings. Type: dictionary
343 | | ... | - routing - interface routing settings. Type: dictionary
344 | | ...
345 | | ... | *Example:*
346 | | ...
347 | | ... | \| Honeycomb sets interface ethernet and routing configuration \
348 | | ... | \| ${nodes['DUT1']} \| GigabitEthernet0/8/0 \| ${{'mtu': 1500}} \
349 | | ... | \| ${{'vrf-if': 2}} \|
350 | | [Arguments] | ${node} | ${interface} | ${ethernet} | ${routing}
351 | | :FOR | ${key} | IN | @{ethernet.keys()}
352 | | | interfaceAPI.Configure interface ethernet
353 | | | ... | ${node} | ${interface} | ${key} | ${ethernet['${key}']}
354 | | :FOR | ${key} | IN | @{routing.keys()}
355 | | | interfaceAPI.Configure interface routing
356 | | | ... | ${node} | ${interface} | ${key} | ${routing['${key}']}
357
358 | Interface ethernet and routing configuration from Honeycomb should be
359 | | [Documentation] | Retrieves interface routing and ethernet configuration\
360 | | ... | through Honeycomb and compares with settings supplied in arguments.
361 | | ...
362 | | ... | *Arguments:*
363 | | ... | - node - information about a DUT node. Type: dictionary
364 | | ... | - interface - name of an interface on the specified node. Type: string
365 | | ... | - ethernet - interface ethernet settings. Type: dictionary
366 | | ... | - routing - interface routing settings. Type: dictionary
367 | | ...
368 | | ... | *Example:*
369 | | ...
370 | | ... | \| Interface ethernet and routing configuration from Honeycomb \
371 | | ... | should be \| ${nodes['DUT1']} \| GigabitEthernet0/8/0 \
372 | | ... | \| ${{'mtu': 1500}} \| ${{'vrf-id': 2}} \|
373 | | [Arguments] | ${node} | ${interface} | ${ethernet} | ${routing}
374 | | ${api_data}= | interfaceAPI.Get interface oper data | ${node} | ${interface}
375 | | :FOR | ${key} | IN | @{ethernet.keys()}
376 | | | Should be equal
377 | | | ... | ${api_data['v3po:ethernet']['${key}']} | ${ethernet['${key}']}
378 | | :FOR | ${key} | IN | @{routing.keys()}
379 | | | Should be equal | ${api_data['${key}']} | ${routing['${key}']}
380
381 | Interface ethernet and routing configuration from VAT should be
382 | | [Documentation] | Retrieves interface routing and ethernet configuration\
383 | | ... | through VAT and compares with settings supplied in arguments.
384 | | ...
385 | | ... | *Arguments:*
386 | | ... | - node - information about a DUT node. Type: dictionary
387 | | ... | - interface - name of an interface on the specified node. Type: string
388 | | ... | - mtu - value of maximum transmission unit expected. Type: integer
389 | | ... | - vrf-id - ID number of a VPN expected on interface. Type: integer
390 | | ...
391 | | ... | *Example:*
392 | | ...
393 | | ... | \| Interface ethernet and routing configuration from VAT \
394 | | ... | should be \| ${nodes['DUT1']} \| GigabitEthernet0/8/0 \| ${1500} \
395 | | ... | \| ${2} \|
396 | | [Arguments] | ${node} | ${interface} | ${mtu} | ${vrf-id}
397 | | ${vat_data}= | InterfaceCLI.VPP get interface data | ${node} | ${interface}
398 | | Should be equal | ${vat_data['mtu']} | ${mtu}
399
400 | Interface configuration from Honeycomb should be empty
401 | | [Documentation] | Attempts to retrieve interface configuration through\
402 | | ... | Honeycomb and expects to get empty dictionary.
403 | | ...
404 | | ... | *Arguments:*
405 | | ... | - node - information about a DUT node. Type: dictionary
406 | | ... | - interface - name of a interface on the specified node. Type:\
407 | | ... | string
408 | | ...
409 | | ... | *Example:*
410 | | ... | \| Interface configuration from Honeycomb should be empty\
411 | | ... | \| ${nodes['DUT1']} \| GigabitEthernet0/8/0 \|
412 | | ...
413 | | [Arguments] | ${node} | ${interface}
414 | | ${api_data}= | interfaceAPI.Get interface oper data | ${node} | ${interface}
415 | | Should be empty | ${api_data}
416
417 | Interface configuration from VAT should be empty
418 | | [Documentation] | Attempts to retrieve Interface configuration through\
419 | | ... | VAT and expects to get empty dictionary.
420 | | ...
421 | | ... | *Arguments:*
422 | | ... | - node - information about a DUT node. Type: dictionary
423 | | ... | - interface - name of a Interface on the specified node. Type:\
424 | | ... | string
425 | | ...
426 | | ... | *Example:*
427 | | ... | \| Interface configuration from VAT should be empty\
428 | | ... | \| ${nodes['DUT1']} \| GigabitEthernet0/8/0 \|
429 | | ...
430 | | [Arguments] | ${node} | ${interface} |
431 | | ${vat_data}= | InterfaceCLI.VPP get interface data | ${node} | ${interface}
432 | | Should be empty | ${vat_data}
433
434 | Interface indices from Honeycomb and VAT should correspond
435 | | [Documentation] | Uses VAT and Honeycomb to get operational data about the\
436 | | ... | given interface and compares the interface indexes. The interface
437 | | ... | index from Honeycomb should be greater than index from VAT by one.
438 | | ...
439 | | ... | *Arguments:*
440 | | ... | - node - information about a DUT node. Type: dictionary
441 | | ... | - interface - name of the interface to be checked. Type: string
442 | | ...
443 | | ... | *Example:*
444 | | ...
445 | | ... | \| Interface indices from Honeycomb and VAT should correspond \
446 | | ... | \| ${nodes['DUT1']} \| vxlan_gpe_tunnel0 \|
447 | | ...
448 | | [Arguments] | ${node} | ${interface}
449 | | ...
450 | | ${api_data}= | interfaceAPI.Get interface oper data | ${node} | ${interface}
451 | | ${vat_data}= | InterfaceCLI.VPP get interface data | ${node} | ${interface}
452 | | ${sw_if_index}= | EVALUATE | ${vat_data['sw_if_index']} + 1
453 | | Should be equal as strings
454 | | ... | ${api_data['if-index']} | ${sw_if_index}
455
456 | Get Interface index from oper data
457 | | [Documentation] | Retrieves interface operational data and returns\
458 | | ... | if-index of the specified interface.
459 | | ...
460 | | ... | *Arguments:*
461 | | ... | - node - information about a DUT node. Type: dictionary
462 | | ... | - interface - name of the interface. Type: string
463 | | ...
464 | | ... | *Example:*
465 | | ...
466 | | ... | \| Get Interface index from oper data \| ${nodes['DUT1']} \| local0 \|
467 | | [Arguments] | ${node} | ${interface}
468 | | ${data}= | interfaceAPI.Get interface oper data | ${node} | ${interface}
469 | | Return from keyword | ${data['if-index']}
470
471 | Honeycomb should show disabled interface in oper data
472 | | [Documentation] | Retrieves list of disabled interfaces\
473 | | ... | and verifies that there is at least one.
474 | | ...
475 | | ... | *Arguments:*
476 | | ... | - node - information about a DUT node. Type: dictionary
477 | | ... | - index - index of the interface to be checked. Type: string
478 | | ...
479 | | ... | *Example:*
480 | | ...
481 | | ... | \| Honeycomb should show disabled interface in oper data \
482 | | ... | \|${nodes['DUT1']} \| ${vx_interface} \|
483 | | [Arguments] | ${node} | ${index}
484 | | interfaceAPI.check disabled interface | ${node} | ${index}
485
486 | Honeycomb should not show disabled interface in oper data
487 | | [Documentation] | Retrieves list of disabled interfaces\
488 | | ... | and expects to fail with a 404 - not found.
489 | | ...
490 | | ... | *Arguments:*
491 | | ... | - node - information about a DUT node. Type: dictionary
492 | | ... | - index - index of the interface to be checked. Type: string
493 | | ...
494 | | ... | *Example:*
495 | | ...
496 | | ... | \| Honeycomb should not show disabled interface in oper data \
497 | | ... | \|${nodes['DUT1']} \| ${vx_interface} \|
498 | | [Arguments] | ${node} | ${index}
499 | | Run keyword and expect error | *
500 | | ... | Honeycomb should show disabled interface in oper data
501 | | ... | ${node} | ${index}