summaryrefslogtreecommitdiff
path: root/pysnmp/smi/error.py
blob: 87909b1e11163ccb06907f7cdcf5feca1e7b71cc (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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#
# This file is part of pysnmp software.
#
# Copyright (c) 2005-2019, Ilya Etingof <etingof@gmail.com>
# License: http://snmplabs.com/pysnmp/license.html
#
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 values

class TooBigError(MibOperationError):
    pass


class NoSuchNameError(MibOperationError):
    pass


class BadValueError(MibOperationError):
    pass


class ReadOnlyError(MibOperationError):
    pass


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 PDU exceptions or error-status values

class NoSuchObjectError(NoSuchNameError):
    pass


class NoSuchInstanceError(NoSuchNameError):
    pass


class EndOfMibViewError(NoSuchNameError):
    pass


# SNMP table management exceptions

class TableRowManagement(MibOperationError):
    pass


class RowCreationWanted(TableRowManagement):
    pass


class RowDestructionWanted(TableRowManagement):
    pass


class RowConsistencyWanted(TableRowManagement):
    pass


# MIB instrumentation support for GETNEXT

class SuggestedNextObject(MibOperationError):
    pass