def get(self, robj, r=None, pr=None, vtag=None): """ Serialize get request and deserialize response """ if vtag is not None: raise RiakError("PB transport does not support vtags") bucket = robj.bucket req = riak_pb.RpbGetReq() if r: req.r = self.translate_rw_val(r) if self.quorum_controls() and pr: req.pr = self.translate_rw_val(pr) if self.tombstone_vclocks(): req.deletedvclock = 1 req.bucket = bucket.name req.key = robj.key msg_code, resp = self._request(MSG_CODE_GET_REQ, req) if msg_code == MSG_CODE_GET_RESP: return self._decoded_contents(resp, robj) else: return None
def get(self, robj, r=None, pr=None, vtag=None): """ Serialize get request and deserialize response """ if vtag is not None: raise RiakError("PB transport does not support vtags") bucket = robj.get_bucket() req = riak_pb.RpbGetReq() req.r = self.translate_rw_val(r) if self.quorum_controls(): req.pr = self.translate_rw_val(pr) if self.tombstone_vclocks(): req.deletedvclock = 1 req.bucket = bucket.get_name() req.key = robj.get_key() # An expected response code of None implies "any response is valid". msg_code, resp = self.send_msg(MSG_CODE_GET_REQ, req, None) if msg_code == MSG_CODE_GET_RESP: contents = [] for c in resp.content: contents.append(self.decode_content(c)) return resp.vclock, contents else: return None
def get(self, robj, r=None, pr=None, timeout=None, basic_quorum=None, notfound_ok=None): """ Serialize get request and deserialize response """ bucket = robj.bucket req = riak_pb.RpbGetReq() if r: req.r = self._encode_quorum(r) if self.quorum_controls(): if pr: req.pr = self._encode_quorum(pr) if basic_quorum is not None: req.basic_quorum = basic_quorum if notfound_ok is not None: req.notfound_ok = notfound_ok if self.client_timeouts() and timeout: req.timeout = timeout if self.tombstone_vclocks(): req.deletedvclock = True req.bucket = str_to_bytes(bucket.name) self._add_bucket_type(req, bucket.bucket_type) req.key = str_to_bytes(robj.key) msg_code, resp = self._request(MSG_CODE_GET_REQ, req, MSG_CODE_GET_RESP) if resp is not None: if resp.HasField('vclock'): robj.vclock = VClock(resp.vclock, 'binary') # We should do this even if there are no contents, i.e. # the object is tombstoned self._decode_contents(resp.content, robj) else: # "not found" returns an empty message, # so let's make sure to clear the siblings robj.siblings = [] return robj
def get(self, robj, r=None, pr=None, timeout=None): """ Serialize get request and deserialize response """ bucket = robj.bucket req = riak_pb.RpbGetReq() if r: req.r = self._encode_quorum(r) if self.quorum_controls() and pr: req.pr = self._encode_quorum(pr) if self.client_timeouts() and timeout: req.timeout = timeout if self.tombstone_vclocks(): req.deletedvclock = 1 req.bucket = bucket.name req.key = robj.key msg_code, resp = self._request(MSG_CODE_GET_REQ, req, MSG_CODE_GET_RESP) # TODO: support if_modified flag if resp is not None: if resp.HasField('vclock'): robj.vclock = VClock(resp.vclock, 'binary') # We should do this even if there are no contents, i.e. # the object is tombstoned self._decode_contents(resp.content, robj) else: # "not found" returns an empty message, # so let's make sure to clear the siblings robj.siblings = [] return robj
async def get(self, robj): ''' Serialize get request and deserialize response ''' bucket = robj.bucket req = riak_pb.RpbGetReq() req.bucket = bucket.name.encode() self._add_bucket_type(req, bucket.bucket_type) req.key = robj.key.encode() msg_code, resp = await self._request(messages.MSG_CODE_GET_REQ, req, messages.MSG_CODE_GET_RESP) if resp is not None: if resp.HasField('vclock'): robj.vclock = VClock(resp.vclock, 'binary') # We should do this even if there are no contents, i.e. # the object is tombstoned self._decode_contents(resp.content, robj) else: # "not found" returns an empty message, # so let's make sure to clear the siblings robj.siblings = [] return robj