summaryrefslogtreecommitdiff
path: root/pysnmp/smi
diff options
context:
space:
mode:
authorIlya Etingof <etingof@gmail.com>2017-11-06 00:32:15 +0100
committerIlya Etingof <etingof@gmail.com>2017-11-06 00:32:15 +0100
commitbe4f6ed73b41e273e742d4c9cec0509188eede5d (patch)
tree3b83eae710a649cab4907f405b0d8b6f975e5037 /pysnmp/smi
parent57186559dcbe461a9af7cdd56686f447e8c943c0 (diff)
downloadpysnmp-git-be4f6ed73b41e273e742d4c9cec0509188eede5d.tar.gz
added support for some more fields of SMIv2 MACRO types
Diffstat (limited to 'pysnmp/smi')
-rw-r--r--pysnmp/smi/mibs/SNMPv2-CONF.py90
-rw-r--r--pysnmp/smi/mibs/SNMPv2-SMI.py8
2 files changed, 79 insertions, 19 deletions
diff --git a/pysnmp/smi/mibs/SNMPv2-CONF.py b/pysnmp/smi/mibs/SNMPv2-CONF.py
index b08292b5..a348ebaf 100644
--- a/pysnmp/smi/mibs/SNMPv2-CONF.py
+++ b/pysnmp/smi/mibs/SNMPv2-CONF.py
@@ -14,9 +14,17 @@ MibNode, = mibBuilder.importSymbols('SNMPv2-SMI', 'MibNode')
class ObjectGroup(MibNode):
+ status = 'current'
objects = ()
description = ''
+ def getStatus(self):
+ return self.status
+
+ def setStatus(self, v):
+ self.status = v
+ return self
+
def getObjects(self):
return getattr(self, 'objects', ())
@@ -35,17 +43,25 @@ class ObjectGroup(MibNode):
return self
def asn1Print(self):
- return '\
-OBJECT-GROUP\n\
- OBJECTS { %s }\n\
- DESCRIPTION \"%s\"\
-' % (', '.join([x for x in self.getObjects()]), self.getDescription())
+ return """\
+OBJECT-GROUP
+ OBJECTS { %s }
+ DESCRIPTION "%s"
+""" % (', '.join([x for x in self.getObjects()]), self.getDescription())
class NotificationGroup(MibNode):
+ status = 'current'
objects = ()
description = ''
+ def getStatus(self):
+ return self.status
+
+ def setStatus(self, v):
+ self.status = v
+ return self
+
def getObjects(self):
return getattr(self, 'objects', ())
@@ -64,17 +80,25 @@ class NotificationGroup(MibNode):
return self
def asn1Print(self):
- return '\
-NOTIFICATION-GROUP\n\
- NOTIFICATIONS { %s }\n\
- DESCRIPTION \"%s\"\
-' % (', '.join([x for x in self.getObjects()]), self.getDescription())
+ return """\
+NOTIFICATION-GROUP
+ NOTIFICATIONS { %s }
+ DESCRIPTION "%s"
+""" % (', '.join([x for x in self.getObjects()]), self.getDescription())
class ModuleCompliance(MibNode):
+ status = 'current'
objects = ()
description = ''
+ def getStatus(self):
+ return self.status
+
+ def setStatus(self, v):
+ self.status = v
+ return self
+
def getObjects(self):
return getattr(self, 'objects', ())
@@ -93,15 +117,25 @@ class ModuleCompliance(MibNode):
return self
def asn1Print(self):
- return '\
-MODULE-COMPLIANCE\n\
- OBJECT { %s } \n\
- DESCRIPTION \"%s\"\n\
-' % (', '.join([x for x in self.getObjects()]), self.getDescription())
+ return """\
+MODULE-COMPLIANCE
+ OBJECT { %s }
+ DESCRIPTION "%s"
+""" % (', '.join([x for x in self.getObjects()]), self.getDescription())
class AgentCapabilities(MibNode):
+ status = 'current'
description = ''
+ reference = ''
+ productRelease = ''
+
+ def getStatus(self):
+ return self.status
+
+ def setStatus(self, v):
+ self.status = v
+ return self
def getDescription(self):
return getattr(self, 'description', '')
@@ -110,11 +144,29 @@ class AgentCapabilities(MibNode):
self.description = v
return self
+ def getReference(self):
+ return self.reference
+
+ def setReference(self, v):
+ self.reference = v
+ return self
+
+ def getProductRelease(self):
+ return self.productRelease
+
+ def setProductRelease(self, v):
+ self.productRelease = v
+ return self
+
+ # TODO: implement the rest of properties
+
def asn1Print(self):
- return '\
-AGENT-CAPABILITIES\n\
- DESCRIPTION \"%s\"\n\
-' % self.getDescription()
+ return """\
+AGENT-CAPABILITIES
+ STATUS "%s"
+ PRODUCT-RELEASE "%s"
+ DESCRIPTION "%s"
+""" % (self.getStatus(), self.getProductRelease(), self.getDescription())
mibBuilder.exportSymbols('SNMPv2-CONF', ObjectGroup=ObjectGroup, NotificationGroup=NotificationGroup, ModuleCompliance=ModuleCompliance, AgentCapabilities=AgentCapabilities)
diff --git a/pysnmp/smi/mibs/SNMPv2-SMI.py b/pysnmp/smi/mibs/SNMPv2-SMI.py
index 7d52515f..da66164e 100644
--- a/pysnmp/smi/mibs/SNMPv2-SMI.py
+++ b/pysnmp/smi/mibs/SNMPv2-SMI.py
@@ -74,12 +74,20 @@ class MibNode(object):
# definitions for information modules
class ModuleIdentity(MibNode):
+ status = 'current'
lastUpdated = ''
organization = ''
contactInfo = ''
description = ''
revisions = ()
+ def getStatus(self):
+ return self.status
+
+ def setStatus(self, v):
+ self.status = v
+ return self
+
def getLastUpdated(self):
return self.lastUpdated