From e8c787b699661f00e8358cc711bb20b8993dc87a Mon Sep 17 00:00:00 2001 From: Tibor Frank Date: Mon, 6 Jun 2016 11:01:03 +0200 Subject: Add Tests for Honeycomb VxLAN GPE support JIRA: CSIT-131 - add tests for Honeycomb VxLAN GPE support - add keywords needed for tests Change-Id: I460ecd30835bb95140958b20946b1d41ac6d9abc Signed-off-by: Tibor Frank --- .../python/honeycomb/HcAPIKwInterfaces.py | 42 +++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) (limited to 'resources/libraries/python/honeycomb/HcAPIKwInterfaces.py') diff --git a/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py b/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py index e8cbc78bea..92b5830847 100644 --- a/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py +++ b/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py @@ -35,7 +35,7 @@ class InterfaceKeywords(object): """ INTF_PARAMS = ("name", "description", "type", "enabled", - "link-up-down-trap-enable", "v3po:l2") + "link-up-down-trap-enable", "v3po:l2", "v3po:vxlan-gpe") IPV4_PARAMS = ("enabled", "forwarding", "mtu") IPV6_PARAMS = ("enabled", "forwarding", "mtu", "dup-addr-detect-transmits") IPV6_AUTOCONF_PARAMS = ("create-global-addresses", @@ -63,6 +63,12 @@ class InterfaceKeywords(object): "match-any-inner-id", "exact-match", "default-subif") + VXLAN_GPE_PARAMS = ("local", + "remote", + "vni", + "next-protocol", + "encap-vrf-id", + "decap-vrf-id") def __init__(self): pass @@ -1073,3 +1079,37 @@ class InterfaceKeywords(object): if name not in names1 and name not in ignore: raise HoneycombError("Interface {0} not present in list {1}" .format(name, list1)) + + @staticmethod + def create_vxlan_gpe_interface(node, interface, **kwargs): + """Create a new VxLAN GPE interface. + + :param node: Honeycomb node. + :param interface: The name of interface to be created. + :param kwargs: Parameters and their values. The accepted parameters are + defined in InterfaceKeywords.VXLAN_GPE_PARAMS. + :type node: dict + :type interface: str + :type kwargs: dict + :return: Content of response. + :rtype: bytearray + :raises HoneycombError: If a parameter in kwargs is not valid. + """ + + new_vxlan_gpe = { + "name": interface, + "type": "v3po:vxlan-gpe-tunnel", + "v3po:vxlan-gpe": {} + } + for param, value in kwargs.items(): + if param in InterfaceKeywords.INTF_PARAMS: + new_vxlan_gpe[param] = value + elif param in InterfaceKeywords.VXLAN_GPE_PARAMS: + new_vxlan_gpe["v3po:vxlan-gpe"][param] = value + else: + raise HoneycombError("The parameter {0} is invalid.". + format(param)) + path = ("interfaces", "interface") + vxlan_gpe_structure = [new_vxlan_gpe, ] + return InterfaceKeywords._set_interface_properties( + node, interface, path, vxlan_gpe_structure) -- cgit 1.2.3-korg