X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2FIPUtil.py;h=f3c037fdf097f1ce791a8c9798f7b7f17eec6523;hp=ed38272645140b45e958ed35e1e79f4880cdc030;hb=74a354349cf13e8874259faec5473b7bbf25d6e5;hpb=a7568a2eabf0872d25260c14ec084cb3d5ffb0f3 diff --git a/resources/libraries/python/IPUtil.py b/resources/libraries/python/IPUtil.py index ed38272645..f3c037fdf0 100644 --- a/resources/libraries/python/IPUtil.py +++ b/resources/libraries/python/IPUtil.py @@ -139,6 +139,26 @@ class IPUtil(object): raise RuntimeError( 'Could not set IP for interface, reason:{}'.format(stderr)) + @staticmethod + def set_linux_interface_route(node, interface, route, namespace=None): + """Set route via interface in linux. + + :param node: Node where to execute command. + :param interface: Interface in namespace. + :param route: Route to be added via interface. + :param namespace: Execute command in namespace. Optional parameter. + :type node: dict + :type interface: str + :type route: str + :type namespace: str + """ + if namespace is not None: + cmd = 'ip netns exec {} ip route add {} dev {}'.format( + namespace, route, interface) + else: + cmd = 'ip route add {} dev {}'.format(route, interface) + exec_cmd_no_error(node, cmd, sudo=True) + def convert_ipv4_netmask_prefix(network): """Convert network mask to equivalent network prefix length or vice versa.