gufo.snmp¶
Gufo SNMP: The accelerated Python SNMP client library.
Attributes:
Name | Type | Description |
---|---|---|
__version__ |
str
|
Current version |
Aes128Key
¶
DesKey
¶
Md5Key
¶
Sha1Key
¶
SnmpSession
¶
Bases: object
SNMP client session.
Should be used either directly or via asynchronous context manager.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
addr
|
str
|
SNMP agent address, either IPv4 or IPv6. |
required |
port
|
int
|
SNMP agent port. |
161
|
community
|
str
|
SNMP community (v1, v2c). |
'public'
|
engine_id
|
Optional[bytes]
|
SNMP Engine id (v3). |
None
|
user
|
Optional[User]
|
User instance (v3). |
None
|
version
|
Optional[SnmpVersion]
|
Protocol version. Autodetect if omitted:
|
None
|
timeout
|
float
|
Request timeout in seconds. |
10.0
|
tos
|
int
|
Set ToS/DSCP mark on egress packets. |
0
|
send_buffer
|
int
|
Send buffer size for UDP socket. 0 - use default size. |
0
|
recv_buffer
|
int
|
Receive buffer size for UDP socket. 0 - use default size. |
0
|
max_repetitions
|
int
|
Default max_repetitions for getbulk. |
20
|
allow_bulk
|
bool
|
Allow using GETBULK in SnmpSession.fetch() whenever possible. |
True
|
policer
|
Optional[BasePolicer]
|
Optional |
None
|
limit_rps
|
Optional[Union[int, float]]
|
Limit outgouing requests to |
None
|
__aenter__()
async
¶
Asynchronous context manager entry.
__aexit__(exc_type, exc_val, exc_tb)
async
¶
Asynchronous context manager exit.
fetch(oid)
¶
Iterate over oids using fastest method available.
When SnmpSession's allow_bulk
is set, use
SnmpSession.getbulk()
on SNMPv2, otherwise
use SnmpSession.getnext()
.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
oid
|
str
|
Starting oid |
required |
Returns:
Type | Description |
---|---|
AsyncIterator[Tuple[str, ValueType]]
|
Asynchronous iterator yielding pair of (oid, value) |
get(oid)
async
¶
Send SNMP GET request and await for response.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
oid
|
str
|
OID in numeric format, no leading dot. |
required |
Returns:
Type | Description |
---|---|
ValueType
|
Request result. Return type depends on requested oid. |
Raises:
Type | Description |
---|---|
ValueError
|
On invalid oid format. |
OSError
|
When unable to send request. |
TimeoutError
|
When timed out. |
NoSuchInstance
|
When requested key is not found. |
SnmpError
|
On other SNMP-related errors. |
get_engine_id()
¶
Get effective engine id.
Returns:
Type | Description |
---|---|
bytes
|
Engine id as bytes. |
get_many(oids)
async
¶
Send SNMP GET request for multiple oids and await for response.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
oids
|
Iterable[str]
|
Iterable of oids in numeric format, no leading dots. |
required |
Returns:
Type | Description |
---|---|
Dict[str, ValueType]
|
Dict where keys are requested oids, values are returned values. |
Dict[str, ValueType]
|
Types of values are depends on requested oids. |
Note
There is no guarante that all requested oids are present in result dict. Some values may be missed if not returned by agent.
Raises:
Type | Description |
---|---|
ValueError
|
On invalid oid format. |
OSError
|
When unable to send request. |
TimeoutError
|
When timed out. |
RuntimeError
|
On Python runtime failure. |
SnmpError
|
On other SNMP-related errors. |
getbulk(oid, max_repetitions=None)
¶
Iterate over oids.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
oid
|
str
|
Starting oid |
required |
max_repetitions
|
Optional[int]
|
Maximal amount of items per response. Override the SnmpSession's defaults. |
None
|
Returns:
Type | Description |
---|---|
AsyncIterator[Tuple[str, ValueType]]
|
Asynchronous iterator yielding pair of (oid, value) |
getnext(oid)
¶
refresh()
async
¶
Send and receive REPORT to refresh authentication state.
SNMPv3 only.
Refresh sent automatically on entering the SnmpSession and should be resent manually if over 150 seconds left from the last request.
SnmpVersion
¶
Bases: IntEnum
SNMP protocol version.
User
¶
Bases: object
SNMPv3 user.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
name
|
str
|
user name. |
required |
auth_key
|
Optional[BaseAuthKey]
|
Optional authentication key. |
None
|
priv_key
|
Optional[BasePrivKey]
|
Optional privacy key. |
None
|
snmpd_create_user: str
property
¶
createUser part of snmpd.conf.
Returns:
Type | Description |
---|---|
str
|
createUser configuration directive. |
snmpd_rouser: str
property
¶
rouser
part of snmpd.conf.
Returns:
Type | Description |
---|---|
str
|
rouser configuration directive. |
default()
classmethod
¶
get_auth_alg()
¶
Auth algorithm index with key type mask.
Algorithms
- 0 - No auth
- 1 - MD5
- 2 - SHA1
KeyType.mask applied
get_auth_key()
¶
Authentication key.
get_priv_alg()
¶
Privacy algorithm index.
Algorithms
- 0 - No privacy
- 1 - DES
- 2 - AES-128
KeyType.mask applied
get_priv_key()
¶
Privacy key.
require_auth()
¶
Chech if user requires authentication.
Returns:
Type | Description |
---|---|
bool
|
True, if user requires authetication |