X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvpp-api%2Fpython%2Fvpp_papi%2Fvpp_stats.py;h=0afed26215d432a7b98fc869330b6e9a40e044d4;hb=refs%2Fchanges%2F99%2F16699%2F2;hp=06daaf86f508143f69834dbf5790aa29c7d2042f;hpb=3c8e14684d32c19529c471a747bc9693a2801335;p=vpp.git diff --git a/src/vpp-api/python/vpp_papi/vpp_stats.py b/src/vpp-api/python/vpp_papi/vpp_stats.py index 06daaf86f50..0afed26215d 100644 --- a/src/vpp-api/python/vpp_papi/vpp_stats.py +++ b/src/vpp-api/python/vpp_papi/vpp_stats.py @@ -128,7 +128,6 @@ def stat_entry_to_python(api, e): # Scalar index if e.type == 1: return e.scalar_value - return None if e.type == 2: return simple_counter_vec_list(api, e.simple_counter_vec) if e.type == 3: @@ -139,7 +138,30 @@ def stat_entry_to_python(api, e): class VPPStatsIOError(IOError): - pass + message = "Stat segment client connection returned: " \ + "%(retval)s %(strerror)s." + + strerror = {-1: "Stat client couldn't open socket", + -2: "Stat client socket open but couldn't connect", + -3: "Receiving file descriptor failed", + -4: "mmap fstat failed", + -5: "mmap map failed" + } + + def __init__(self, message=None, **kwargs): + if 'retval' in kwargs: + self.retval = kwargs['retval'] + kwargs['strerror'] = self.strerror[int(self.retval)] + + if not message: + try: + message = self.message % kwargs + except Exception as e: + message = self.message + else: + message = message % kwargs + + super(VPPStatsIOError, self).__init__(message) class VPPStatsClientLoadError(RuntimeError): @@ -168,7 +190,7 @@ class VPPStats(object): break if rv != 0: - raise VPPStatsIOError() + raise VPPStatsIOError(retval=rv) def heartbeat(self): return self.api.stat_segment_heartbeat_r(self.client)