diff options
-rw-r--r-- | CHANGES.txt | 1 | ||||
-rw-r--r-- | pysnmp/smi/mibs/SNMPv2-CONF.py | 90 | ||||
-rw-r--r-- | pysnmp/smi/mibs/SNMPv2-SMI.py | 8 |
3 files changed, 80 insertions, 19 deletions
diff --git a/CHANGES.txt b/CHANGES.txt index 0c44b56c..ca294ff2 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -7,6 +7,7 @@ Revision 4.4.2, released 2017-11-XX - The .setObjects() method of the SMI types now accepts `append=False` parameter to let the caller adding more than 255 elements over the course of multiple calls +- Added support for some more missing fields of SMIv2 MACRO types - Fixed non-implied-OID encoding in SNMP table indices Revision 4.4.1, released 2017-10-23 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 |