public static void executeNoCatch() throws Exception { try (VideoIntelligenceServiceClient client = VideoIntelligenceServiceClient.create()) { String inputUri = "gs://demomaker/cat.mp4"; Feature featuresElement = Feature.LABEL_DETECTION; List<Feature> features = Arrays.asList(featuresElement); AnnotateVideoResponse response = client.annotateVideoAsync(inputUri, features).get(); } }
@Test public void createDatabase() throws Exception { OperationFuture<Database, CreateDatabaseMetadata> rawOperationFuture = OperationFutureUtil.immediateOperationFuture( "createDatabase", getDatabaseProto(), CreateDatabaseMetadata.getDefaultInstance()); when(rpc.createDatabase( INSTANCE_NAME, "CREATE DATABASE `" + DB_ID + "`", Collections.<String>emptyList())) .thenReturn(rawOperationFuture); OperationFuture<com.google.cloud.spanner.Database, CreateDatabaseMetadata> op = client.createDatabase(INSTANCE_ID, DB_ID, Collections.<String>emptyList()); assertThat(op.isDone()).isTrue(); assertThat(op.get().getId().getName()).isEqualTo(DB_NAME); }
@Override public OperationFuture<Void, UpdateDatabaseDdlMetadata> updateDatabaseDdl( final String instanceId, final String databaseId, final Iterable<String> statements, @Nullable String operationId) throws SpannerException { final String dbName = getDatabaseName(instanceId, databaseId); final String opId = operationId != null ? operationId : randomOperationId(); OperationFuture<Empty, UpdateDatabaseDdlMetadata> rawOperationFuture = rpc.updateDatabaseDdl(dbName, statements, opId); return new OperationFutureImpl<Void, UpdateDatabaseDdlMetadata>( rawOperationFuture.getPollingFuture(), rawOperationFuture.getInitialFuture(), new ApiFunction<OperationSnapshot, Void>() { @Override public Void apply(OperationSnapshot snapshot) { ProtoOperationTransformers.ResponseTransformer.create(Empty.class).apply(snapshot); return null; } }, ProtoOperationTransformers.MetadataTransformer.create(UpdateDatabaseDdlMetadata.class), new ApiFunction<Exception, Void>() { @Override public Void apply(Exception e) { throw SpannerExceptionFactory.newSpannerException(e); } }); }
@Test public void updateDdlRetry() throws Exception { String dbId = testHelper.getUniqueDatabaseId(); String instanceId = testHelper.getInstanceId().getInstance(); String statement1 = "CREATE TABLE T (\n" + " K STRING(MAX),\n" + ") PRIMARY KEY(K)"; OperationFuture<Database, CreateDatabaseMetadata> op = dbAdminClient.createDatabase(instanceId, dbId, ImmutableList.of(statement1)); Database db = op.get(); dbs.add(db); String statement2 = "CREATE TABLE T2 (\n" + " K2 STRING(MAX),\n" + ") PRIMARY KEY(K2)"; OperationFuture<Void, UpdateDatabaseDdlMetadata> op1 = dbAdminClient.updateDatabaseDdl(instanceId, dbId, ImmutableList.of(statement2), "myop"); OperationFuture<Void, UpdateDatabaseDdlMetadata> op2 = dbAdminClient.updateDatabaseDdl(instanceId, dbId, ImmutableList.of(statement2), "myop"); op1.get(); op2.get(); assertThat(op1.getMetadata().get()).isEqualTo(op2.getMetadata().get()); }
@Test public void updateDatabaseDdl() throws Exception { String opName = DB_NAME + "/operations/myop"; String opId = "myop"; List<String> ddl = ImmutableList.of(); OperationFuture<Empty, UpdateDatabaseDdlMetadata> rawOperationFuture = OperationFutureUtil.immediateOperationFuture( opName, Empty.getDefaultInstance(), UpdateDatabaseDdlMetadata.getDefaultInstance()); when(rpc.updateDatabaseDdl(DB_NAME, ddl, opId)).thenReturn(rawOperationFuture); OperationFuture<Void, UpdateDatabaseDdlMetadata> op = client.updateDatabaseDdl(INSTANCE_ID, DB_ID, ddl, opId); assertThat(op.isDone()).isTrue(); assertThat(op.getName()).isEqualTo(opName); }
private void assertFutureSuccessMetaSuccess( String opName, OperationFuture<Color, Money> future, Color resp, Money meta) throws Exception { assertThat(future.getName()).isEqualTo(opName); assertThat(future.get(3, TimeUnit.SECONDS)).isEqualTo(resp); assertThat(future.isDone()).isTrue(); assertThat(future.isCancelled()).isFalse(); assertThat(future.get()).isEqualTo(resp); assertThat(future.peekMetadata().get()).isEqualTo(meta); assertThat(future.peekMetadata()).isSameAs(future.peekMetadata()); assertThat(future.peekMetadata().isDone()).isTrue(); assertThat(future.peekMetadata().isCancelled()).isFalse(); assertThat(future.getMetadata().get()).isEqualTo(meta); assertThat(future.getMetadata()).isSameAs(future.getMetadata()); assertThat(future.getMetadata().isDone()).isTrue(); assertThat(future.getMetadata().isCancelled()).isFalse(); }
@Test public void testCompleted() throws Exception { OperationFuture<String, Integer> future = OperationFutures.<String, Integer>immediateOperationFuture( FakeOperationSnapshot.newBuilder() .setName("myName") .setDone(true) .setResponse("theResponse") .setMetadata(42) .setErrorCode(FakeStatusCode.of(StatusCode.Code.OK)) .build()); assertThat(future.getName()).isEqualTo("myName"); assertThat(future.get()).isEqualTo("theResponse"); assertThat(future.getMetadata().get()).isEqualTo(42); }
@Test public void callResume() throws Exception { ApiCallContext defaultCallContext = FakeCallContext.createDefault(); OperationStashCallable stashCallable = new OperationStashCallable(); OperationCallable<Integer, String, Long> callable = stashCallable.withDefaultCallContext(defaultCallContext); OperationFuture<String, Long> operationFuture = callable.futureCall(45); String response = callable.resumeFutureCall(operationFuture.getName()).get(); Truth.assertThat(response).isEqualTo("45"); Truth.assertThat(stashCallable.getResumeContext()).isSameAs(defaultCallContext); }
@Override public OperationFuture<Empty, UpdateDatabaseDdlMetadata> updateDatabaseDdl( String databaseName, Iterable<String> updateDatabaseStatements, @Nullable String updateId) throws SpannerException { UpdateDatabaseDdlRequest request = UpdateDatabaseDdlRequest.newBuilder() .setDatabase(databaseName) .addAllStatements(updateDatabaseStatements) .setOperationId(MoreObjects.firstNonNull(updateId, "")) .build(); GrpcCallContext context = newCallContext(null, databaseName); OperationCallable<UpdateDatabaseDdlRequest, Empty, UpdateDatabaseDdlMetadata> callable = databaseAdminStub.updateDatabaseDdlOperationCallable(); OperationFuture<Empty, UpdateDatabaseDdlMetadata> operationFuture = callable.futureCall(request, context); try { operationFuture.getInitialFuture().get(); } catch (InterruptedException e) { throw newSpannerException(e); } catch (ExecutionException e) { Throwable t = e.getCause(); if (t instanceof AlreadyExistsException) { String operationName = OPERATION_NAME_TEMPLATE.instantiate("database", databaseName, "operation", updateId); return callable.resumeFutureCall(operationName, context); } } return operationFuture; }
@Test public void updateDatabaseDdlOpAlreadyExists() throws Exception { String originalOpName = DB_NAME + "/operations/originalop"; List<String> ddl = ImmutableList.of(); OperationFuture<Empty, UpdateDatabaseDdlMetadata> originalOp = OperationFutureUtil.immediateOperationFuture( originalOpName, Empty.getDefaultInstance(), UpdateDatabaseDdlMetadata.getDefaultInstance()); String newOpName = DB_NAME + "/operations/newop"; String newOpId = "newop"; OperationFuture<Empty, UpdateDatabaseDdlMetadata> newop = OperationFutureUtil.immediateOperationFuture( newOpName, Empty.getDefaultInstance(), UpdateDatabaseDdlMetadata.getDefaultInstance()); when(rpc.updateDatabaseDdl(DB_NAME, ddl, newOpId)).thenReturn(originalOp); OperationFuture<Void, UpdateDatabaseDdlMetadata> op = client.updateDatabaseDdl(INSTANCE_ID, DB_ID, ddl, newOpId); assertThat(op.getName()).isEqualTo(originalOpName); }
private void assertFutureSuccessMetaSuccess( String opName, OperationFuture<Color, Currency> future, Color resp, Currency meta) throws InterruptedException, ExecutionException, TimeoutException { assertThat(future.getName()).isEqualTo(opName); Truth.assertThat(future.get(3, TimeUnit.SECONDS)).isEqualTo(resp); assertThat(future.isDone()).isTrue(); assertThat(future.isCancelled()).isFalse(); Truth.assertThat(future.get()).isEqualTo(resp); Truth.assertThat(future.peekMetadata().get()).isEqualTo(meta); assertThat(future.peekMetadata()).isSameAs(future.peekMetadata()); assertThat(future.peekMetadata().isDone()).isTrue(); assertThat(future.peekMetadata().isCancelled()).isFalse(); Truth.assertThat(future.getMetadata().get()).isEqualTo(meta); assertThat(future.getMetadata()).isSameAs(future.getMetadata()); assertThat(future.getMetadata().isDone()).isTrue(); assertThat(future.getMetadata().isCancelled()).isFalse(); }
@Test public void testFailed() throws Exception { OperationFuture<String, Integer> future = OperationFutures.<String, Integer>immediateOperationFuture( FakeOperationSnapshot.newBuilder() .setName("myName") .setDone(true) .setMetadata(42) .setErrorCode(FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT)) .build()); assertThat(future.getName()).isEqualTo("myName"); assertThat(future.getMetadata().get()).isEqualTo(42); try { future.get(); fail(); } catch (ExecutionException e) { assertThat(e.getCause()).isInstanceOf(ApiException.class); } }
@Test public void callResumeWithContext() throws Exception { FakeChannel channel = new FakeChannel(); Credentials credentials = Mockito.mock(Credentials.class); ApiCallContext context = FakeCallContext.createDefault().withChannel(channel).withCredentials(credentials); OperationStashCallable stashCallable = new OperationStashCallable(); OperationCallable<Integer, String, Long> callable = stashCallable.withDefaultCallContext(FakeCallContext.createDefault()); OperationFuture<String, Long> operationFuture = callable.futureCall(45); String response = callable.resumeFutureCall(operationFuture.getName(), context).get(); Truth.assertThat(response).isEqualTo("45"); FakeCallContext actualContext = (FakeCallContext) stashCallable.getResumeContext(); Truth.assertThat(actualContext.getChannel()).isSameAs(channel); Truth.assertThat(actualContext.getCredentials()).isSameAs(credentials); }
/** * @param documentName Document Id. */ public static void deleteDocument(String documentName) throws Exception { // Instantiates a client try (DocumentsClient documentsClient = DocumentsClient.create()) { documentsClient.deleteDocumentAsync(documentName).getInitialFuture().get(); System.out.format("The document has been deleted."); } } }
@Test public void callCancel() throws Exception { ApiCallContext defaultCallContext = FakeCallContext.createDefault(); OperationStashCallable stashCallable = new OperationStashCallable(); OperationCallable<Integer, String, Long> callable = stashCallable.withDefaultCallContext(defaultCallContext); OperationFuture<String, Long> operationFuture = callable.futureCall(45); callable.cancel(operationFuture.getName()).get(); Truth.assertThat(stashCallable.wasCancelCalled()).isTrue(); Truth.assertThat(stashCallable.getCancelContext()).isSameAs(defaultCallContext); }
public static void executeNoCatch() throws Exception { try (VideoIntelligenceServiceClient client = VideoIntelligenceServiceClient.create()) { String inputUri = "gs://demomaker/cat.mp4"; Feature featuresElement = Feature.LABEL_DETECTION; List<Feature> features = Arrays.asList(featuresElement); AnnotateVideoResponse response = client.annotateVideoAsync(inputUri, features).get(); } }
private void assertFutureCancelMetaCancel(OperationFuture<Color, Currency> future) throws InterruptedException, ExecutionException, TimeoutException { Exception exception = null; try { future.get(3, TimeUnit.SECONDS); } catch (CancellationException e) { exception = e; } assertThat(exception).isNotNull(); assertThat(future.isDone()).isTrue(); assertThat(future.isCancelled()).isTrue(); try { future.peekMetadata().get(); } catch (CancellationException e) { exception = e; } assertThat(future.peekMetadata()).isSameAs(future.peekMetadata()); assertThat(exception).isNotNull(); assertThat(future.peekMetadata().isDone()).isTrue(); assertThat(future.peekMetadata().isCancelled()).isTrue(); try { future.getMetadata().get(); } catch (CancellationException e) { exception = e; } assertThat(future.getMetadata()).isSameAs(future.getMetadata()); assertThat(exception).isNotNull(); assertThat(future.getMetadata().isDone()).isTrue(); assertThat(future.getMetadata().isCancelled()).isTrue(); }
@Test public void createInstance() throws Exception { OperationFuture<com.google.spanner.admin.instance.v1.Instance, CreateInstanceMetadata> rawOperationFuture = OperationFutureUtil.immediateOperationFuture( "createInstance", getInstanceProto(), CreateInstanceMetadata.getDefaultInstance()); when(rpc.createInstance("projects/" + PROJECT_ID, INSTANCE_ID, getInstanceProto())) .thenReturn(rawOperationFuture); OperationFuture<Instance, CreateInstanceMetadata> op = client.createInstance( InstanceInfo.newBuilder(InstanceId.of(PROJECT_ID, INSTANCE_ID)) .setInstanceConfigId(InstanceConfigId.of(PROJECT_ID, CONFIG_ID)) .setNodeCount(1) .build()); assertThat(op.isDone()).isTrue(); assertThat(op.get().getId().getName()).isEqualTo(INSTANCE_NAME); }
@Override public OperationFuture<Database, CreateDatabaseMetadata> createDatabase( String instanceId, String databaseId, Iterable<String> statements) throws SpannerException { // CreateDatabase() is not idempotent, so we're not retrying this request. String instanceName = getInstanceName(instanceId); String createStatement = "CREATE DATABASE `" + databaseId + "`"; OperationFuture<com.google.spanner.admin.database.v1.Database, CreateDatabaseMetadata> rawOperationFuture = rpc.createDatabase(instanceName, createStatement, statements); return new OperationFutureImpl<Database, CreateDatabaseMetadata>( rawOperationFuture.getPollingFuture(), rawOperationFuture.getInitialFuture(), new ApiFunction<OperationSnapshot, Database>() { @Override public Database apply(OperationSnapshot snapshot) { return Database.fromProto( ProtoOperationTransformers.ResponseTransformer.create( com.google.spanner.admin.database.v1.Database.class) .apply(snapshot), DatabaseAdminClientImpl.this); } }, ProtoOperationTransformers.MetadataTransformer.create(CreateDatabaseMetadata.class), new ApiFunction<Exception, Database>() { @Override public Database apply(Exception e) { throw SpannerExceptionFactory.newSpannerException(e); } }); }
/** * Delete entity with the given entity type and entity value * * @param projectId Project/agent id. * @param entityTypeId The id of the entity_type. * @param entityValue The value of the entity to delete. */ public static void deleteEntity(String projectId, String entityTypeId, String entityValue) throws Exception { // Instantiates a client try (EntityTypesClient entityTypesClient = EntityTypesClient.create()) { // Set the entity type name using the projectID (my-project-id) and entityTypeId (KINDS_LIST) EntityTypeName name = EntityTypeName.of(projectId, entityTypeId); // Performs the delete entity type request entityTypesClient.batchDeleteEntitiesAsync(name, Collections.singletonList(entityValue)) .getInitialFuture().get(); } } // [END dialogflow_delete_entity]