/** Example of getting a sink. */ // [TARGET getSink(String)] // [VARIABLE "my_sink_name"] public Sink getSink(String sinkName) { // [START getSink] Sink sink = logging.getSink(sinkName); if (sink == null) { // sink was not found } // [END getSink] return sink; }
@Override public void run(Logging logging, String sink) { System.out.printf("Sink info: %s%n", logging.getSink(sink)); } }
/** * Fetches current sink's latest information. Returns {@code null} if the sink does not exist. * * <p>Example of getting the sink's latest information. * * <pre>{@code * Sink latestSink = sink.reload(); * if (latestSink == null) { * // the sink was not found * } * }</pre> * * @return a {@code Sink} object with latest information or {@code null} if not found * @throws LoggingException upon failure */ public Sink reload() { return logging.getSink(getName()); }
@Test public void testReloadNull() { initializeExpectedSink(1); expect(logging.getOptions()).andReturn(mockOptions); expect(logging.getSink(NAME)).andReturn(null); replay(logging); initializeSink(); assertNull(sink.reload()); }
@Test public void testGetSink_Null() { ApiFuture<LogSink> response = ApiFutures.immediateFuture(null); GetSinkRequest request = GetSinkRequest.newBuilder().setSinkName(SINK_NAME_PB).build(); EasyMock.expect(loggingRpcMock.get(request)).andReturn(response); EasyMock.replay(rpcFactoryMock, loggingRpcMock); logging = options.getService(); assertNull(logging.getSink(SINK_NAME)); }
@Test public void testReload() { initializeExpectedSink(2); SinkInfo updatedInfo = SINK_INFO.toBuilder().setFilter(NEW_FILTER).build(); Sink expectedSink = new Sink(serviceMockReturnsOptions, new SinkInfo.BuilderImpl(updatedInfo)); expect(logging.getOptions()).andReturn(mockOptions); expect(logging.getSink(NAME)).andReturn(expectedSink); replay(logging); initializeSink(); Sink updatedSink = sink.reload(); compareSink(expectedSink, updatedSink); }
@Test public void testGetSink() { LogSink sinkPb = SINK_INFO.toPb(PROJECT); ApiFuture<LogSink> response = ApiFutures.immediateFuture(sinkPb); GetSinkRequest request = GetSinkRequest.newBuilder().setSinkName(SINK_NAME_PB).build(); EasyMock.expect(loggingRpcMock.get(request)).andReturn(response); EasyMock.replay(rpcFactoryMock, loggingRpcMock); logging = options.getService(); Sink sink = logging.getSink(SINK_NAME); assertEquals(new Sink(logging, new SinkInfo.BuilderImpl(SINK_INFO)), sink); }
@Test public void testUpdateNonExistingSink() { String name = formatForTest("test-update-non-existing-sink"); SinkInfo sinkInfo = SinkInfo.newBuilder(name, DatasetDestination.of("dataset")) .setFilter("severity>=ERROR") .setVersionFormat(SinkInfo.VersionFormat.V2) .build(); assertNull(logging().getSink(name)); thrown.expect(LoggingException.class); thrown.expectMessage("NOT_FOUND"); logging().update(sinkInfo); }
@Test public void testCreateGetUpdateAndDeleteSink() { String name = formatForTest("test-create-get-update-sink"); SinkInfo sinkInfo = SinkInfo.newBuilder(name, DatasetDestination.of("dataset")) .setFilter("severity>=ERROR") .setVersionFormat(SinkInfo.VersionFormat.V2) .build(); Sink sink = logging().create(sinkInfo); assertEquals(name, sink.getName()); assertEquals(SinkInfo.VersionFormat.V2, sink.getVersionFormat()); assertEquals("severity>=ERROR", sink.getFilter()); DatasetDestination datasetDestination = sink.getDestination(); assertEquals(logging().getOptions().getProjectId(), datasetDestination.getProject()); assertEquals("dataset", datasetDestination.getDataset()); assertEquals(sink, logging().getSink(name)); sink = sink.toBuilder().setFilter("severity<=ERROR").build().update(); assertEquals(name, sink.getName()); assertEquals(SinkInfo.VersionFormat.V2, sink.getVersionFormat()); assertEquals("severity<=ERROR", sink.getFilter()); assertTrue(sink.delete()); assertFalse(sink.delete()); }
/** * Fetches current sink's latest information. Returns {@code null} if the sink does not exist. * * <p>Example of getting the sink's latest information. * * <pre>{@code * Sink latestSink = sink.reload(); * if (latestSink == null) { * // the sink was not found * } * }</pre> * * @return a {@code Sink} object with latest information or {@code null} if not found * @throws LoggingException upon failure */ public Sink reload() { return logging.getSink(getName()); }