diff options
author | elie <elie> | 2012-07-23 14:55:50 +0000 |
---|---|---|
committer | elie <elie> | 2012-07-23 14:55:50 +0000 |
commit | 609216e63f8df79959f14760e5171afa1a7a2c16 (patch) | |
tree | 24dec3d34ec8c637bbcc3d3ea353205ea0bdc685 | |
parent | 82ce327aaf7f90763834b207e25d22601ab7e874 (diff) | |
download | pysnmp-609216e63f8df79959f14760e5171afa1a7a2c16.tar.gz |
RowStatus code refactored
-rw-r--r-- | pysnmp/smi/mibs/SNMPv2-TC.py | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/pysnmp/smi/mibs/SNMPv2-TC.py b/pysnmp/smi/mibs/SNMPv2-TC.py index 5176052..7445f50 100644 --- a/pysnmp/smi/mibs/SNMPv2-TC.py +++ b/pysnmp/smi/mibs/SNMPv2-TC.py @@ -290,25 +290,29 @@ class RowStatus(Integer, TextualConvention): ) } defaultValue = stNotExists - pendingError = None def clone(self, value=None, **kwargs): - # Run through states transition matrix, resolve new instance value - err, value = self.stateMatrix.get( - (Integer.clone(self, value), int(self)), (error.MibOperationError, None) - ) - debug.logger & debug.flagIns and debug.logger('RowStatus state resolution: %s, %s -> %s, %s' % (value, int(self), err, value)) if value is None: - value = self + excValue, newState = None, self else: - value = Integer.clone(self, value) - if err is not None: - err = err( - msg='Exception at row state transition %s->%s' % (self, value), - syntax=value - ) - raise err - return value + value = self.__class__(value) + # Run through states transition matrix, + # resolve new instance value + excValue, newState = self.stateMatrix.get( + (value, self), + (error.MibOperationError, None) + ) + newState = self.__class__(newState) + + debug.logger & debug.flagIns and debug.logger('RowStatus state change from %r to %s produced new state %r, error indication %r' % (self, value, newState, excValue)) + + if excValue is not None: + excValue = excValue( + msg='Exception at row state transition from %s to %s yields state %s and exception' % (self, value, newState), syntax=newState + ) + raise excValue + + return newState class TimeStamp(TimeTicks, TextualConvention): pass |