X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2FIPUtil.py;h=4d5753ea9267488729223fed3ab34c9a89636b66;hp=57a738bb469ee2f59ac32250242577fd85727327;hb=HEAD;hpb=b758131f3cca4047c31d74fe772168b59a56baf1 diff --git a/resources/libraries/python/IPUtil.py b/resources/libraries/python/IPUtil.py index 57a738bb46..933fa34211 100644 --- a/resources/libraries/python/IPUtil.py +++ b/resources/libraries/python/IPUtil.py @@ -1,5 +1,5 @@ -# Copyright (c) 2021 Cisco and/or its affiliates. -# Copyright (c) 2021 PANTHEON.tech s.r.o. +# Copyright (c) 2023 Cisco and/or its affiliates. +# Copyright (c) 2023 PANTHEON.tech s.r.o. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -15,7 +15,6 @@ """Common IP utilities library.""" import re -import os from enum import IntEnum @@ -28,7 +27,6 @@ from resources.libraries.python.IPAddress import IPAddress from resources.libraries.python.PapiExecutor import PapiSocketExecutor from resources.libraries.python.ssh import exec_cmd_no_error, exec_cmd from resources.libraries.python.topology import Topology -from resources.libraries.python.VatExecutor import VatExecutor from resources.libraries.python.Namespaces import Namespaces @@ -155,8 +153,8 @@ class NetworkIncrement(ObjIncrement): return f"{self._value.network_address}/{self._prefix_len}" elif self._format == u"addr": return f"{self._value.network_address}" - else: - raise RuntimeError(f"Unsupported format {self._format}") + + raise RuntimeError(f"Unsupported format {self._format}") class IPUtil: @@ -738,52 +736,6 @@ class IPUtil: """ count = kwargs.get(u"count", 1) - if count > 100: - if not kwargs.get(u"multipath", True): - raise RuntimeError(u"VAT exec supports only multipath behavior") - gateway = kwargs.get(u"gateway", u"") - interface = kwargs.get(u"interface", u"") - local = kwargs.get(u"local", u"") - if interface: - interface = InterfaceUtil.vpp_get_interface_name( - node, InterfaceUtil.get_interface_index( - node, interface - ) - ) - vrf = kwargs.get(u"vrf", None) - trailers = list() - if vrf: - trailers.append(f"table {vrf}") - if gateway: - trailers.append(f"via {gateway}") - if interface: - trailers.append(interface) - elif interface: - trailers.append(f"via {interface}") - if local: - if gateway or interface: - raise RuntimeError(u"Unsupported combination with local.") - trailers.append(u"local") - trailer = u" ".join(trailers) - command_parts = [u"exec ip route add", u"network goes here"] - if trailer: - command_parts.append(trailer) - netiter = NetworkIncrement( - ip_network(f"{network}/{prefix_len}", strict=strict), - format=u"slash" - ) - tmp_filename = u"/tmp/routes.config" - with open(tmp_filename, u"w") as tmp_file: - for _ in range(count): - command_parts[1] = netiter.inc_fmt() - print(u" ".join(command_parts), file=tmp_file) - VatExecutor().execute_script( - tmp_filename, node, timeout=1800, json_out=False, - copy_on_execute=True, history=False - ) - os.remove(tmp_filename) - return - cmd = u"ip_route_add_del" args = dict( is_add=True, @@ -796,7 +748,7 @@ class IPUtil: ip_network(f"{network}/{prefix_len}", strict=strict), format=u"addr" ) - with PapiSocketExecutor(node) as papi_exec: + with PapiSocketExecutor(node, is_async=True) as papi_exec: for i in range(count): args[u"route"] = IPUtil.compose_vpp_route_structure( node, netiter.inc_fmt(), prefix_len, **kwargs