def __init__(self, client, key, event_handler, is_prefix=False, start_revision=0, spin_pause=None): self._client = client self._key = key self._is_prefix = is_prefix self._start_revision = start_revision self._event_handler = event_handler self._spin_pause = spin_pause or _DEFAULT_SPIN_PAUSE watch_create_rq = WatchCreateRequest(key=_utils.to_bytes(key), start_revision=start_revision) if is_prefix: watch_create_rq.range_end = _utils.range_end(watch_create_rq.key) self._watch_rq = WatchRequest(create_request=watch_create_rq) self._name = 'watcher_' + key self._stop = False self._thread = Thread(name=self._name, target=self._run) self._thread.daemon = True
def _assert_get_one(want, range_rs): comment = 'Want %s, got %s' % (want, range_rs) if want is None: eq_(0, range_rs.count, comment) return eq_(1, range_rs.count, comment) eq_(_utils.to_bytes(want), range_rs.kvs[0].value, comment)
def get(self, key, is_prefix=False, limit=0, sort_order=SortOrder.NONE, sort_target=SortTarget.KEY): rq = RangeRequest(key=_utils.to_bytes(key), limit=limit, sort_order=sort_order.value, sort_target=sort_target.value) if is_prefix: rq.range_end = _utils.range_end(rq.key) return self._kv_stub.Range(rq, timeout=self._timeout)
def delete(self, key, is_prefix=False): rq = DeleteRangeRequest(key=_utils.to_bytes(key)) if is_prefix: rq.range_end = _utils.range_end(rq.key) return self._kv_stub.DeleteRange(rq, timeout=self._timeout)
def put(self, key, val, lease_id=None): rq = PutRequest(key=_utils.to_bytes(key), value=_utils.to_bytes(val), lease=lease_id) return self._kv_stub.Put(rq, timeout=self._timeout)
def _assert_event(t, k, v, got): eq_((t, _utils.to_bytes(k), _utils.to_bytes(v)), (got.type, got.kv.key, got.kv.value))