def makeVarBinds(self, varBinds, oidOnly=False): __varBinds = [] for varName, varVal in varBinds: if isinstance(varName, MibVariable): if oidOnly or isinstance(varVal, base.AbstractSimpleAsn1Item): varName.resolveWithMib(self.mibViewController, oidOnly=True) else: varName.resolveWithMib(self.mibViewController) varVal = varName.getMibNode().getSyntax().clone(varVal) elif isinstance(varName[0], tuple): # legacy varName = MibVariable(varName[0][0], varName[0][1], *varName[1:]).resolveWithMib( self.mibViewController) if not oidOnly and \ not isinstance(varVal, base.AbstractSimpleAsn1Item): varVal = varName.getMibNode().getSyntax().clone(varVal) else: if oidOnly or isinstance(varVal, base.AbstractSimpleAsn1Item): varName = MibVariable(varName).resolveWithMib( self.mibViewController, oidOnly=True) else: varName = MibVariable(varName).resolveWithMib( self.mibViewController) varVal = varName.getMibNode().getSyntax().clone(varVal) __varBinds.append((varName, varVal)) return __varBinds
def makeVarBinds(self, snmpEngine, varBinds, oidOnly=False): cache = self._getCmdCache(snmpEngine) mibViewController = cache['mibViewController'] __varBinds = [] for varName, varVal in varBinds: if isinstance(varName, MibVariable): if oidOnly or isinstance(varVal, base.AbstractSimpleAsn1Item): varName.resolveWithMib(mibViewController, oidOnly=True) else: varName.resolveWithMib(mibViewController) varVal = varName.getMibNode().getSyntax().clone(varVal) elif isinstance(varName[0], tuple): # legacy varName = MibVariable(varName[0][0], varName[0][1], *varName[1:]).resolveWithMib(mibViewController) if not oidOnly and \ not isinstance(varVal, base.AbstractSimpleAsn1Item): varVal = varName.getMibNode().getSyntax().clone(varVal) else: if oidOnly or isinstance(varVal, base.AbstractSimpleAsn1Item): varName = MibVariable(varName).resolveWithMib(mibViewController, oidOnly=True) else: varName = MibVariable(varName).resolveWithMib(mibViewController) varVal = varName.getMibNode().getSyntax().clone(varVal) __varBinds.append((varName, varVal)) return __varBinds
def setCmd(self, authData, transportTarget, varBinds, cbInfo): (cbFun, cbCtx) = cbInfo addrName, paramsName = self.cfgCmdGen( authData, transportTarget ) __varBinds = [] for varName, varVal in varBinds: if isinstance(varName, MibVariable): varName.resolveWithMib(self.mibViewController) if not isinstance(varVal, base.AbstractSimpleAsn1Item): varVal = varName.getMibNode().getSyntax().clone(varVal) elif isinstance(varName[0], tuple): # legacy varName = MibVariable(varName[0][0], varName[0][1], *varName[1:]).resolveWithMib(self.mibViewController) if not isinstance(varVal, base.AbstractSimpleAsn1Item): varVal = varName.getMibNode().getSyntax().clone(varVal) else: if isinstance(varVal, base.AbstractSimpleAsn1Item): varName = MibVariable(varName).resolveWithMib(self.mibViewController, oidOnly=True) else: varName = MibVariable(varName).resolveWithMib(self.mibViewController) varVal = varName.getMibNode().getSyntax().clone(varVal) __varBinds.append((varName, varVal)) return cmdgen.SetCommandGenerator().sendReq( self.snmpEngine, addrName, __varBinds, cbFun, cbCtx, authData.contextEngineId, authData.contextName )
def sendNotification( self, authData, transportTarget, notifyType, notificationType=None, varBinds=None, cbInfo=(None, None) ): (cbFun, cbCtx) = cbInfo notifyName = self.cfgNtfOrg(authData, transportTarget, notifyType) if notificationType is not None: if isinstance(notificationType, MibVariable): notificationType = notificationType.resolveWithMib(self.mibViewController, oidOnly=True) elif isinstance(notificationType[0], tuple): # legacy notificationType = MibVariable(notificationType[0][0], notificationType[0][1], *notificationType[1:]).resolveWithMib(self.mibViewController) if varBinds: __varBinds = [] for varName, varVal in varBinds: if isinstance(varName, MibVariable): varName.resolveWithMib(self.mibViewController) if not isinstance(varVal, base.AbstractSimpleAsn1Item): varVal = varName.getMibNode().getSyntax().clone(varVal) elif isinstance(varName[0], tuple): # legacy varName = MibVariable(varName[0][0], varName[0][1], *varName[1:]).resolveWithMib(self.mibViewController) if not isinstance(varVal, base.AbstractSimpleAsn1Item): varVal = varName.getMibNode().getSyntax().clone(varVal) else: if isinstance(varVal, base.AbstractSimpleAsn1Item): varName = MibVariable(varName).resolveWithMib(self.mibViewController, oidOnly=True) else: varName = MibVariable(varName).resolveWithMib(self.mibViewController) varVal = varName.getMibNode().getSyntax().clone(varVal) __varBinds.append((varName, varVal)) else: __varBinds = None return ntforg.NotificationOriginator(self.snmpContext).sendNotification(self.snmpEngine, notifyName, notificationType, __varBinds, cbFun, cbCtx)
def setCmd(self, authData, transportTarget, varBinds, cbInfo): (cbFun, cbCtx) = cbInfo addrName, paramsName = self.cfgCmdGen(authData, transportTarget) __varBinds = [] for varName, varVal in varBinds: if isinstance(varName, MibVariable): varName.resolveWithMib(self.mibViewController) if not isinstance(varVal, base.AbstractSimpleAsn1Item): varVal = varName.getMibNode().getSyntax().clone(varVal) elif isinstance(varName[0], tuple): # legacy varName = MibVariable(varName[0][0], varName[0][1], *varName[1:]).resolveWithMib( self.mibViewController) if not isinstance(varVal, base.AbstractSimpleAsn1Item): varVal = varName.getMibNode().getSyntax().clone(varVal) else: if isinstance(varVal, base.AbstractSimpleAsn1Item): varName = MibVariable(varName).resolveWithMib( self.mibViewController, oidOnly=True) else: varName = MibVariable(varName).resolveWithMib( self.mibViewController) varVal = varName.getMibNode().getSyntax().clone(varVal) __varBinds.append((varName, varVal)) return cmdgen.SetCommandGenerator().sendReq(self.snmpEngine, addrName, __varBinds, cbFun, cbCtx, authData.contextEngineId, authData.contextName)
def sendNotification(self, authData, transportTarget, notifyType, notificationType=None, varBinds=None, cbInfo=(None, None)): (cbFun, cbCtx) = cbInfo notifyName = self.cfgNtfOrg(authData, transportTarget, notifyType) if notificationType is not None: if isinstance(notificationType, MibVariable): notificationType = notificationType.resolveWithMib( self.mibViewController, oidOnly=True) elif isinstance(notificationType[0], tuple): # legacy notificationType = MibVariable( notificationType[0][0], notificationType[0][1], *notificationType[1:]).resolveWithMib( self.mibViewController) if varBinds: __varBinds = [] for varName, varVal in varBinds: if isinstance(varName, MibVariable): varName.resolveWithMib(self.mibViewController) if not isinstance(varVal, base.AbstractSimpleAsn1Item): varVal = varName.getMibNode().getSyntax().clone(varVal) elif isinstance(varName[0], tuple): # legacy varName = MibVariable(varName[0][0], varName[0][1], *varName[1:]).resolveWithMib( self.mibViewController) if not isinstance(varVal, base.AbstractSimpleAsn1Item): varVal = varName.getMibNode().getSyntax().clone(varVal) else: if isinstance(varVal, base.AbstractSimpleAsn1Item): varName = MibVariable(varName).resolveWithMib( self.mibViewController, oidOnly=True) else: varName = MibVariable(varName).resolveWithMib( self.mibViewController) varVal = varName.getMibNode().getSyntax().clone(varVal) __varBinds.append((varName, varVal)) else: __varBinds = None return ntforg.NotificationOriginator( self.snmpContext).sendNotification(self.snmpEngine, notifyName, notificationType, __varBinds, cbFun, cbCtx)
def unmakeVarBinds(self, varBinds, lookupNames=True, lookupValues=True): _varBinds = [] for name, value in varBinds: if lookupNames or lookupValues: varName = MibVariable(name).resolveWithMib(self.mibViewController) if lookupNames: name = varName if lookupValues: if value.tagSet not in (rfc1905.NoSuchObject.tagSet, rfc1905.NoSuchInstance.tagSet, rfc1905.EndOfMibView.tagSet): value = varName.getMibNode().getSyntax().clone(value) _varBinds.append((name, value)) return _varBinds
def unmakeVarBinds(self, varBinds, lookupNames=True, lookupValues=True): _varBinds = [] for name, value in varBinds: if lookupNames or lookupValues: varName = MibVariable(name).resolveWithMib( self.mibViewController) if lookupNames: name = varName if lookupValues: if value.tagSet not in (rfc1905.NoSuchObject.tagSet, rfc1905.NoSuchInstance.tagSet, rfc1905.EndOfMibView.tagSet): value = varName.getMibNode().getSyntax().clone(value) _varBinds.append((name, value)) return _varBinds
def unmakeVarBinds(self, snmpEngine, varBinds, lookupNames, lookupValues): if lookupNames or lookupValues: cache = self._getCmdCache(snmpEngine) mibViewController = cache['mibViewController'] _varBinds = [] for name, value in varBinds: varName = MibVariable(name).resolveWithMib(mibViewController) if lookupNames: name = varName if lookupValues: if value.tagSet not in (rfc1905.NoSuchObject.tagSet, rfc1905.NoSuchInstance.tagSet, rfc1905.EndOfMibView.tagSet): if varName.isFullyResolved(): value = varName.getMibNode().getSyntax().clone(value) _varBinds.append((name, value)) return _varBinds else: return varBinds