Beispiel #1
0
def _decode_a_varbindlist(vbl_tuple):
    vbl = Basetypes.VarBindList()
    for [oid, value] in vbl_tuple:
        obj = _find_object(oid)
        if obj is not None:
            if value is not None:
                if obj.syntaxobject:
                    value = obj.syntaxobject(value)
                if obj.enumerations:
                    value.enumerations = obj.enumerations
            vbl.append(Basetypes.VarBind(oid, value, obj))
        else: # unknown varbind, deal with it later
            vbl.append(Basetypes.VarBind(oid, value))
    return vbl
Beispiel #2
0
 def _rowstatus_action(self, session, value):
     if not session:
         raise ValueError, "no session specified"
     if self.rowstatus and self.indexoid:
         vbl = Basetypes.VarBindList()
         vbl.append(Basetypes.VarBind(self.rowstatus.OID+self.indexoid, self.rowstatus.syntaxobject(value)))
         session.set(vbl)
Beispiel #3
0
 def createAndWait(self, session, *indexargs, **attribs):
     vbl = self._create_vbl(*indexargs, **attribs)
     vbl.append(
         Basetypes.VarBind(
             Basetypes.ObjectIdentifier(self.rowstatus.OID + self.indexoid),
             self.rowstatus.syntaxobject(4)))  # create and go
     session.set(vbl)
     return self
Beispiel #4
0
 def set(self, session=None, **attribs):
     sess = session or self.session
     vbl = Basetypes.VarBindList()
     for colname, value in attribs.items():
         col = self.columns[colname]
         value = col.syntaxobject(value)
         vbl.append(Basetypes.VarBind(col.OID + self.indexoid, value))
     sess.set(vbl)
Beispiel #5
0
 def get_values(self, *args):
     sess = self.session
     if sess and self.indexoid:
         rv = []
         vbl = Basetypes.VarBindList()
         cols = map(lambda n: self.columns.get(n), args)
         map(lambda o: vbl.append(Basetypes.VarBind(o.OID+self.indexoid)), cols)
         return_vbl = sess.get_varbindlist(vbl)
         return tuple(map(lambda vb: vb.value, return_vbl))
Beispiel #6
0
 def _create_vbl(self, *indexargs, **attribs):
     if not self.create:
         raise ValueError, "Cannot create object of type "+self.__class__.__name__
     self.__dict__["indexoid"] = self._make_index_oid(indexargs)
     vbl = Basetypes.VarBindList()
     for key, value in attribs.items():
         colclass = self.columns[key]
         value = colclass.syntaxobject(value)
         vbl.append(Basetypes.VarBind(colclass.OID+self.indexoid, value))
     return vbl
Beispiel #7
0
 def set(self, val, session=None):
     sess = session or self.session
     if self.access != SMI_ACCESS_READ_WRITE:
         raise RuntimeError("Scalar is not writeable")
     val = self.syntaxobject(val)
     try:
         sess.set_varbind(Basetypes.VarBind(self.OID, val))
     except:
         self.value = None
         raise
     else:
         self.value = val
Beispiel #8
0
 def set(self, value, session=None, indexoid=None):
     if indexoid:
         self.set_index(indexoid)
     sess = session or self.session
     vb = Basetypes.VarBind(self.OID, self.syntaxobject(value))
     return sess.set_varbind(vb)
Beispiel #9
0
 def varbind(self):
     return Basetypes.VarBind(self.OID, self.value, self.__class__)
Beispiel #10
0
 def get_scalars(self, *args):
     vbl = Basetypes.VarBindList()
     for o in [self.scalars[on] for on in args]:
         vbl.append(Basetypes.VarBind(o.OID+[0]))
     return_vbl = self.session.get_varbindlist(vbl)
     return tuple([vb.value for vb in return_vbl])