/** Example of asynchronously listing sinks, specifying the page size. */ // [TARGET listSinksAsync(ListOption...)] public Page<Sink> listSinksAsync() throws ExecutionException, InterruptedException { // [START listSinksAsync] Future<AsyncPage<Sink>> future = logging.listSinksAsync(ListOption.pageSize(100)); // ... AsyncPage<Sink> sinks = future.get(); for (Sink sink : sinks.iterateAll()) { // do something with the sink } // [END listSinksAsync] return sinks; }
AsyncPage<MonitoredResourceDescriptor> page = logging.listMonitoredResourceDescriptorsAsync().get(); assertEquals(cursor1, page.getNextPageToken()); assertArrayEquals( descriptorList1.toArray(), Iterables.toArray(page.getValues(), MonitoredResourceDescriptor.class)); page = page.getNextPageAsync().get(); assertEquals(cursor2, page.getNextPageToken()); assertArrayEquals( descriptorList2.toArray(), Iterables.toArray(page.getValues(), MonitoredResourceDescriptor.class));
@Test public void testListLogEntriesAyncEmpty() throws ExecutionException, InterruptedException { String cursor = "cursor"; EasyMock.replay(rpcFactoryMock); logging = options.getService(); ListLogEntriesRequest request = ListLogEntriesRequest.newBuilder().addProjectIds(PROJECT).build(); List<LogEntry> entriesList = ImmutableList.of(); ListLogEntriesResponse response = ListLogEntriesResponse.newBuilder() .setNextPageToken(cursor) .addAllEntries(Lists.transform(entriesList, LogEntry.toPbFunction(PROJECT))) .build(); ApiFuture<ListLogEntriesResponse> futureResponse = ApiFutures.immediateFuture(response); EasyMock.expect(loggingRpcMock.list(request)).andReturn(futureResponse); EasyMock.replay(loggingRpcMock); AsyncPage<LogEntry> page = logging.listLogEntriesAsync().get(); assertEquals(cursor, page.getNextPageToken()); assertArrayEquals(entriesList.toArray(), Iterables.toArray(page.getValues(), LogEntry.class)); }
@Test public void testListSinksAsyncEmpty() throws ExecutionException, InterruptedException { EasyMock.replay(rpcFactoryMock); logging = options.getService(); ListSinksRequest request = ListSinksRequest.newBuilder().setParent(PROJECT_PB).build(); List<Sink> sinkList = ImmutableList.of(); ListSinksResponse response = ListSinksResponse.newBuilder() .setNextPageToken("") .addAllSinks(Lists.transform(sinkList, SINK_TO_PB_FUNCTION)) .build(); ApiFuture<ListSinksResponse> futureResponse = ApiFutures.immediateFuture(response); EasyMock.expect(loggingRpcMock.list(request)).andReturn(futureResponse); EasyMock.replay(loggingRpcMock); AsyncPage<Sink> page = logging.listSinksAsync().get(); assertNull(page.getNextPageToken()); assertNull(page.getNextPage()); assertArrayEquals(sinkList.toArray(), Iterables.toArray(page.getValues(), Sink.class)); }
EasyMock.replay(loggingRpcMock); AsyncPage<LogEntry> page = logging.listLogEntriesAsync().get(); assertEquals(cursor1, page.getNextPageToken()); assertArrayEquals( descriptorList1.toArray(), Iterables.toArray(page.getValues(), LogEntry.class)); page = page.getNextPageAsync().get(); assertEquals(cursor2, page.getNextPageToken()); assertArrayEquals( descriptorList2.toArray(), Iterables.toArray(page.getValues(), LogEntry.class));
@Test public void testListLogEntriesAsync() throws ExecutionException, InterruptedException { String cursor = "cursor"; EasyMock.replay(rpcFactoryMock); logging = options.getService(); ListLogEntriesRequest request = ListLogEntriesRequest.newBuilder().addProjectIds(PROJECT).build(); List<LogEntry> entriesList = ImmutableList.of(LOG_ENTRY1, LOG_ENTRY2); ListLogEntriesResponse response = ListLogEntriesResponse.newBuilder() .setNextPageToken(cursor) .addAllEntries(Lists.transform(entriesList, LogEntry.toPbFunction(PROJECT))) .build(); ApiFuture<ListLogEntriesResponse> futureResponse = ApiFutures.immediateFuture(response); EasyMock.expect(loggingRpcMock.list(request)).andReturn(futureResponse); EasyMock.replay(loggingRpcMock); AsyncPage<LogEntry> page = logging.listLogEntriesAsync().get(); assertEquals(cursor, page.getNextPageToken()); assertArrayEquals(entriesList.toArray(), Iterables.toArray(page.getValues(), LogEntry.class)); }
@Test public void testListMetricsAsyncEmpty() throws ExecutionException, InterruptedException { EasyMock.replay(rpcFactoryMock); logging = options.getService(); ListLogMetricsRequest request = ListLogMetricsRequest.newBuilder().setParent(PROJECT_PB).build(); List<Metric> sinkList = ImmutableList.of(); ListLogMetricsResponse response = ListLogMetricsResponse.newBuilder() .setNextPageToken("") .addAllMetrics(Lists.transform(sinkList, METRIC_TO_PB_FUNCTION)) .build(); ApiFuture<ListLogMetricsResponse> futureResponse = ApiFutures.immediateFuture(response); EasyMock.expect(loggingRpcMock.list(request)).andReturn(futureResponse); EasyMock.replay(loggingRpcMock); AsyncPage<Metric> page = logging.listMetricsAsync().get(); assertNull(page.getNextPageToken()); assertNull(page.getNextPage()); assertArrayEquals(sinkList.toArray(), Iterables.toArray(page.getValues(), Metric.class)); }
EasyMock.replay(loggingRpcMock); AsyncPage<Sink> page = logging.listSinksAsync().get(); assertEquals(cursor1, page.getNextPageToken()); assertArrayEquals(sinkList1.toArray(), Iterables.toArray(page.getValues(), Sink.class)); page = page.getNextPageAsync().get(); assertEquals(cursor2, page.getNextPageToken()); assertArrayEquals(sinkList2.toArray(), Iterables.toArray(page.getValues(), Sink.class));
@Test public void testListResourceDescriptorAsync() throws ExecutionException, InterruptedException { String cursor = "cursor"; EasyMock.replay(rpcFactoryMock); logging = options.getService(); ListMonitoredResourceDescriptorsRequest request = ListMonitoredResourceDescriptorsRequest.newBuilder().build(); List<MonitoredResourceDescriptor> descriptorList = ImmutableList.of(DESCRIPTOR, DESCRIPTOR); ListMonitoredResourceDescriptorsResponse response = ListMonitoredResourceDescriptorsResponse.newBuilder() .setNextPageToken(cursor) .addAllResourceDescriptors(Lists.transform(descriptorList, DESCRIPTOR_TO_PB_FUNCTION)) .build(); ApiFuture<ListMonitoredResourceDescriptorsResponse> futureResponse = ApiFutures.immediateFuture(response); EasyMock.expect(loggingRpcMock.list(request)).andReturn(futureResponse); EasyMock.replay(loggingRpcMock); AsyncPage<MonitoredResourceDescriptor> page = logging.listMonitoredResourceDescriptorsAsync().get(); assertEquals(cursor, page.getNextPageToken()); assertArrayEquals( descriptorList.toArray(), Iterables.toArray(page.getValues(), MonitoredResourceDescriptor.class)); }
@Test public void testListResourceDescriptorAsyncEmpty() throws ExecutionException, InterruptedException { EasyMock.replay(rpcFactoryMock); logging = options.getService(); ListMonitoredResourceDescriptorsRequest request = ListMonitoredResourceDescriptorsRequest.newBuilder().build(); List<MonitoredResourceDescriptor> descriptorList = ImmutableList.of(); ListMonitoredResourceDescriptorsResponse response = ListMonitoredResourceDescriptorsResponse.newBuilder() .setNextPageToken("") .addAllResourceDescriptors(Lists.transform(descriptorList, DESCRIPTOR_TO_PB_FUNCTION)) .build(); ApiFuture<ListMonitoredResourceDescriptorsResponse> futureResponse = ApiFutures.immediateFuture(response); EasyMock.expect(loggingRpcMock.list(request)).andReturn(futureResponse); EasyMock.replay(loggingRpcMock); AsyncPage<MonitoredResourceDescriptor> page = logging.listMonitoredResourceDescriptorsAsync().get(); assertNull(page.getNextPageToken()); assertNull(page.getNextPage()); assertArrayEquals( descriptorList.toArray(), Iterables.toArray(page.getValues(), MonitoredResourceDescriptor.class)); }
/** Example of asynchronously listing metrics, specifying the page size. */ // [TARGET listMetricsAsync(ListOption...)] public Page<Metric> listMetricsAsync() throws ExecutionException, InterruptedException { // [START listMetricsAsync] Future<AsyncPage<Metric>> future = logging.listMetricsAsync(ListOption.pageSize(100)); // ... AsyncPage<Metric> metrics = future.get(); for (Metric metric : metrics.iterateAll()) { // do something with the metric } // [END listMetricsAsync] return metrics; }
EasyMock.replay(loggingRpcMock); AsyncPage<Metric> page = logging.listMetricsAsync().get(); assertEquals(cursor1, page.getNextPageToken()); assertArrayEquals(sinkList1.toArray(), Iterables.toArray(page.getValues(), Metric.class)); page = page.getNextPageAsync().get(); assertEquals(cursor2, page.getNextPageToken()); assertArrayEquals(sinkList2.toArray(), Iterables.toArray(page.getValues(), Metric.class));
@Test public void testListSinksAsync() throws ExecutionException, InterruptedException { String cursor = "cursor"; EasyMock.replay(rpcFactoryMock); logging = options.getService(); ListSinksRequest request = ListSinksRequest.newBuilder().setParent(PROJECT_PB).build(); List<Sink> sinkList = ImmutableList.of( new Sink(logging, new SinkInfo.BuilderImpl(SINK_INFO)), new Sink(logging, new SinkInfo.BuilderImpl(SINK_INFO))); ListSinksResponse response = ListSinksResponse.newBuilder() .setNextPageToken(cursor) .addAllSinks(Lists.transform(sinkList, SINK_TO_PB_FUNCTION)) .build(); ApiFuture<ListSinksResponse> futureResponse = ApiFutures.immediateFuture(response); EasyMock.expect(loggingRpcMock.list(request)).andReturn(futureResponse); EasyMock.replay(loggingRpcMock); AsyncPage<Sink> page = logging.listSinksAsync().get(); assertEquals(cursor, page.getNextPageToken()); assertArrayEquals(sinkList.toArray(), Iterables.toArray(page.getValues(), Sink.class)); }
/** Example of asynchronously listing monitored resource descriptors, specifying the page size. */ // [TARGET listMonitoredResourceDescriptorsAsync(ListOption...)] public Page<MonitoredResourceDescriptor> listMonitoredResourceDescriptorsAsync() throws ExecutionException, InterruptedException { // [START listMonitoredResourceDescriptorsAsync] Future<AsyncPage<MonitoredResourceDescriptor>> future = logging.listMonitoredResourceDescriptorsAsync(ListOption.pageSize(100)); // ... AsyncPage<MonitoredResourceDescriptor> descriptors = future.get(); for (MonitoredResourceDescriptor descriptor : descriptors.iterateAll()) { // do something with the descriptor } // [END listMonitoredResourceDescriptorsAsync] return descriptors; }
ListOption.pageSize(42), ListOption.pageToken(cursor)) .get(); assertEquals(cursor, page.getNextPageToken()); assertArrayEquals( descriptorList.toArray(), Iterables.toArray(page.getValues(), MonitoredResourceDescriptor.class));
/** Example of asynchronously listing log entries for a specific log. */ // [TARGET listLogEntriesAsync(EntryListOption...)] // [VARIABLE "logName=projects/my_project_id/logs/my_log_name"] public Page<LogEntry> listLogEntriesAsync(String filter) throws ExecutionException, InterruptedException { // [START listLogEntriesAsync] Future<AsyncPage<LogEntry>> future = logging.listLogEntriesAsync(EntryListOption.filter(filter)); // ... AsyncPage<LogEntry> entries = future.get(); for (LogEntry entry : entries.iterateAll()) { // do something with the entry } // [END listLogEntriesAsync] return entries; } }
@Test public void testListMetricsAsync() throws ExecutionException, InterruptedException { String cursor = "cursor"; EasyMock.replay(rpcFactoryMock); logging = options.getService(); ListLogMetricsRequest request = ListLogMetricsRequest.newBuilder().setParent(PROJECT_PB).build(); List<Metric> sinkList = ImmutableList.of( new Metric(logging, new MetricInfo.BuilderImpl(METRIC_INFO)), new Metric(logging, new MetricInfo.BuilderImpl(METRIC_INFO))); ListLogMetricsResponse response = ListLogMetricsResponse.newBuilder() .setNextPageToken(cursor) .addAllMetrics(Lists.transform(sinkList, METRIC_TO_PB_FUNCTION)) .build(); ApiFuture<ListLogMetricsResponse> futureResponse = ApiFutures.immediateFuture(response); EasyMock.expect(loggingRpcMock.list(request)).andReturn(futureResponse); EasyMock.replay(loggingRpcMock); AsyncPage<Metric> page = logging.listMetricsAsync().get(); assertEquals(cursor, page.getNextPageToken()); assertArrayEquals(sinkList.toArray(), Iterables.toArray(page.getValues(), Metric.class)); }
@Test public void testAsyncPageAndIterateAll() throws ExecutionException, InterruptedException { final AsyncPageImpl<String> nextResult2 = new AsyncPageImpl<>(null, "c3", VALUES3); AsyncPageImpl.NextPageFetcher<String> fetcher2 = new TestPageFetcher(nextResult2); final AsyncPageImpl<String> nextResult1 = new AsyncPageImpl<>(fetcher2, "c2", VALUES2); AsyncPageImpl.NextPageFetcher<String> fetcher1 = new TestPageFetcher(nextResult1); AsyncPageImpl<String> result = new AsyncPageImpl<>(fetcher1, "c1", VALUES1); assertEquals(nextResult1, result.getNextPageAsync().get()); assertEquals("c1", result.getNextPageToken()); assertEquals(VALUES1, result.getValues()); assertEquals(SOME_VALUES, ImmutableList.copyOf(result.getNextPageAsync().get().iterateAll())); } }
@Test public void testListLogEntriesAsyncWithOptions() throws ExecutionException, InterruptedException { String cursor = "cursor"; EasyMock.replay(rpcFactoryMock); logging = options.getService(); ListLogEntriesRequest request = ListLogEntriesRequest.newBuilder() .addProjectIds(PROJECT) .setOrderBy("timestamp desc") .setFilter("logName:syslog") .build(); List<LogEntry> entriesList = ImmutableList.of(LOG_ENTRY1, LOG_ENTRY2); ListLogEntriesResponse response = ListLogEntriesResponse.newBuilder() .setNextPageToken(cursor) .addAllEntries(Lists.transform(entriesList, LogEntry.toPbFunction(PROJECT))) .build(); ApiFuture<ListLogEntriesResponse> futureResponse = ApiFutures.immediateFuture(response); EasyMock.expect(loggingRpcMock.list(request)).andReturn(futureResponse); EasyMock.replay(loggingRpcMock); AsyncPage<LogEntry> page = logging .listLogEntriesAsync( EntryListOption.filter("logName:syslog"), EntryListOption.sortOrder(SortingField.TIMESTAMP, Logging.SortingOrder.DESCENDING)) .get(); assertEquals(cursor, page.getNextPageToken()); assertArrayEquals(entriesList.toArray(), Iterables.toArray(page.getValues(), LogEntry.class)); }
@Test public void testListSinksWithOptionsAsync() throws ExecutionException, InterruptedException { String cursor = "cursor"; EasyMock.replay(rpcFactoryMock); logging = options.getService(); ListSinksRequest request = ListSinksRequest.newBuilder() .setPageToken(cursor) .setPageSize(42) .setParent(PROJECT_PB) .build(); List<Sink> sinkList = ImmutableList.of( new Sink(logging, new SinkInfo.BuilderImpl(SINK_INFO)), new Sink(logging, new SinkInfo.BuilderImpl(SINK_INFO))); ListSinksResponse response = ListSinksResponse.newBuilder() .setNextPageToken(cursor) .addAllSinks(Lists.transform(sinkList, SINK_TO_PB_FUNCTION)) .build(); ApiFuture<ListSinksResponse> futureResponse = ApiFutures.immediateFuture(response); EasyMock.expect(loggingRpcMock.list(request)).andReturn(futureResponse); EasyMock.replay(loggingRpcMock); AsyncPage<Sink> page = logging.listSinksAsync(ListOption.pageSize(42), ListOption.pageToken(cursor)).get(); assertEquals(cursor, page.getNextPageToken()); assertArrayEquals(sinkList.toArray(), Iterables.toArray(page.getValues(), Sink.class)); }