示例#1
0
    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
示例#2
0
    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
示例#3
0
    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
            )
示例#4
0
    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)
示例#5
0
    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)
示例#6
0
文件: ntforg.py 项目: ithek/pysnmp
    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)
示例#7
0
 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
示例#8
0
 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
示例#9
0
 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