X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=resources%2Flibraries%2Frobot%2Fhoneycomb%2Fdhcp.robot;fp=resources%2Flibraries%2Frobot%2Fhoneycomb%2Fdhcp.robot;h=d3fe942668687cbb3ca82cbfcdccec25b3046a0d;hb=d30aa3a0c0e64682266b0fbf5c8506952e39e414;hp=0000000000000000000000000000000000000000;hpb=e5fb9d5dd1b50f10ffd847e8c7acb75c0fd46477;p=csit.git diff --git a/resources/libraries/robot/honeycomb/dhcp.robot b/resources/libraries/robot/honeycomb/dhcp.robot new file mode 100644 index 0000000000..d3fe942668 --- /dev/null +++ b/resources/libraries/robot/honeycomb/dhcp.robot @@ -0,0 +1,94 @@ +# Copyright (c) 2017 Cisco 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.DHCP.DHCPRelayKeywords +| Library | resources.libraries.python.Dhcp.DhcpProxy +| Documentation | Keywords used to test Honeycomb DHCP features. + +*** Keywords *** +| DHCP relay configuration from Honeycomb should be empty +| | [Documentation] | Uses Honeycomb API to retrieve DHCP relay configuration\ +| | ... | and expects to fail. +| | ... +| | ... | *Arguments:* +| | ... | - node - information about a DUT node. Type: dictionary +| | ... +| | ... | *Example:* +| | ... +| | ... | \| DHCP relay configuration from Honeycomb should be empty \ +| | ... | \| ${nodes['DUT1']} \| +| | [Arguments] | ${node} +| | Run keyword and expect error | *Status code: 404* +| | ... | Get DHCP relay oper data | ${node} + +| Log DHCP relay configuration from VAT +| | [Documentation] | Uses VAT to retrieve DHCP relay configuration from VPP. +| | ... +| | ... | *Arguments:* +| | ... | - node - information about a DUT node. Type: dictionary +| | ... | - ip_version - IP protocol version, ipv4 or ipv6. Type: string +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Log DHCP relay configuration from VAT \ +| | ... | \| ${nodes['DUT1']} \| ipv4 \| +| | [Arguments] | ${node} | ${ip_version} +| | VPP get DHCP proxy | ${node} | ${ip_version} + +| Honeycomb configures DHCP relay +| | [Documentation] | Uses Honeycomb API to configure DHCP relay. +| | ... +| | ... | *Arguments:* +| | ... | - node - information about a DUT node. Type: dictionary +| | ... | - data - settings for the DHCP relay. Type: dictionary +| | ... | - ip_version - IP protocol version, ipv4 or ipv6. Type: string +| | ... | - vrf - vrf ID to configure DHCP on. Type: integer +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Honeycomb configures DHCP relay \| ${nodes['DUT1']} \| ${data} \ +| | ... | \| ipv4 \| ${0} \| +| | [Arguments] | ${node} | ${data} | ${ip_version} | ${vrf} +| | Add DHCP relay | ${node} | ${data} | ${ip_version} | ${vrf} + +| Honeycomb clears DHCP relay configuration +| | [Documentation] | Uses Honeycomb API to delete all configured DHCP relays. +| | ... +| | ... | *Arguments:* +| | ... | - node - information about a DUT node. Type: dictionary +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Honeycomb clears DHCP relay configuration \| ${nodes['DUT1']} \| +| | [Arguments] | ${node} +| | Clear DHCP relay configuration | ${node} + +| DHCP relay configuration from Honeycomb should contain +| | [Documentation] | Retrieves oper data for DHCP relay and compares\ +| | ... | with provided values. +| | ... +| | ... | *Arguments:* +| | ... | - node - information about a DUT node. Type: dictionary +| | ... | - data - expected DHCP relay settings. Type dictionary +| | ... +| | ... | *Example:* +| | ... +| | ... | \| DHCP relay configuration from Honeycomb should contain \ +| | ... | \| ${nodes['DUT1']} \| ${data} \| +| | [Arguments] | ${node} | ${data} +| | ${oper_data}= | Get DHCP relay oper data | ${node} +| | ${oper_data}= | Set Variable | ${oper_data['relays']['relay'][0]} +| | Sort List | ${oper_data['server']} +| | Sort List | ${data['server']} +| | Should be equal | ${oper_data} | ${data}