From 6ccc6e91648312cc210e9b6a18e469e64f4a523f Mon Sep 17 00:00:00 2001 From: Paul Vinciguerra Date: Tue, 27 Nov 2018 08:15:22 -0800 Subject: vpp_papi: Add custom exceptions. This patchset adds and raises the following custom exception classes: * class VPPApiError(Exception): * class VPPNotImplementedError(NotImplementedError): * class VPPIOError(IOError): * class VPPRuntimeError(RuntimeError): * class VPPValueError(ValueError): * class VPPSerializerValueError(ValueError): * class VPPStatsIOError(IOError): * class VPPStatsClientLoadError(RuntimeError): * class VppTransportShmemIOError(IOError): * class VppTransportSocketIOError(IOError) Change-Id: Ia40900fd2dcef148d01125d6c691329fc666901e Signed-off-by: Paul Vinciguerra --- src/vpp-api/python/vpp_papi/vpp_transport_shmem.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/vpp-api/python/vpp_papi/vpp_transport_shmem.py') diff --git a/src/vpp-api/python/vpp_papi/vpp_transport_shmem.py b/src/vpp-api/python/vpp_papi/vpp_transport_shmem.py index 5920cd16dcb..53ae775069f 100644 --- a/src/vpp-api/python/vpp_papi/vpp_transport_shmem.py +++ b/src/vpp-api/python/vpp_papi/vpp_transport_shmem.py @@ -47,7 +47,13 @@ def vac_error_handler(arg, msg, msg_len): vpp_object.logger.warning("VPP API client:: %s", ffi.string(msg, msg_len)) +class VppTransportShmemIOError(IOError): + pass + + class VppTransport(object): + VppTransportShmemIOError = VppTransportShmemIOError + def __init__(self, parent, read_timeout, server_address): self.connected = False self.read_timeout = read_timeout @@ -95,23 +101,23 @@ class VppTransport(object): def _write_new_cffi(self, buf): """Send a binary-packed message to VPP.""" if not self.connected: - raise IOError(1, 'Not connected') + raise VppTransportShmemIOError(1, 'Not connected') return vpp_api.vac_write(ffi.from_buffer(buf), len(buf)) def _write_legacy_cffi(self, buf): """Send a binary-packed message to VPP.""" if not self.connected: - raise IOError(1, 'Not connected') + raise VppTransportShmemIOError(1, 'Not connected') return vpp_api.vac_write(bytes(buf), len(buf)) def read(self): if not self.connected: - raise IOError(1, 'Not connected') + raise VppTransportShmemIOError(1, 'Not connected') mem = ffi.new("char **") size = ffi.new("int *") rv = vpp_api.vac_read(mem, size, self.read_timeout) if rv: - raise IOError(rv, 'vac_read failed') + raise VppTransportShmemIOError(rv, 'vac_read failed') msg = bytes(ffi.buffer(mem[0], size[0])) vpp_api.vac_free(mem[0]) return msg -- cgit 1.2.3-korg