def set_key(self, keyVals): req_msg = kv_store_types.Request(kv_store_types.Command.KEY_SET) req_msg.keySetParams = kv_store_types.KeySetParams(keyVals) self._kv_store_cmd_socket.send_thrift_obj(req_msg) return self._kv_store_cmd_socket.recv()
def dump_peers(self): """ dump the entries of kvstore whose key matches the given prefix if prefix is an empty string, the full KV store is dumped """ req_msg = kv_store_types.Request(kv_store_types.Command.PEER_DUMP) return self.send_and_recv_thrift_obj(req_msg, kv_store_types.PeerCmdReply)
def dump_key_with_prefix(self, prefix=""): """ dump the hashes of kvstore whose key matches the given prefix if prefix is an empty string, the full KV hash is dumped """ req_msg = kv_store_types.Request(kv_store_types.Command.HASH_DUMP) req_msg.keyDumpParams = kv_store_types.KeyDumpParams(prefix) return self.send_and_recv_thrift_obj(req_msg, kv_store_types.Publication)
def get_keys(self, keys): """ Get values corresponding to keys from KvStore. It gets from local snapshot KeyVals of the kvstore. """ req_msg = kv_store_types.Request(kv_store_types.Command.KEY_GET) req_msg.keyGetParams = kv_store_types.KeyGetParams(keys) return self.send_and_recv_thrift_obj(req_msg, kv_store_types.Publication)
def dump_peers(self): ''' dump the entries of kvstore whose key matches the given prefix if prefix is an empty string, the full KV store is dumped ''' req_msg = kv_store_types.Request(kv_store_types.Command.PEER_DUMP) self._kv_store_cmd_socket.send_thrift_obj(req_msg) return self._kv_store_cmd_socket.recv_thrift_obj( kv_store_types.PeerCmdReply)
def dump_all_with_prefix(self, prefix=""): ''' dump the entries of kvstore whose key matches the given prefix if prefix is an empty string, the full KV store is dumped ''' req_msg = kv_store_types.Request(kv_store_types.Command.KEY_DUMP) req_msg.keyDumpParams = kv_store_types.KeyDumpParams(prefix) self._kv_store_cmd_socket.send_thrift_obj(req_msg) return self._kv_store_cmd_socket.recv_thrift_obj( kv_store_types.Publication)
def get_keys(self, keys): ''' Get values corresponding to keys from KvStore. It gets from local snapshot KeyVals of the kvstore. ''' req_msg = kv_store_types.Request(kv_store_types.Command.KEY_GET) req_msg.keyGetParams = kv_store_types.KeyGetParams(keys) self._kv_store_cmd_socket.send_thrift_obj(req_msg) return self._kv_store_cmd_socket.recv_thrift_obj( kv_store_types.Publication)
def dump_key_with_prefix(self, prefix=""): """ dump the hashes of kvstore whose key matches the given prefix if prefix is an empty string, the full KV hash is dumped """ req_msg = kv_store_types.Request(kv_store_types.Command.HASH_DUMP) req_msg.keyDumpParams = kv_store_types.KeyDumpParams(prefix) self._kv_store_cmd_socket.send_thrift_obj(req_msg) resp = self._kv_store_cmd_socket.recv() return serializer.deserialize_thrift_object( resp, kv_store_types.Publication, self._kv_store_cmd_socket.proto_factory )
def dump_key_with_prefix(self, prefix=""): ''' dump the hashes of kvstore whose key matches the given prefix if prefix is an empty string, the full KV hash is dumped ''' req_msg = kv_store_types.Request(kv_store_types.Command.HASH_DUMP) req_msg.keyDumpParams = kv_store_types.KeyDumpParams(prefix) self._kv_store_cmd_socket.send_thrift_obj(req_msg) resp = self._kv_store_cmd_socket.recv() if len(resp) == 3 and resp == str('ERR'): # KvStore doesn't support HASH_DUMP API yet. Use full dump # API instead return self.dump_all_with_prefix(prefix) else: return serializer.deserialize_thrift_object( resp, kv_store_types.Publication, self._kv_store_cmd_socket.proto_factory)
def dump_all_with_filter( self, prefix: str = "", originator_ids: Optional[List[str]] = None, keyval_hash: Optional[Dict[str, kv_store_types.Value]] = None, ): """ dump the entries of kvstore whose key matches the given prefix if prefix is an empty string, the full KV store is dumped """ req_msg = kv_store_types.Request(kv_store_types.Command.KEY_DUMP) req_msg.keyDumpParams = kv_store_types.KeyDumpParams(prefix) req_msg.keyDumpParams.originatorIds = [] req_msg.keyDumpParams.keyValHashes = None if originator_ids: req_msg.keyDumpParams.originatorIds = originator_ids if keyval_hash: req_msg.keyDumpParams.keyValHashes = keyval_hash return self.send_and_recv_thrift_obj(req_msg, kv_store_types.Publication)
def get_spt_infos(self): """ get all spanning tree infos """ req_msg = kv_store_types.Request(kv_store_types.Command.FLOOD_TOPO_GET) return self.send_and_recv_thrift_obj(req_msg, kv_store_types.SptInfos)
def set_key(self, keyVals): req_msg = kv_store_types.Request(kv_store_types.Command.KEY_SET) req_msg.keySetParams = kv_store_types.KeySetParams(keyVals) return self.send_and_recv_thrift_obj(req_msg, str)