Возникла проблема "TypeError: resolWithMib () принимает ровно 2 аргумента (3 дано)" с resolWithMib в 4.4.12. Работало в 4.4.4 - PullRequest
0 голосов
/ 23 марта 2020

Я использую python 2.7 и pysnmp 4.1.12. Следующий код имеет некоторые проблемы с функцией resolWithMib. Он работает с внутренними MIB, такими как SNMPv2-MIB, но не с моим частным MIB.

На самом деле я получаю "Ошибка типа: resolWithMib () принимает ровно 2 аргумента (дано 3)". на pysnmp 4.4.12. Он отлично работал на 4.4.4

Я передаю json объекты, подобные этому

, передавая json object {'vmUserName': 'admin', 'partitionCpuUsage': 3.0}

def sendTrap_gen(self, event, eventvals):

 mibViewController = view.MibViewController(self.snmpEngine.getMibBuilder())

 # Create Notification Originator App instance.
 ntfOrg = ntforg.NotificationOriginator()
 ntfOrg.snmpContext = self.snmpContext

 trapName = rfc1902.ObjectIdentity('PARTITION-MIB', event)


 ntfOrg.sendVarBinds(
     self.snmpEngine,
     'my-notification',  # notification targets
     None, '',  # contextEngineId, contextName
     rfc1902.NotificationType( 
         trapName,
         objects={('PARTITION-MIB', k): v for k, v in eventvals.items()}
     ).resolveWithMib(mibViewController)

 )

Запись MIB выглядит следующим образом

partitionCpuUsage OBJECT-TYPE
 SYNTAX      DisplayString (SIZE (0..100))
 MAX-ACCESS  accessible-for-notify
 STATUS      current
 DESCRIPTION
     "partition CPU Usage"
 ::= { partitionNotfsParams 7 }

partitionCpuUsageReachedTheThreshold NOTIFICATION-TYPE
OBJECTS { vmUserName, partitionCpuUsage }
STATUS current
DESCRIPTION
  "This notfication for System cpu usage reached the threshold"
::= { partitionNotfs 1 }

partitionCpuUsage OBJECT-TYPE
 SYNTAX      DisplayString (SIZE (0..100))
 MAX-ACCESS  accessible-for-notify
 STATUS      current
 DESCRIPTION
     "partition CPU Usage"
 ::= { partitionNotfsParams 7 }
...