Files
vpp-snmp-agent/agentx/dataset.py

53 lines
1.5 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import (
absolute_import,
division,
print_function,
)
import time
import agentx
import logging
class NullHandler(logging.Handler):
def emit(self, record):
pass
class DataSet():
def __init__(self):
self._data = {}
self.logger = logging.getLogger('agentx.dataset')
self.logger.addHandler(NullHandler())
def set(self, oid, oid_type, value):
if oid_type.startswith('int'):
t = agentx.TYPE_INTEGER
elif oid_type.startswith('str'):
t = agentx.TYPE_OCTETSTRING
elif oid_type.startswith('oid'):
t = agentx.TYPE_OBJECTIDENTIFIER
elif oid_type.startswith('ip'):
t = agentx.TYPE_IPADDRESS
elif oid_type == 'counter32' or oid_type == 'uint32' or oid_type == 'u32':
t = agentx.TYPE_COUNTER32
elif oid_type == 'gauge32':
t = agentx.TYPE_GAUGE32
elif oid_type.startswith('time') or oid_type.startswith('tick'):
t = agentx.TYPE_TIMETICKS
elif oid_type.startswith('opaque'):
t = agentx.TYPE_OPAQUE
elif oid_type == 'counter64' or oid_type == 'uint64' or oid_type == 'u64':
t = agentx.TYPE_COUNTER64
else:
self.logger.error('Invalid oid_type: %s' % (oid_type))
return
self._data[oid] = {
'name': oid,
'type': t,
'value': value
}