from pyasn1.error import PyAsn1Error
from pysnmp.error import PySnmpError
class SmiError(PySnmpError, PyAsn1Error): pass
class MibOperationError(SmiError):
def __init__(self, **kwargs): self.__outArgs = kwargs
def __str__(self): return '%s(%s)' % (
self.__class__.__name__, self.__outArgs
)
def __getitem__(self, key): return self.__outArgs[key]
def has_key(self, key): return self.__outArgs.has_key(key)
def get(self, key, defVal=None): return self.__outArgs.get(key, defVal)
def keys(self): return self.__outArgs.keys()
def update(self, d): self.__outArgs.update(d)
# Aligned with SNMPv2 PDU error-status
class GenError(MibOperationError): pass
class NoAccessError(MibOperationError): pass
class WrongTypeError(MibOperationError): pass
class WrongValueError(MibOperationError): pass
class NoCreationError(MibOperationError): pass
class InconsistentValueError(MibOperationError): pass
class ResourceUnavailableError(MibOperationError): pass
class CommitFailedError(MibOperationError): pass
class UndoFailedError(MibOperationError): pass
class AuthorizationError(MibOperationError): pass
class NotWritableError(MibOperationError): pass
class InconsistentNameError(MibOperationError): pass
# Aligned with SNMPv2 Var-Bind exceptions
class NoSuchObjectError(MibOperationError): pass
class NoSuchInstanceError(NoSuchObjectError): pass
class EndOfMibViewError(MibOperationError): pass
# Row management
class RowCreationWanted(MibOperationError): pass
class RowDestructionWanted(MibOperationError): pass
|