Я написал код агента SNMP, настроив два разных имени контекста в экземпляре класса SnmpContext. Он зарегистрирует дерево MIB под определенным contextName, как показано ниже:
class Test():
def readVars (self , varBinds, acInfo=(None, None)):
retItem = []
for ov in varBinds:
if str(ov[0]) == '1.3.6.1.4.1.26262.1.1.1.0':
retItem.extend([(ov[0], v2c.OctetString('%s' % 'value1'))])
elif str(ov[0]) == '1.3.6.1.4.1.26262.1.1.2.0':
retItem.extend([(ov[0], v2c.OctetString('%s' % 'value2'))])
.
.
.
return retItem
def readNextVars (self , varBinds, acInfo=(None, None)):
retItem = []
for ov in varBinds:
if str(ov[0]) == '1.3.6.1.4.1.26262.1.1.1.0':
retItem.extend([('1.3.6.1.4.1.26262.1.1.2.0', v2c.OctetString('%s' % 'value2'))])
elif str(ov[0]) == '1.3.6.1.4.1.26262.1.1.2.0':
retItem.extend([('1.3.6.1.4.1.26262.1.1.3.1.1.0', v2c.OctetString('%s' % 'value3'))])
.
.
.
.
else:
retItem.extend([('1.3.6.1.4.1.26262.1.1.1.0', v2c.OctetString('%s' % 'value1'))])
return retItem
mibTreeA = Test()
snmpContext.registerContextName(v2c.OctetString('context-a'), mibTreeA)
snmpContext.registerContextName(v2c.OctetString('context-b'), mibTreeA)
Как в примере sample
Здесь следующий OID возвращается путем проверки условия с использованием оператора if. Но у меня есть несколько OID, и увеличение этого с помощью оператора if было бы болезненным.
Поэтому я хотел бы знать, есть ли способ динамически увеличивать OID? Любой пример сценария будет полезен.
Заранее спасибо.