tests: handle removed interface
[vpp.git] / test / vpp_papi_provider.py
index 7e87b2c..9ff616c 100644 (file)
@@ -7,12 +7,13 @@
 
 import os
 import time
-from collections import deque
 import queue
 from six import moves, iteritems
-from vpp_papi import VPPApiClient, mac_pton
+from config import config
+from vpp_papi import VPPApiClient
 from hook import Hook
-from vpp_ip_route import MPLS_IETF_MAX_LABEL, MPLS_LABEL_INVALID
+from vpp_papi_exceptions import CliFailedCommandError, CliSyntaxError,\
+    UnexpectedApiReturnValueError
 
 #
 # Dictionary keyed on message name to override default values for
@@ -93,8 +94,6 @@ defaultmapping = {
     'vxlan_add_del_tunnel': {'mcast_sw_if_index': 4294967295, 'is_add': 1,
                              'decap_next_index': 4294967295,
                              'instance': 4294967295, },
-    'vxlan_gpe_add_del_tunnel': {'mcast_sw_if_index': 4294967295, 'is_add': 1,
-                                 'protocol': 3, },
     'want_bfd_events': {'enable_disable': 1, },
     'want_igmp_events': {'enable': 1, },
     'want_interface_events': {'enable_disable': 1, },
@@ -107,19 +106,6 @@ def as_fn_signature(d):
     return ", ".join(f"{k}={v}" for k, v in d.items())
 
 
-class CliFailedCommandError(Exception):
-    """ cli command failed."""
-
-
-class CliSyntaxError(Exception):
-    """ cli command had a syntax error."""
-
-
-class UnexpectedApiReturnValueError(Exception):
-    """ exception raised when the API return value is unexpected """
-    pass
-
-
 class VppPapiProvider(object):
     """VPP-api provider using vpp-papi
 
@@ -137,7 +123,7 @@ class VppPapiProvider(object):
 
         # install_dir is a class attribute. We need to set it before
         # calling the constructor.
-        VPPApiClient.apidir = os.getenv('VPP_INSTALL_PATH')
+        VPPApiClient.apidir = config.vpp_install_dir
 
         self.vpp = VPPApiClient(logger=test_class.logger,
                                 read_timeout=read_timeout,
@@ -288,7 +274,7 @@ class VppPapiProvider(object):
                        reply.retval,
                        moves.reprlib.repr(reply))
                 self.test_class.logger.info(msg)
-                raise UnexpectedApiReturnValueError(msg)
+                raise UnexpectedApiReturnValueError(reply.retval, msg)
         elif self._expect_api_retval == self._zero:
             if hasattr(reply, 'retval') and reply.retval != expected_retval:
                 msg = "%s(%s) failed, expected %d return value instead " \
@@ -297,7 +283,7 @@ class VppPapiProvider(object):
                                        expected_retval, reply.retval,
                                        repr(reply))
                 self.test_class.logger.info(msg)
-                raise UnexpectedApiReturnValueError(msg)
+                raise UnexpectedApiReturnValueError(reply.retval, msg)
         else:
             raise Exception("Internal error, unexpected value for "
                             "self._expect_api_retval %s" %
@@ -654,45 +640,6 @@ class VppPapiProvider(object):
                             'is_ip6': is_ip6
                         }})
 
-    def vxlan_gpe_add_del_tunnel(
-            self,
-            src_addr,
-            dst_addr,
-            mcast_sw_if_index=0xFFFFFFFF,
-            is_add=1,
-            is_ipv6=0,
-            encap_vrf_id=0,
-            decap_vrf_id=0,
-            protocol=3,
-            vni=0):
-        """
-
-        :param local:
-        :param remote:
-        :param is_add:  (Default value = 1)
-        :param is_ipv6:  (Default value = 0)
-        :param encap_vrf_id:  (Default value = 0)
-        :param decap_vrf_id:  (Default value = 0)
-        :param mcast_sw_if_index:  (Default value = 0xFFFFFFFF)
-        :param protocol:  (Default value = 3)
-        :param vni:  (Default value = 0)
-
-        """
-        return self.api(self.papi.vxlan_gpe_add_del_tunnel,
-                        {'is_add': is_add,
-                         'is_ipv6': is_ipv6,
-                         'local': src_addr,
-                         'remote': dst_addr,
-                         'mcast_sw_if_index': mcast_sw_if_index,
-                         'encap_vrf_id': encap_vrf_id,
-                         'decap_vrf_id': decap_vrf_id,
-                         'protocol': protocol,
-                         'vni': vni})
-
-    def vxlan_gbp_tunnel_dump(self, sw_if_index=0xffffffff):
-        return self.api(self.papi.vxlan_gbp_tunnel_dump,
-                        {'sw_if_index': sw_if_index})
-
     def pppoe_add_del_session(
             self,
             client_ip,
@@ -997,30 +944,6 @@ class VppPapiProvider(object):
         return self.api(self.papi.punt_socket_deregister,
                         {'punt': reg})
 
-    def gbp_endpoint_dump(self):
-        """ GBP endpoint Dump """
-        return self.api(self.papi.gbp_endpoint_dump, {})
-
-    def gbp_recirc_dump(self):
-        """ GBP recirc Dump """
-        return self.api(self.papi.gbp_recirc_dump, {})
-
-    def gbp_ext_itf_dump(self):
-        """ GBP recirc Dump """
-        return self.api(self.papi.gbp_ext_itf_dump, {})
-
-    def gbp_subnet_dump(self):
-        """ GBP Subnet Dump """
-        return self.api(self.papi.gbp_subnet_dump, {})
-
-    def gbp_contract_dump(self):
-        """ GBP contract Dump """
-        return self.api(self.papi.gbp_contract_dump, {})
-
-    def gbp_vxlan_tunnel_dump(self):
-        """ GBP VXLAN tunnel add/del """
-        return self.api(self.papi.gbp_vxlan_tunnel_dump, {})
-
     def igmp_enable_disable(self, sw_if_index, enable, host):
         """ Enable/disable IGMP on a given interface """
         return self.api(self.papi.igmp_enable_disable,