@Override public void abortTransaction(TxnRequest request, StreamObserver<Controller.TxnStatus> responseObserver) { if (request.getStreamInfo().getStream().equals("stream1")) { responseObserver.onNext(Controller.TxnStatus.newBuilder() .setStatus(Controller.TxnStatus.Status.SUCCESS) .build()); responseObserver.onCompleted(); } else if (request.getStreamInfo().getStream().equals("stream2")) { responseObserver.onNext(Controller.TxnStatus.newBuilder() .setStatus(Controller.TxnStatus.Status.FAILURE) .build()); responseObserver.onCompleted(); } else if (request.getStreamInfo().getStream().equals("stream3")) { responseObserver.onNext(Controller.TxnStatus.newBuilder() .setStatus(Controller.TxnStatus.Status.STREAM_NOT_FOUND) .build()); responseObserver.onCompleted(); } else if (request.getStreamInfo().getStream().equals("stream4")) { responseObserver.onNext(Controller.TxnStatus.newBuilder() .setStatus(Controller.TxnStatus.Status.TRANSACTION_NOT_FOUND) .build()); responseObserver.onCompleted(); } else { responseObserver.onError(Status.INTERNAL.withDescription("Server error").asRuntimeException()); } }
@Override public CompletableFuture<Void> abortTransaction(final Stream stream, final UUID txId) { Exceptions.checkNotClosed(closed.get(), this); Preconditions.checkNotNull(stream, "stream"); Preconditions.checkNotNull(txId, "txId"); long traceId = LoggerHelpers.traceEnter(log, "abortTransaction", stream, txId); final CompletableFuture<TxnStatus> result = this.retryConfig.runAsync(() -> { RPCAsyncCallback<TxnStatus> callback = new RPCAsyncCallback<>(traceId, "abortTransaction"); client.abortTransaction(TxnRequest.newBuilder() .setStreamInfo(ModelHelper.createStreamInfo(stream.getScope(), stream.getStreamName())) .setTxnId(ModelHelper.decode(txId)) .build(), callback); return callback.getFuture(); }, this.executor); return Futures.toVoidExpecting(result, TxnStatus.newBuilder().setStatus(TxnStatus.Status.SUCCESS).build(), TxnFailedException::new) .whenComplete((x, e) -> { if (e != null) { log.warn("abortTransaction failed: ", e); } LoggerHelpers.traceLeave(log, "abortTransaction", traceId); }); }
@java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); if (hasStreamInfo()) { hash = (37 * hash) + STREAMINFO_FIELD_NUMBER; hash = (53 * hash) + getStreamInfo().hashCode(); } if (hasTxnId()) { hash = (37 * hash) + TXNID_FIELD_NUMBER; hash = (53 * hash) + getTxnId().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; }
@io.grpc.stub.annotations.RpcMethod( fullMethodName = SERVICE_NAME + '/' + "abortTransaction", requestType = io.pravega.controller.stream.api.grpc.v1.Controller.TxnRequest.class, responseType = io.pravega.controller.stream.api.grpc.v1.Controller.TxnStatus.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) public static io.grpc.MethodDescriptor<io.pravega.controller.stream.api.grpc.v1.Controller.TxnRequest, io.pravega.controller.stream.api.grpc.v1.Controller.TxnStatus> getAbortTransactionMethod() { io.grpc.MethodDescriptor<io.pravega.controller.stream.api.grpc.v1.Controller.TxnRequest, io.pravega.controller.stream.api.grpc.v1.Controller.TxnStatus> getAbortTransactionMethod; if ((getAbortTransactionMethod = ControllerServiceGrpc.getAbortTransactionMethod) == null) { synchronized (ControllerServiceGrpc.class) { if ((getAbortTransactionMethod = ControllerServiceGrpc.getAbortTransactionMethod) == null) { ControllerServiceGrpc.getAbortTransactionMethod = getAbortTransactionMethod = io.grpc.MethodDescriptor.<io.pravega.controller.stream.api.grpc.v1.Controller.TxnRequest, io.pravega.controller.stream.api.grpc.v1.Controller.TxnStatus>newBuilder() .setType(io.grpc.MethodDescriptor.MethodType.UNARY) .setFullMethodName(generateFullMethodName( "io.pravega.controller.stream.api.grpc.v1.ControllerService", "abortTransaction")) .setSampledToLocalTracing(true) .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( io.pravega.controller.stream.api.grpc.v1.Controller.TxnRequest.getDefaultInstance())) .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( io.pravega.controller.stream.api.grpc.v1.Controller.TxnStatus.getDefaultInstance())) .setSchemaDescriptor(new ControllerServiceMethodDescriptorSupplier("abortTransaction")) .build(); } } } return getAbortTransactionMethod; }
@Override public void commitTransaction(TxnRequest request, StreamObserver<Controller.TxnStatus> responseObserver) { if (request.getStreamInfo().getStream().equals("stream1")) { responseObserver.onNext(Controller.TxnStatus.newBuilder() .setStatus(Controller.TxnStatus.Status.SUCCESS) .build()); responseObserver.onCompleted(); } else if (request.getStreamInfo().getStream().equals("stream2")) { responseObserver.onNext(Controller.TxnStatus.newBuilder() .setStatus(Controller.TxnStatus.Status.FAILURE) .build()); responseObserver.onCompleted(); } else if (request.getStreamInfo().getStream().equals("stream3")) { responseObserver.onNext(Controller.TxnStatus.newBuilder() .setStatus(Controller.TxnStatus.Status.STREAM_NOT_FOUND) .build()); responseObserver.onCompleted(); } else if (request.getStreamInfo().getStream().equals("stream4")) { responseObserver.onNext(Controller.TxnStatus.newBuilder() .setStatus(Controller.TxnStatus.Status.TRANSACTION_NOT_FOUND) .build()); responseObserver.onCompleted(); } else { responseObserver.onError(Status.INTERNAL.withDescription("Server error").asRuntimeException()); } }
@io.grpc.stub.annotations.RpcMethod( fullMethodName = SERVICE_NAME + '/' + "commitTransaction", requestType = io.pravega.controller.stream.api.grpc.v1.Controller.TxnRequest.class, responseType = io.pravega.controller.stream.api.grpc.v1.Controller.TxnStatus.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) public static io.grpc.MethodDescriptor<io.pravega.controller.stream.api.grpc.v1.Controller.TxnRequest, io.pravega.controller.stream.api.grpc.v1.Controller.TxnStatus> getCommitTransactionMethod() { io.grpc.MethodDescriptor<io.pravega.controller.stream.api.grpc.v1.Controller.TxnRequest, io.pravega.controller.stream.api.grpc.v1.Controller.TxnStatus> getCommitTransactionMethod; if ((getCommitTransactionMethod = ControllerServiceGrpc.getCommitTransactionMethod) == null) { synchronized (ControllerServiceGrpc.class) { if ((getCommitTransactionMethod = ControllerServiceGrpc.getCommitTransactionMethod) == null) { ControllerServiceGrpc.getCommitTransactionMethod = getCommitTransactionMethod = io.grpc.MethodDescriptor.<io.pravega.controller.stream.api.grpc.v1.Controller.TxnRequest, io.pravega.controller.stream.api.grpc.v1.Controller.TxnStatus>newBuilder() .setType(io.grpc.MethodDescriptor.MethodType.UNARY) .setFullMethodName(generateFullMethodName( "io.pravega.controller.stream.api.grpc.v1.ControllerService", "commitTransaction")) .setSampledToLocalTracing(true) .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( io.pravega.controller.stream.api.grpc.v1.Controller.TxnRequest.getDefaultInstance())) .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( io.pravega.controller.stream.api.grpc.v1.Controller.TxnStatus.getDefaultInstance())) .setSchemaDescriptor(new ControllerServiceMethodDescriptorSupplier("commitTransaction")) .build(); } } } return getCommitTransactionMethod; }
@io.grpc.stub.annotations.RpcMethod( fullMethodName = SERVICE_NAME + '/' + "checkTransactionState", requestType = io.pravega.controller.stream.api.grpc.v1.Controller.TxnRequest.class, responseType = io.pravega.controller.stream.api.grpc.v1.Controller.TxnState.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) public static io.grpc.MethodDescriptor<io.pravega.controller.stream.api.grpc.v1.Controller.TxnRequest, io.pravega.controller.stream.api.grpc.v1.Controller.TxnState> getCheckTransactionStateMethod() { io.grpc.MethodDescriptor<io.pravega.controller.stream.api.grpc.v1.Controller.TxnRequest, io.pravega.controller.stream.api.grpc.v1.Controller.TxnState> getCheckTransactionStateMethod; if ((getCheckTransactionStateMethod = ControllerServiceGrpc.getCheckTransactionStateMethod) == null) { synchronized (ControllerServiceGrpc.class) { if ((getCheckTransactionStateMethod = ControllerServiceGrpc.getCheckTransactionStateMethod) == null) { ControllerServiceGrpc.getCheckTransactionStateMethod = getCheckTransactionStateMethod = io.grpc.MethodDescriptor.<io.pravega.controller.stream.api.grpc.v1.Controller.TxnRequest, io.pravega.controller.stream.api.grpc.v1.Controller.TxnState>newBuilder() .setType(io.grpc.MethodDescriptor.MethodType.UNARY) .setFullMethodName(generateFullMethodName( "io.pravega.controller.stream.api.grpc.v1.ControllerService", "checkTransactionState")) .setSampledToLocalTracing(true) .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( io.pravega.controller.stream.api.grpc.v1.Controller.TxnRequest.getDefaultInstance())) .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( io.pravega.controller.stream.api.grpc.v1.Controller.TxnState.getDefaultInstance())) .setSchemaDescriptor(new ControllerServiceMethodDescriptorSupplier("checkTransactionState")) .build(); } } } return getCheckTransactionStateMethod; }
@Override public CompletableFuture<Transaction.Status> checkTransactionStatus(final Stream stream, final UUID txId) { Exceptions.checkNotClosed(closed.get(), this); Preconditions.checkNotNull(stream, "stream"); Preconditions.checkNotNull(txId, "txId"); long traceId = LoggerHelpers.traceEnter(log, "checkTransactionStatus", stream, txId); final CompletableFuture<TxnState> result = this.retryConfig.runAsync(() -> { RPCAsyncCallback<TxnState> callback = new RPCAsyncCallback<>(traceId, "checkTransactionStatus"); client.checkTransactionState(TxnRequest.newBuilder() .setStreamInfo(ModelHelper.createStreamInfo(stream.getScope(), stream.getStreamName())) .setTxnId(ModelHelper.decode(txId)) .build(), callback); return callback.getFuture(); }, this.executor); return result.thenApply(status -> ModelHelper.encode(status.getState(), stream + " " + txId)) .whenComplete((x, e) -> { if (e != null) { log.warn("checkTransactionStatus failed: ", e); } LoggerHelpers.traceLeave(log, "checkTransactionStatus", traceId); }); }
@Override public void checkTransactionState(TxnRequest request, StreamObserver<TxnState> responseObserver) { if (request.getStreamInfo().getStream().equals("stream1")) { responseObserver.onNext(TxnState.newBuilder().setState(TxnState.State.OPEN).build()); responseObserver.onCompleted(); } else if (request.getStreamInfo().getStream().equals("stream2")) { responseObserver.onNext(TxnState.newBuilder().setState(TxnState.State.UNKNOWN).build()); responseObserver.onCompleted(); } else if (request.getStreamInfo().getStream().equals("stream3")) { responseObserver.onNext(TxnState.newBuilder().setState(TxnState.State.COMMITTING).build()); responseObserver.onCompleted(); } else if (request.getStreamInfo().getStream().equals("stream4")) { responseObserver.onNext(TxnState.newBuilder().setState(TxnState.State.COMMITTED).build()); responseObserver.onCompleted(); } else if (request.getStreamInfo().getStream().equals("stream5")) { responseObserver.onNext(TxnState.newBuilder().setState(TxnState.State.ABORTING).build()); responseObserver.onCompleted(); } else if (request.getStreamInfo().getStream().equals("stream6")) { responseObserver.onNext(TxnState.newBuilder().setState(TxnState.State.ABORTED).build()); responseObserver.onCompleted(); } else { responseObserver.onError(Status.INTERNAL.withDescription("Server error").asRuntimeException()); } }
@Override public CompletableFuture<Void> commitTransaction(final Stream stream, final UUID txId) { Exceptions.checkNotClosed(closed.get(), this); Preconditions.checkNotNull(stream, "stream"); Preconditions.checkNotNull(txId, "txId"); long traceId = LoggerHelpers.traceEnter(log, "commitTransaction", stream, txId); final CompletableFuture<TxnStatus> result = this.retryConfig.runAsync(() -> { RPCAsyncCallback<TxnStatus> callback = new RPCAsyncCallback<>(traceId, "commitTransaction"); client.commitTransaction(TxnRequest.newBuilder() .setStreamInfo(ModelHelper.createStreamInfo(stream.getScope(), stream.getStreamName())) .setTxnId(ModelHelper.decode(txId)) .build(), callback); return callback.getFuture(); }, this.executor); return Futures.toVoidExpecting(result, TxnStatus.newBuilder().setStatus(TxnStatus.Status.SUCCESS).build(), TxnFailedException::new) .whenComplete((x, e) -> { if (e != null) { log.warn("commitTransaction failed: ", e); } LoggerHelpers.traceLeave(log, "commitTransaction", traceId); }); }
@java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof io.pravega.controller.stream.api.grpc.v1.Controller.TxnRequest)) { return super.equals(obj); } io.pravega.controller.stream.api.grpc.v1.Controller.TxnRequest other = (io.pravega.controller.stream.api.grpc.v1.Controller.TxnRequest) obj; boolean result = true; result = result && (hasStreamInfo() == other.hasStreamInfo()); if (hasStreamInfo()) { result = result && getStreamInfo() .equals(other.getStreamInfo()); } result = result && (hasTxnId() == other.hasTxnId()); if (hasTxnId()) { result = result && getTxnId() .equals(other.getTxnId()); } result = result && unknownFields.equals(other.unknownFields); return result; }
private Controller.TxnStatus closeTransaction(final String scope, final String stream, final Controller.TxnId txnId, final boolean abort) { Controller.StreamInfo streamInfo = ModelHelper.createStreamInfo(scope, stream); Controller.TxnRequest request = Controller.TxnRequest.newBuilder() .setStreamInfo(streamInfo) .setTxnId(txnId) .build(); ResultObserver<Controller.TxnStatus> resultObserver = new ResultObserver<>(); if (abort) { this.controllerService.abortTransaction(request, resultObserver); } else { this.controllerService.commitTransaction(request, resultObserver); } Controller.TxnStatus status = resultObserver.get(); Assert.assertNotNull(status); return resultObserver.get(); }
public io.pravega.controller.stream.api.grpc.v1.Controller.TxnRequest buildPartial() { io.pravega.controller.stream.api.grpc.v1.Controller.TxnRequest result = new io.pravega.controller.stream.api.grpc.v1.Controller.TxnRequest(this); if (streamInfoBuilder_ == null) { result.streamInfo_ = streamInfo_; } else { result.streamInfo_ = streamInfoBuilder_.build(); } if (txnIdBuilder_ == null) { result.txnId_ = txnId_; } else { result.txnId_ = txnIdBuilder_.build(); } onBuilt(); return result; }
public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (streamInfo_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, getStreamInfo()); } if (txnId_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getTxnId()); } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; }
public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() {
public io.pravega.controller.stream.api.grpc.v1.Controller.TxnRequest getDefaultInstanceForType() { return io.pravega.controller.stream.api.grpc.v1.Controller.TxnRequest.getDefaultInstance(); }
public io.pravega.controller.stream.api.grpc.v1.Controller.TxnRequest build() { io.pravega.controller.stream.api.grpc.v1.Controller.TxnRequest result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; }
/** * <code>.io.pravega.controller.stream.api.grpc.v1.StreamInfo streamInfo = 1;</code> */ public io.pravega.controller.stream.api.grpc.v1.Controller.StreamInfoOrBuilder getStreamInfoOrBuilder() { return getStreamInfo(); }
public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (streamInfo_ != null) { output.writeMessage(1, getStreamInfo()); } if (txnId_ != null) { output.writeMessage(2, getTxnId()); } unknownFields.writeTo(output); }
@Override public void checkTransactionState(TxnRequest request, StreamObserver<TxnState> responseObserver) { log.info("checkTransactionState called for stream {}/{}, txnId={}.", request.getStreamInfo().getScope(), request.getStreamInfo().getStream(), request.getTxnId()); authenticateExecuteAndProcessResults(() -> this.authHelper.checkAuthorization(request.getStreamInfo().getScope() + "/" + request.getStreamInfo().getStream(), AuthHandler.Permissions.READ_UPDATE), delegationToken -> controllerService.checkTransactionStatus(request.getStreamInfo().getScope(), request.getStreamInfo().getStream(), request.getTxnId()), responseObserver); }