HC2VPP-331: Fix Honeycomb fails to assign VRF to interface
[csit.git] / resources / libraries / robot / honeycomb / fib.robot
diff --git a/resources/libraries/robot/honeycomb/fib.robot b/resources/libraries/robot/honeycomb/fib.robot
new file mode 100644 (file)
index 0000000..8209db7
--- /dev/null
@@ -0,0 +1,67 @@
+# Copyright (c) 2018 Bell Canada, Pantheon Technologies and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Library | resources.libraries.python.honeycomb.FIB.FibKeywords
+| Documentation | Keywords used to test Honeycomb FIB tables.
+
+*** Keywords ***
+| Honeycomb configures FIB table
+| | [Documentation] | Uses Honeycomb API to configure a FIB table.
+| | ...
+| | ... | *Arguments:*
+| | ... | - node - information about a DUT node. Type: dictionary
+| | ... | - ip_version - IP protocol version, ipv4 or ipv6. Type:string
+| | ... | - vrf - vrf-id the new table will belong to. Type: integer
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Honeycomb configures FIB table \| ${nodes['DUT1']} \
+| | ... | \| ipv4 \| ${vrf} \|
+| | [Arguments] | ${node} | ${ip_version} | ${vrf}
+| | Configure FIB table | ${node} | ${ip_version} | ${vrf}
+
+| FIB table data from Honeycomb should contain
+| | [Documentation] | Uses Honeycomb API to retrieve operational data about\
+| | ... | a FIB table, and compares with the data provided.
+| | ...
+| | ... | *Arguments:*
+| | ... | - node - information about a DUT node. Type: dictionary
+| | ... | - ip_version - IP protocol version, ipv4 or ipv6. Type:string
+| | ... | - vrf - vrf-id the new table will belong to. Type: integer
+| | ... | - expected_data - Data to compare against. Type: dictionary
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| FIB table data from Honeycomb should contain \| ${nodes['DUT1']} \
+| | ... | \| ipv4 \| ${data} \|
+| | [Arguments] | ${node} | ${ip_version} | ${vrf} | ${expected_data}
+| | ${data}= | Get FIB Table Oper | ${node} | ${ip_version} | ${vrf}
+| | Should Contain | ${data} | ${expected_data}
+
+| Honeycomb removes FIB configuration
+| | [Documentation] | Uses Honeycomb API to remove Honeycomb-created\
+| | ... | FIB configuration from the node. Entries configured automatically\
+| | ... | by VPP will not be removed.
+| | ...
+| | ... | *Arguments:*
+| | ... | - node - information about a DUT node. Type: dictionary
+| | ... | - ip_version - IP protocol version, ipv4 or ipv6. Type:string
+| | ... | - vrf - vrf-id the new table will belong to. Type: integer
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Honeycomb removes FIB configuration \| ${nodes['DUT1']} \
+| | ... | \| ${ip_version} \| ${vrf} \|
+| | [Arguments] | ${node} | ${ip_version} | ${vrf}
+| | Delete FIB table | ${node} | ${ip_version} | ${vrf}