@Override public void listLogEntries( ListLogEntriesRequest request, StreamObserver<ListLogEntriesResponse> responseObserver) { List<LogEntry> entries = new ArrayList<>(); for (ByteString proj : request.getProjectIdsList().asByteStringList()) { String prefix = "projects/" + proj.toStringUtf8() + "/"; for (Map.Entry<String, List<LogEntry>> entry : logs.entrySet()) { if (entry.getKey().startsWith(prefix)) { entries.addAll(entry.getValue()); } } } responseObserver.onNext(ListLogEntriesResponse.newBuilder().addAllEntries(entries).build()); responseObserver.onCompleted(); }
bitField0_ = (bitField0_ & ~0x00000001); } else { ensureEntriesIsMutable(); entries_.addAll(other.entries_); onChanged(); entriesBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getEntriesFieldBuilder() : null; } else { onChanged(); this.mergeUnknownFields(other.unknownFields); onChanged(); return this;
private com.google.protobuf.RepeatedFieldBuilderV3< com.google.logging.v2.LogEntry, com.google.logging.v2.LogEntry.Builder, com.google.logging.v2.LogEntryOrBuilder> getEntriesFieldBuilder() { if (entriesBuilder_ == null) { entriesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< com.google.logging.v2.LogEntry, com.google.logging.v2.LogEntry.Builder, com.google.logging.v2.LogEntryOrBuilder>( entries_, ((bitField0_ & 0x00000001) == 0x00000001), getParentForChildren(), isClean()); entries_ = null; } return entriesBuilder_; }
ListLogEntriesResponse response1 = ListLogEntriesResponse.newBuilder() .setNextPageToken(cursor1) .addAllEntries(Lists.transform(descriptorList1, LogEntry.toPbFunction(PROJECT))) .build(); String cursor2 = "nextCursor"; ListLogEntriesResponse response2 = ListLogEntriesResponse.newBuilder() .setNextPageToken(cursor2) .addAllEntries(Lists.transform(descriptorList2, LogEntry.toPbFunction(PROJECT))) .build(); ApiFuture<ListLogEntriesResponse> futureResponse1 = ApiFutures.immediateFuture(response1); ApiFuture<ListLogEntriesResponse> futureResponse2 = ApiFutures.immediateFuture(response2);
ListLogEntriesResponse response1 = ListLogEntriesResponse.newBuilder() .setNextPageToken(cursor1) .addAllEntries(Lists.transform(descriptorList1, LogEntry.toPbFunction(PROJECT))) .build(); String cursor2 = "nextCursor"; ListLogEntriesResponse response2 = ListLogEntriesResponse.newBuilder() .setNextPageToken(cursor2) .addAllEntries(Lists.transform(descriptorList2, LogEntry.toPbFunction(PROJECT))) .build(); ApiFuture<ListLogEntriesResponse> futureResponse1 = ApiFutures.immediateFuture(response1); ApiFuture<ListLogEntriesResponse> futureResponse2 = ApiFutures.immediateFuture(response2);
ListLogEntriesResponse expectedResponse = ListLogEntriesResponse.newBuilder() .setNextPageToken(nextPageToken) .addAllEntries(entries) .build(); mockLoggingServiceV2.addResponse(expectedResponse);
@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 testListLogEntriesWithOptions() { 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); Page<LogEntry> page = logging.listLogEntries( EntryListOption.filter("logName:syslog"), EntryListOption.sortOrder(SortingField.TIMESTAMP, Logging.SortingOrder.DESCENDING)); assertEquals(cursor, page.getNextPageToken()); assertArrayEquals(entriesList.toArray(), Iterables.toArray(page.getValues(), LogEntry.class)); }
/** * * * <pre> * A list of log entries. If `entries` is empty, `nextPageToken` may still be * returned, indicating that more entries may exist. See `nextPageToken` for * more information. * </pre> * * <code>repeated .google.logging.v2.LogEntry entries = 1;</code> */ public Builder addEntries(int index, com.google.logging.v2.LogEntry value) { if (entriesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureEntriesIsMutable(); entries_.add(index, value); onChanged(); } else { entriesBuilder_.addMessage(index, value); } return this; } /**
/** * * * <pre> * A list of log entries. If `entries` is empty, `nextPageToken` may still be * returned, indicating that more entries may exist. See `nextPageToken` for * more information. * </pre> * * <code>repeated .google.logging.v2.LogEntry entries = 1;</code> */ public Builder addEntries(com.google.logging.v2.LogEntry value) { if (entriesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureEntriesIsMutable(); entries_.add(value); onChanged(); } else { entriesBuilder_.addMessage(value); } return this; } /**
/** * * * <pre> * A list of log entries. If `entries` is empty, `nextPageToken` may still be * returned, indicating that more entries may exist. See `nextPageToken` for * more information. * </pre> * * <code>repeated .google.logging.v2.LogEntry entries = 1;</code> */ public Builder setEntries(int index, com.google.logging.v2.LogEntry value) { if (entriesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureEntriesIsMutable(); entries_.set(index, value); onChanged(); } else { entriesBuilder_.setMessage(index, value); } return this; } /**
/** * * * <pre> * A list of log entries. If `entries` is empty, `nextPageToken` may still be * returned, indicating that more entries may exist. See `nextPageToken` for * more information. * </pre> * * <code>repeated .google.logging.v2.LogEntry entries = 1;</code> */ public Builder removeEntries(int index) { if (entriesBuilder_ == null) { ensureEntriesIsMutable(); entries_.remove(index); onChanged(); } else { entriesBuilder_.remove(index); } return this; } /**
/** * * * <pre> * A list of log entries. If `entries` is empty, `nextPageToken` may still be * returned, indicating that more entries may exist. See `nextPageToken` for * more information. * </pre> * * <code>repeated .google.logging.v2.LogEntry entries = 1;</code> */ public Builder addAllEntries( java.lang.Iterable<? extends com.google.logging.v2.LogEntry> values) { if (entriesBuilder_ == null) { ensureEntriesIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll(values, entries_); onChanged(); } else { entriesBuilder_.addAllMessages(values); } return this; } /**
/** * * * <pre> * A list of log entries. If `entries` is empty, `nextPageToken` may still be * returned, indicating that more entries may exist. See `nextPageToken` for * more information. * </pre> * * <code>repeated .google.logging.v2.LogEntry entries = 1;</code> */ public Builder addEntries(com.google.logging.v2.LogEntry.Builder builderForValue) { if (entriesBuilder_ == null) { ensureEntriesIsMutable(); entries_.add(builderForValue.build()); onChanged(); } else { entriesBuilder_.addMessage(builderForValue.build()); } return this; } /**
/** * * * <pre> * A list of log entries. If `entries` is empty, `nextPageToken` may still be * returned, indicating that more entries may exist. See `nextPageToken` for * more information. * </pre> * * <code>repeated .google.logging.v2.LogEntry entries = 1;</code> */ public Builder addEntries(int index, com.google.logging.v2.LogEntry.Builder builderForValue) { if (entriesBuilder_ == null) { ensureEntriesIsMutable(); entries_.add(index, builderForValue.build()); onChanged(); } else { entriesBuilder_.addMessage(index, builderForValue.build()); } return this; } /**
/** * * * <pre> * A list of log entries. If `entries` is empty, `nextPageToken` may still be * returned, indicating that more entries may exist. See `nextPageToken` for * more information. * </pre> * * <code>repeated .google.logging.v2.LogEntry entries = 1;</code> */ public Builder setEntries(int index, com.google.logging.v2.LogEntry.Builder builderForValue) { if (entriesBuilder_ == null) { ensureEntriesIsMutable(); entries_.set(index, builderForValue.build()); onChanged(); } else { entriesBuilder_.setMessage(index, builderForValue.build()); } return this; } /**
@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 testListLogEntries() { 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); Page<LogEntry> page = logging.listLogEntries(); assertEquals(cursor, page.getNextPageToken()); assertArrayEquals(entriesList.toArray(), Iterables.toArray(page.getValues(), LogEntry.class)); }
@Test public void testListLogEntriesEmpty() { 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); Page<LogEntry> page = logging.listLogEntries(); assertEquals(cursor, page.getNextPageToken()); assertArrayEquals(entriesList.toArray(), Iterables.toArray(page.getValues(), LogEntry.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)); }