X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2Fhoneycomb%2FHcAPIKwInterfaces.py;h=854bc07ee6ad1f8284b4a7c2268c88107c7ed97c;hp=b1dd5b5dd1729a78595540d9595f38cd4f3e6217;hb=97c8c74e4f813a259ca825e831f83d546d96a171;hpb=331358b445959203d1642e0f7b89bc8d1cc4ef13 diff --git a/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py b/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py index b1dd5b5dd1..854bc07ee6 100644 --- a/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py +++ b/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py @@ -674,30 +674,38 @@ class InterfaceKeywords(object): node, interface, path, value) @staticmethod - def configure_interface_vxlan(node, interface, param, value): - """Configure the VxLAN parameters of interface. + def configure_interface_vxlan(node, interface, **kwargs): + """Configure VxLAN on the interface. + + The keyword configures VxLAN parameters on the given interface. The type + of interface must be set to "v3po:vxlan-tunnel". + The new VxLAN parameters overwrite the current configuration. If a + parameter in new configuration is missing, it is removed from VxLAN + configuration. + If the dictionary kwargs is empty, VxLAN configuration is removed. :param node: Honeycomb node. :param interface: The name of interface. - :param param: Parameter to configure (set, change, remove) - :param value: The value of parameter. If None, the parameter will be - removed. + :param kwargs: Parameters and their values. The accepted parameters are + defined in InterfaceKeywords.VXLAN_PARAMS. :type node: dict :type interface: str - :type param: str - :type value: str + :type kwargs: dict :return: Content of response. :rtype: bytearray :raises HoneycombError: If the parameter is not valid. """ - if param not in InterfaceKeywords.VXLAN_PARAMS: - raise HoneycombError("The parameter {0} is invalid.".format(param)) + vx_lan_structure = dict() + for param, value in kwargs.items(): + if param not in InterfaceKeywords.VXLAN_PARAMS: + raise HoneycombError("The parameter {0} is invalid.". + format(param)) + vx_lan_structure[param] = value - path = ("interfaces", ("interface", "name", interface), "v3po:vxlan", - param) + path = ("interfaces", ("interface", "name", interface), "v3po:vxlan") return InterfaceKeywords._set_interface_properties( - node, interface, path, value) + node, interface, path, vx_lan_structure) @staticmethod def configure_interface_l2(node, interface, param, value):