From 67f247b4015b76641c6fab7c49e7d9862043c856 Mon Sep 17 00:00:00 2001 From: Michal Cmarada Date: Thu, 28 Mar 2019 08:38:32 +0100 Subject: Fix Tap failing tests Due to migration to Tap-v2 the old Tap API was removed. This fixes failing tests where Tap interface was used. Change-Id: I2f90177d2d8ee914e3ddcd3e10f212f9d72b9ac2 Signed-off-by: Michal Cmarada --- .../python/honeycomb/HcAPIKwInterfaces.py | 21 +++++++++------- .../libraries/robot/honeycomb/persistence.robot | 4 ++-- resources/libraries/robot/honeycomb/tap.robot | 28 ++++++++++++---------- 3 files changed, 29 insertions(+), 24 deletions(-) (limited to 'resources/libraries') diff --git a/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py b/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py index a7aebbba25..e9ef13352b 100644 --- a/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py +++ b/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py @@ -18,13 +18,13 @@ operational data. """ from robot.api import logger -from resources.libraries.python.topology import Topology from resources.libraries.python.HTTPRequest import HTTPCodes from resources.libraries.python.honeycomb.HoneycombSetup import HoneycombError from resources.libraries.python.honeycomb.HoneycombUtil \ import DataRepresentation from resources.libraries.python.honeycomb.HoneycombUtil \ import HoneycombUtil as HcUtil +from resources.libraries.python.topology import Topology class InterfaceKeywords(object): @@ -48,7 +48,10 @@ class InterfaceKeywords(object): VXLAN_PARAMS = ("src", "dst", "vni", "encap-vrf-id") L2_PARAMS = ("bridge-domain", "split-horizon-group", "bridged-virtual-interface") - TAP_PARAMS = ("tap-name", "mac", "device-instance") + TAP_PARAMS = ("id", "tx-ring-size", "rx-ring-size", "host-mac", + "host-interface-name", "host-namespace", "host-bridge", + "host-ipv4-address", "host-ipv6-address", "tag", + "host-ipv4-gateway", "host-ipv6-gateway", "mac") VHOST_USER_PARAMS = ("socket", "role") SUB_IF_PARAMS = ("identifier", "vlan-type", @@ -949,14 +952,14 @@ class InterfaceKeywords(object): new_tap = { "name": interface, - "type": "v3po:tap", - "v3po:tap": {} + "type": "v3po:tap-v2", + "v3po:tap-v2": {} } for param, value in kwargs.items(): if param not in InterfaceKeywords.TAP_PARAMS: - raise HoneycombError("The parameter {0} is invalid.". - format(param)) - new_tap["v3po:tap"][param] = value + raise HoneycombError( + "The parameter {0} is invalid.".format(param)) + new_tap["v3po:tap-v2"][param] = value path = ("interfaces", "interface") new_tap_structure = [new_tap, ] @@ -968,7 +971,7 @@ class InterfaceKeywords(object): """Configure TAP on the interface. The keyword configures TAP parameters on the given interface. The type - of interface must be set to "v3po:tap". + of interface must be set to "v3po:tap-v2". The new TAP parameters overwrite the current configuration. If a parameter in new configuration is missing, it is removed from TAP configuration. @@ -993,7 +996,7 @@ class InterfaceKeywords(object): format(param)) tap_structure[param] = value - path = ("interfaces", ("interface", "name", interface), "v3po:tap") + path = ("interfaces", ("interface", "name", interface), "v3po:tap-v2") return InterfaceKeywords._set_interface_properties( node, interface, path, tap_structure) diff --git a/resources/libraries/robot/honeycomb/persistence.robot b/resources/libraries/robot/honeycomb/persistence.robot index 17bacd17b1..257f227abe 100644 --- a/resources/libraries/robot/honeycomb/persistence.robot +++ b/resources/libraries/robot/honeycomb/persistence.robot @@ -141,9 +141,9 @@ | | Bridge domain Operational Data From VAT Should Be | | ... | ${node} | ${0} | ${bd_settings} | | TAP Operational Data From Honeycomb Should Be -| | ... | ${node} | ${tap_interface} | ${tap_settings} +| | ... | ${node} | ${tap_interface} | ${tap_settings_oper} | | TAP Operational Data From VAT Should Be -| | ... | ${node} | ${tap_interface} | ${tap_settings} +| | ... | ${node} | ${tap_interface_vat} | ${tap_settings_vat} | | Vhost-user Operational Data From Honeycomb Should Be | | ... | ${node} | ${vhost_interface} | ${vhost_user_client} | | Vhost-user Operational Data From VAT Should Be diff --git a/resources/libraries/robot/honeycomb/tap.robot b/resources/libraries/robot/honeycomb/tap.robot index 0d5585b4bf..8a80c4d555 100644 --- a/resources/libraries/robot/honeycomb/tap.robot +++ b/resources/libraries/robot/honeycomb/tap.robot @@ -27,8 +27,8 @@ | | ... | | ... | *Example:* | | ... | \| Honeycomb creates TAP interface \ -| | ... | \| ${nodes['DUT1']} \| tap_int1 \| ${{'tap-name':'tap1',\ -| | ... | 'mac':'08:00:27:60:26:ab', 'device-instance':3}} \| +| | ... | \| ${nodes['DUT1']} \| tap_int1 \| ${{'host-interface-name':'tap1',\ +| | ... | 'mac':'08:00:27:60:26:ab', 'id':3}} \| | | ... | | [Arguments] | ${node} | ${interface} | ${settings} | | Create TAP interface | ${node} | ${interface} @@ -44,8 +44,8 @@ | | ... | | ... | *Example:* | | ... | \| Honeycomb configures TAP interface \ -| | ... | \| ${nodes['DUT1']} \| tap_int1 \| ${{'tap-name':'tap1',\ -| | ... | 'mac':'08:00:27:60:26:ab', 'device-instance':3}} \| +| | ... | \| ${nodes['DUT1']} \| tap_int1 \| ${{'host-interface-name':'tap1',\ +| | ... | 'mac':'08:00:27:60:26:ab', 'id':3}} \| | | ... | | [Arguments] | ${node} | ${interface} | ${settings} | | Configure interface TAP | ${node} | ${interface} @@ -77,13 +77,13 @@ | | ... | *Example:* | | ... | | ... | \| TAP Operational Data From Honeycomb Should Be \ -| | ... | \| ${nodes['DUT1']} \| tap_int1 \| ${{'tap-name':'tap1',\ -| | ... | 'mac':'08:00:27:60:26:ab', 'device-instance':3}} \| +| | ... | \| ${nodes['DUT1']} \| tap_int1 \| ${{'host-interface-name':'tap1',\ +| | ... | 'mac':'08:00:27:60:26:ab', 'id':3}} \| | | ... | | [Arguments] | ${node} | ${interface} | ${settings} | | ${api_data}= | Get interface oper data | ${node} | ${interface} -| | ${api_tap}= | Set Variable | ${api_data['v3po:tap']} -| | Should be equal | ${api_tap['tap-name']} | ${settings['tap-name']} +| | ${api_tap}= | Set Variable | ${api_data['v3po:tap-v2']} +| | Should be equal | ${api_tap['device-name']} | ${settings['device-name']} | | ${api_mac}= | Set Variable | ${api_data['phys-address']} | | Should be equal | ${api_mac} | ${settings['mac']} @@ -98,12 +98,14 @@ | | ... | *Example:* | | ... | | ... | \| TAP Operational Data From Honeycomb Should Be \ -| | ... | \| ${nodes['DUT1']} \| ${{'tap-name':'tap1',\ -| | ... | 'mac':'08:00:27:60:26:ab', 'device-instance':3}} \| +| | ... | \| ${nodes['DUT1']} \| ${{'host-interface-name':'tap1',\ +| | ... | 'mac':'08:00:27:60:26:ab', 'id':3}} \| | | ... | | [Arguments] | ${node} | ${interface} | ${settings} | | ${vat_data}= | TAP Dump | ${node} | ${interface} -| | Should be equal | ${vat_data['dev_name']} | ${settings['tap-name']} +| | Should be equal | ${vat_data['dev_name']} | ${settings['dev_name']} +| | Should be equal | ${vat_data['rx_ring_sz']} | ${settings['rx_ring_sz']} +| | Should be equal | ${vat_data['tx_ring_sz']} | ${settings['tx_ring_sz']} # other settings not accessible through VAT commands | TAP Operational Data From Honeycomb Should Be empty @@ -121,8 +123,8 @@ | | ... | | [Arguments] | ${node} | ${interface} | | ${api_data}= | Get interface oper data | ${node} | ${interface} -| | Run keyword and expect error | *KeyError: 'v3po:tap' | Set Variable -| | ... | ${api_data['v3po:tap']} +| | Run keyword and expect error | *KeyError: 'v3po:tap-v2' | Set Variable +| | ... | ${api_data['v3po:tap-v2']} | TAP Operational Data From VAT Should Be empty | | [Documentation] | Attempts to retrieve interface TAP configuration\ -- cgit 1.2.3-korg