예제 #1
0
 def get(self, id, return_list=False):
     req = CtrlReq()
     req.type = CtrlReq.GET
     if self.prefix:
         id = self.prefix + '.' + id
     req.id = id
     rep = self._send_and_recv(req)
     if rep.status != 0:
         raise KeyError(id)
     pairs = []
     for pair in rep.pairs:
         for type in self.map.values():
             if pair.val.HasField(type):
                 val = getattr(pair.val, type)
                 if type == 'str_val':
                     val = val.encode('ascii')
                 pairs.append((pair.id.encode('ascii'), val))
                 break
     if len(pairs) == 0:
         return
     elif len(pairs) == 1:
         if return_list:
             return pairs[0]
         else:
             return pairs[0][1]
     else:
         return pairs
예제 #2
0
 def get(self, id, return_list = False):
    req = CtrlReq()
    req.type = CtrlReq.GET
    if self.prefix:
       id = self.prefix + '.' + id
    req.id = id
    rep = self._send_and_recv(req)
    if rep.status != 0:
       raise KeyError(id)
    pairs = []
    for pair in rep.pairs:
       for type in self.map.values():
          if pair.val.HasField(type):
             val = getattr(pair.val, type)
             if type == 'str_val':
                val = val.encode('ascii')
             pairs.append((pair.id.encode('ascii'), val))
             break
    if len(pairs) == 0:
       return
    elif len(pairs) == 1:
       if return_list:
          return pairs[0]
       else:
          return pairs[0][1]
    else:
       return pairs
예제 #3
0
 def set(self, id, val):
     req = CtrlReq()
     req.type = CtrlReq.SET
     if self.prefix:
         id = self.prefix + '.' + id
     req.id = id
     setattr(req.val, self.map[val.__class__], val)
     rep = self._send_and_recv(req)
     if rep.status != 0:
         raise KeyError(id)
예제 #4
0
 def set(self, id, val):
    req = CtrlReq()
    req.type = CtrlReq.SET
    if self.prefix:
       id = self.prefix + '.' + id
    req.id = id
    setattr(req.val, self.map[val.__class__], val)
    rep = self._send_and_recv(req)
    if rep.status != 0:
       raise KeyError(id)
예제 #5
0
 def persist(self):
     req = CtrlReq()
     req.type = CtrlReq.PERSIST
     return self._send_and_recv(req).status
예제 #6
0
 def persist(self):
    req = CtrlReq()
    req.type = CtrlReq.PERSIST
    return self._send_and_recv(req).status