HC2VPP-331: Fix Honeycomb fails to assign VRF to interface
[csit.git] / resources / libraries / robot / honeycomb / fib.robot
1 # Copyright (c) 2018 Bell Canada, Pantheon Technologies 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.honeycomb.FIB.FibKeywords
16 | Documentation | Keywords used to test Honeycomb FIB tables.
17
18 *** Keywords ***
19 | Honeycomb configures FIB table
20 | | [Documentation] | Uses Honeycomb API to configure a FIB table.
21 | | ...
22 | | ... | *Arguments:*
23 | | ... | - node - information about a DUT node. Type: dictionary
24 | | ... | - ip_version - IP protocol version, ipv4 or ipv6. Type:string
25 | | ... | - vrf - vrf-id the new table will belong to. Type: integer
26 | | ...
27 | | ... | *Example:*
28 | | ...
29 | | ... | \| Honeycomb configures FIB table \| ${nodes['DUT1']} \
30 | | ... | \| ipv4 \| ${vrf} \|
31 | | [Arguments] | ${node} | ${ip_version} | ${vrf}
32 | | Configure FIB table | ${node} | ${ip_version} | ${vrf}
33
34 | FIB table data from Honeycomb should contain
35 | | [Documentation] | Uses Honeycomb API to retrieve operational data about\
36 | | ... | a FIB table, and compares with the data provided.
37 | | ...
38 | | ... | *Arguments:*
39 | | ... | - node - information about a DUT node. Type: dictionary
40 | | ... | - ip_version - IP protocol version, ipv4 or ipv6. Type:string
41 | | ... | - vrf - vrf-id the new table will belong to. Type: integer
42 | | ... | - expected_data - Data to compare against. Type: dictionary
43 | | ...
44 | | ... | *Example:*
45 | | ...
46 | | ... | \| FIB table data from Honeycomb should contain \| ${nodes['DUT1']} \
47 | | ... | \| ipv4 \| ${data} \|
48 | | [Arguments] | ${node} | ${ip_version} | ${vrf} | ${expected_data}
49 | | ${data}= | Get FIB Table Oper | ${node} | ${ip_version} | ${vrf}
50 | | Should Contain | ${data} | ${expected_data}
51
52 | Honeycomb removes FIB configuration
53 | | [Documentation] | Uses Honeycomb API to remove Honeycomb-created\
54 | | ... | FIB configuration from the node. Entries configured automatically\
55 | | ... | by VPP will not be removed.
56 | | ...
57 | | ... | *Arguments:*
58 | | ... | - node - information about a DUT node. Type: dictionary
59 | | ... | - ip_version - IP protocol version, ipv4 or ipv6. Type:string
60 | | ... | - vrf - vrf-id the new table will belong to. Type: integer
61 | | ...
62 | | ... | *Example:*
63 | | ...
64 | | ... | \| Honeycomb removes FIB configuration \| ${nodes['DUT1']} \
65 | | ... | \| ${ip_version} \| ${vrf} \|
66 | | [Arguments] | ${node} | ${ip_version} | ${vrf}
67 | | Delete FIB table | ${node} | ${ip_version} | ${vrf}