diff options
author | Matej Klotton <mklotton@cisco.com> | 2016-04-28 18:15:49 +0200 |
---|---|---|
committer | Matej Klotton <mklotton@cisco.com> | 2016-05-16 08:57:29 +0000 |
commit | 06f37e7ba486c598cf2896c87a82c95b8afe17a4 (patch) | |
tree | 9ae53655da9fb1bb4a2c2cd717cc9c9748afba42 /resources/libraries/python | |
parent | ef93cbce8d23d85ade2ba6c446a7cf7b8da5bf1b (diff) |
CSIT-18: Add GRE tunnel libraries and tests.
Change-Id: I91ccd65a26ea1782611bccc3badd91e64366a162
Signed-off-by: Matej Klotton <mklotton@cisco.com>
Diffstat (limited to 'resources/libraries/python')
-rw-r--r-- | resources/libraries/python/InterfaceUtil.py | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/resources/libraries/python/InterfaceUtil.py b/resources/libraries/python/InterfaceUtil.py index 6790fb7221..94250fba28 100644 --- a/resources/libraries/python/InterfaceUtil.py +++ b/resources/libraries/python/InterfaceUtil.py @@ -572,7 +572,40 @@ class InterfaceUtil(object): with VatTerminal(node) as vat: vat.vat_terminal_exec_cmd('exec show interfaces') - return '{}.{}'.format(interface, sub_id), sw_subif_index + name = '{}.{}'.format(interface, sub_id) + return name, sw_subif_index + + @staticmethod + def create_gre_tunnel_interface(node, source_ip, destination_ip): + """Create GRE tunnel interface on node. + + :param node: VPP node to add tunnel interface. + :param source_ip: Source of the GRE tunnel. + :param destination_ip: Destination of the GRE tunnel. + :type node: dict + :type source_ip: str + :type destination_ip: str + :return: Name and index of created GRE tunnel interface. + :rtype: tuple + :raises RuntimeError: If unable to create GRE tunnel interface. + """ + output = VatExecutor.cmd_from_template(node, "create_gre.vat", + src=source_ip, + dst=destination_ip) + output = output[0] + + if output["retval"] == 0: + sw_if_index = output["sw_if_index"] + + vat_executor = VatExecutor() + vat_executor.execute_script_json_out("dump_interfaces.vat", node) + interface_dump_json = vat_executor.get_script_stdout() + name = VatJsonUtil.get_interface_name_from_json( + interface_dump_json, sw_if_index) + return name, sw_if_index + else: + raise RuntimeError('Unable to create GRE tunnel on node {}.' + .format(node)) @staticmethod def vpp_create_loopback(node): |