summaryrefslogtreecommitdiff
path: root/pysnmp/smi/error.py
blob: 1895a97c3d4b46dc0ba64cecf215c70d8909049a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from pyasn1.error import PyAsn1Error
from pysnmp.error import PySnmpError

class SmiError(PySnmpError, PyAsn1Error): pass
class MibLoadError(SmiError): pass
class MibNotFoundError(MibLoadError): 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 __contains__(self, key): return key in self.__outArgs
    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 WrongLengthError(MibOperationError): pass
class WrongEncodingError(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(MibOperationError): pass
class EndOfMibViewError(MibOperationError): pass

# Row management
class TableRowManagement(MibOperationError): pass
class RowCreationWanted(TableRowManagement): pass
class RowDestructionWanted(TableRowManagement): pass