Search in sources :

Example 1 with RangeResponse

use of org.apache.bookkeeper.stream.proto.kv.rpc.RangeResponse in project bookkeeper by apache.

the class TableStoreImplTest method range.

List<KeyValue> range(int startKey, int endKey) throws Exception {
    StorageContainerResponse response = result(tableStore.range(StorageContainerRequest.newBuilder().setScId(SC_ID).setKvRangeReq(RangeRequest.newBuilder().setHeader(HEADER).setKey(getKey(startKey)).setRangeEnd(getKey(endKey)).build()).build()));
    assertEquals(StatusCode.SUCCESS, response.getCode());
    assertEquals(ResponseCase.KV_RANGE_RESP, response.getResponseCase());
    RangeResponse rangeResp = response.getKvRangeResp();
    assertEquals(HEADER, rangeResp.getHeader().getRoutingHeader());
    return rangeResp.getKvsList();
}
Also used : DeleteRangeResponse(org.apache.bookkeeper.stream.proto.kv.rpc.DeleteRangeResponse) RangeResponse(org.apache.bookkeeper.stream.proto.kv.rpc.RangeResponse) StorageContainerResponse(org.apache.bookkeeper.stream.proto.storage.StorageContainerResponse)

Example 2 with RangeResponse

use of org.apache.bookkeeper.stream.proto.kv.rpc.RangeResponse in project bookkeeper by apache.

the class TableStoreImplTest method getKeyValue.

KeyValue getKeyValue(int i) throws Exception {
    StorageContainerResponse resp = getKeyFromTableStore(i);
    assertEquals(StatusCode.SUCCESS, resp.getCode());
    assertEquals(ResponseCase.KV_RANGE_RESP, resp.getResponseCase());
    RangeResponse rr = resp.getKvRangeResp();
    assertEquals(HEADER, rr.getHeader().getRoutingHeader());
    assertFalse(rr.getMore());
    if (0 == rr.getCount()) {
        return null;
    } else {
        return rr.getKvs(0);
    }
}
Also used : DeleteRangeResponse(org.apache.bookkeeper.stream.proto.kv.rpc.DeleteRangeResponse) RangeResponse(org.apache.bookkeeper.stream.proto.kv.rpc.RangeResponse) StorageContainerResponse(org.apache.bookkeeper.stream.proto.storage.StorageContainerResponse)

Example 3 with RangeResponse

use of org.apache.bookkeeper.stream.proto.kv.rpc.RangeResponse in project bookkeeper by apache.

the class TableStoreImplTest method verifyVPutResponse.

KeyValue verifyVPutResponse(StorageContainerResponse response, boolean expectedSuccess) throws Exception {
    assertEquals(ResponseCase.KV_TXN_RESP, response.getResponseCase());
    TxnResponse txnResp = response.getKvTxnResp();
    assertEquals(HEADER, txnResp.getHeader().getRoutingHeader());
    assertEquals(StatusCode.SUCCESS, response.getCode());
    ResponseOp respOp = txnResp.getResponses(0);
    if (expectedSuccess) {
        assertTrue(txnResp.getSucceeded());
        PutResponse putResp = respOp.getResponsePut();
        assertEquals(HEADER, putResp.getHeader().getRoutingHeader());
        if (!putResp.hasPrevKv()) {
            return null;
        }
        return putResp.getPrevKv();
    } else {
        assertFalse(txnResp.getSucceeded());
        RangeResponse rangeResp = respOp.getResponseRange();
        if (rangeResp.getCount() == 0) {
            return null;
        } else {
            assertEquals(1, rangeResp.getCount());
            return rangeResp.getKvs(0);
        }
    }
}
Also used : DeleteRangeResponse(org.apache.bookkeeper.stream.proto.kv.rpc.DeleteRangeResponse) RangeResponse(org.apache.bookkeeper.stream.proto.kv.rpc.RangeResponse) ResponseOp(org.apache.bookkeeper.stream.proto.kv.rpc.ResponseOp) TxnResponse(org.apache.bookkeeper.stream.proto.kv.rpc.TxnResponse) PutResponse(org.apache.bookkeeper.stream.proto.kv.rpc.PutResponse)

Example 4 with RangeResponse

use of org.apache.bookkeeper.stream.proto.kv.rpc.RangeResponse in project bookkeeper by apache.

the class TableStoreImplTest method putIfAbsentToTableStore.

KeyValue putIfAbsentToTableStore(int key, int value, boolean expectedSuccess) throws Exception {
    StorageContainerResponse response = result(tableStore.txn(StorageContainerRequest.newBuilder().setScId(SC_ID).setKvTxnReq(TxnRequest.newBuilder().setHeader(HEADER).addCompare(Compare.newBuilder().setResult(CompareResult.EQUAL).setTarget(CompareTarget.VALUE).setKey(getKey(key)).setValue(ByteString.copyFrom(new byte[0]))).addSuccess(RequestOp.newBuilder().setRequestPut(PutRequest.newBuilder().setHeader(HEADER).setKey(getKey(key)).setValue(getValue(value)).setPrevKv(true).build())).addFailure(RequestOp.newBuilder().setRequestRange(RangeRequest.newBuilder().setHeader(HEADER).setKey(getKey(key)).build())).build()).build()));
    assertEquals(ResponseCase.KV_TXN_RESP, response.getResponseCase());
    TxnResponse txnResp = response.getKvTxnResp();
    assertEquals(HEADER, txnResp.getHeader().getRoutingHeader());
    assertEquals(StatusCode.SUCCESS, response.getCode());
    ResponseOp respOp = txnResp.getResponses(0);
    if (expectedSuccess) {
        assertTrue(txnResp.getSucceeded());
        PutResponse putResp = respOp.getResponsePut();
        assertEquals(HEADER, putResp.getHeader().getRoutingHeader());
        if (!putResp.hasPrevKv()) {
            return null;
        }
        return putResp.getPrevKv();
    } else {
        assertFalse(txnResp.getSucceeded());
        RangeResponse rangeResp = respOp.getResponseRange();
        if (rangeResp.getCount() == 0) {
            return null;
        } else {
            assertEquals(1, rangeResp.getCount());
            return rangeResp.getKvs(0);
        }
    }
}
Also used : DeleteRangeResponse(org.apache.bookkeeper.stream.proto.kv.rpc.DeleteRangeResponse) RangeResponse(org.apache.bookkeeper.stream.proto.kv.rpc.RangeResponse) ResponseOp(org.apache.bookkeeper.stream.proto.kv.rpc.ResponseOp) TxnResponse(org.apache.bookkeeper.stream.proto.kv.rpc.TxnResponse) PutResponse(org.apache.bookkeeper.stream.proto.kv.rpc.PutResponse) StorageContainerResponse(org.apache.bookkeeper.stream.proto.storage.StorageContainerResponse)

Aggregations

DeleteRangeResponse (org.apache.bookkeeper.stream.proto.kv.rpc.DeleteRangeResponse)4 RangeResponse (org.apache.bookkeeper.stream.proto.kv.rpc.RangeResponse)4 StorageContainerResponse (org.apache.bookkeeper.stream.proto.storage.StorageContainerResponse)3 PutResponse (org.apache.bookkeeper.stream.proto.kv.rpc.PutResponse)2 ResponseOp (org.apache.bookkeeper.stream.proto.kv.rpc.ResponseOp)2 TxnResponse (org.apache.bookkeeper.stream.proto.kv.rpc.TxnResponse)2