@Override public CompletableFuture<TxnSegments> createTransaction(final Stream stream, final long lease) { Exceptions.checkNotClosed(closed.get(), this); Preconditions.checkNotNull(stream, "stream"); long traceId = LoggerHelpers.traceEnter(log, "createTransaction", stream, lease); final CompletableFuture<CreateTxnResponse> result = this.retryConfig.runAsync(() -> { RPCAsyncCallback<CreateTxnResponse> callback = new RPCAsyncCallback<>(traceId, "createTransaction"); client.createTransaction( CreateTxnRequest.newBuilder() .setStreamInfo(ModelHelper.createStreamInfo(stream.getScope(), stream.getStreamName())) .setLease(lease) .build(), callback); return callback.getFuture(); }, this.executor); return result.thenApply(this::convert) .whenComplete((x, e) -> { if (e != null) { log.warn("createTransaction failed: ", e); } LoggerHelpers.traceLeave(log, "createTransaction", traceId); }); }
/** * <code>.io.pravega.controller.stream.api.grpc.v1.StreamInfo streamInfo = 1;</code> */ private com.google.protobuf.SingleFieldBuilderV3< io.pravega.controller.stream.api.grpc.v1.Controller.StreamInfo, io.pravega.controller.stream.api.grpc.v1.Controller.StreamInfo.Builder, io.pravega.controller.stream.api.grpc.v1.Controller.StreamInfoOrBuilder> getStreamInfoFieldBuilder() { if (streamInfoBuilder_ == null) { streamInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.pravega.controller.stream.api.grpc.v1.Controller.StreamInfo, io.pravega.controller.stream.api.grpc.v1.Controller.StreamInfo.Builder, io.pravega.controller.stream.api.grpc.v1.Controller.StreamInfoOrBuilder>( getStreamInfo(), getParentForChildren(), isClean()); streamInfo_ = null; } return streamInfoBuilder_; }
/** * <code>.io.pravega.controller.stream.api.grpc.v1.StreamInfo streamInfo = 1;</code> */ public io.pravega.controller.stream.api.grpc.v1.Controller.StreamInfo.Builder getStreamInfoBuilder() { onChanged(); return getStreamInfoFieldBuilder().getBuilder(); } /**
@Test public void createTransactionFailureTest() { createScopeAndStream(SCOPE1, STREAM1, ScalingPolicy.fixed(4)); StreamInfo streamInfo = ModelHelper.createStreamInfo(SCOPE1, STREAM1); // Invalid lease CreateTxnRequest request = CreateTxnRequest.newBuilder() .setStreamInfo(streamInfo) .setLease(-1) .build(); ResultObserver<CreateTxnResponse> resultObserver = new ResultObserver<>(); this.controllerService.createTransaction(request, resultObserver); AssertExtensions.assertThrows("Lease lower bound violated ", resultObserver::get, e -> checkGRPCException(e, IllegalArgumentException.class)); }
public Builder mergeFrom(io.pravega.controller.stream.api.grpc.v1.Controller.CreateTxnRequest other) { if (other == io.pravega.controller.stream.api.grpc.v1.Controller.CreateTxnRequest.getDefaultInstance()) return this; if (other.hasStreamInfo()) { mergeStreamInfo(other.getStreamInfo()); } if (other.getLease() != 0L) { setLease(other.getLease()); } if (other.getScaleGracePeriod() != 0L) { setScaleGracePeriod(other.getScaleGracePeriod()); } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; }
private Controller.CreateTxnResponse createTransaction(final String scope, final String stream, final long lease) { Controller.StreamInfo streamInfo = ModelHelper.createStreamInfo(scope, stream); Controller.CreateTxnRequest request = Controller.CreateTxnRequest.newBuilder() .setStreamInfo(streamInfo) .setLease(lease) .build(); ResultObserver<Controller.CreateTxnResponse> resultObserver = new ResultObserver<>(); this.controllerService.createTransaction(request, resultObserver); Controller.CreateTxnResponse response = resultObserver.get(); Assert.assertTrue(response != null); return response; } }
public io.pravega.controller.stream.api.grpc.v1.Controller.CreateTxnRequest build() { io.pravega.controller.stream.api.grpc.v1.Controller.CreateTxnRequest result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; }
@java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /**