aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
authorGravatar tomlu <tomlu@google.com>2018-07-11 10:55:10 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-11 10:57:11 -0700
commite0a68ab35294b0acff1226d74744957780967ae4 (patch)
tree75ace4ba8b4a03db2d0a216b2dd4898f1a099a83 /src/main/java/com/google/devtools/build/lib
parentf4a3dd9b8124dc7b2795f89e6700881b66371e4f (diff)
Pass options to BuildEventArtifactUploaderFactory.
The artifact uploaders may need command-level options. RELNOTES: None PiperOrigin-RevId: 204151808
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildeventservice/BuildEventServiceModule.java48
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildeventstream/BuildEventArtifactUploaderFactory.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildeventstream/transports/BuildEventTransportFactory.java24
-rw-r--r--src/main/java/com/google/devtools/build/lib/remote/RemoteModule.java2
4 files changed, 41 insertions, 40 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/buildeventservice/BuildEventServiceModule.java b/src/main/java/com/google/devtools/build/lib/buildeventservice/BuildEventServiceModule.java
index b12f398f3f..055dc2ea44 100644
--- a/src/main/java/com/google/devtools/build/lib/buildeventservice/BuildEventServiceModule.java
+++ b/src/main/java/com/google/devtools/build/lib/buildeventservice/BuildEventServiceModule.java
@@ -147,38 +147,19 @@ public abstract class BuildEventServiceModule<T extends BuildEventServiceOptions
Preconditions.checkNotNull(buildEventArtifactUploaderFactoryMap);
try {
- T besOptions =
- checkNotNull(
- optionsProvider.getOptions(optionsClass()),
- "Could not get BuildEventServiceOptions.");
- AuthAndTLSOptions authTlsOptions =
- checkNotNull(
- optionsProvider.getOptions(AuthAndTLSOptions.class),
- "Could not get AuthAndTLSOptions.");
- BuildEventStreamOptions bepOptions =
- checkNotNull(
- optionsProvider.getOptions(BuildEventStreamOptions.class),
- "Could not get BuildEventStreamOptions.");
- BuildEventProtocolOptions protocolOptions =
- checkNotNull(
- optionsProvider.getOptions(BuildEventProtocolOptions.class),
- "Could not get BuildEventProtocolOptions.");
-
BuildEventTransport besTransport = null;
try {
besTransport =
tryCreateBesTransport(
- besOptions,
- authTlsOptions,
buildRequestId,
invocationId,
commandName,
moduleEnvironment,
clock,
- protocolOptions,
buildEventArtifactUploaderFactoryMap,
commandLineReporter,
- startupOptionsProvider);
+ startupOptionsProvider,
+ optionsProvider);
} catch (Exception e) {
commandLineReporter.handle(Event.error(format(UPLOAD_FAILED_MESSAGE, e.getMessage())));
moduleEnvironment.exit(
@@ -189,10 +170,7 @@ public abstract class BuildEventServiceModule<T extends BuildEventServiceOptions
ImmutableSet<BuildEventTransport> bepTransports =
BuildEventTransportFactory.createFromOptions(
- bepOptions,
- protocolOptions,
- buildEventArtifactUploaderFactoryMap,
- moduleEnvironment::exit);
+ optionsProvider, buildEventArtifactUploaderFactoryMap, moduleEnvironment::exit);
ImmutableSet.Builder<BuildEventTransport> transportsBuilder =
ImmutableSet.<BuildEventTransport>builder().addAll(bepTransports);
@@ -214,18 +192,28 @@ public abstract class BuildEventServiceModule<T extends BuildEventServiceOptions
@Nullable
private BuildEventTransport tryCreateBesTransport(
- T besOptions,
- AuthAndTLSOptions authTlsOptions,
String buildRequestId,
String invocationId,
String commandName,
ModuleEnvironment moduleEnvironment,
Clock clock,
- BuildEventProtocolOptions protocolOptions,
BuildEventArtifactUploaderFactoryMap buildEventArtifactUploaderFactoryMap,
EventHandler commandLineReporter,
- OptionsProvider startupOptionsProvider)
+ OptionsProvider startupOptionsProvider,
+ OptionsProvider optionsProvider)
throws IOException, OptionsParsingException {
+ T besOptions =
+ checkNotNull(
+ optionsProvider.getOptions(optionsClass()), "Could not get BuildEventServiceOptions.");
+ AuthAndTLSOptions authTlsOptions =
+ checkNotNull(
+ optionsProvider.getOptions(AuthAndTLSOptions.class),
+ "Could not get AuthAndTLSOptions.");
+ BuildEventProtocolOptions protocolOptions =
+ checkNotNull(
+ optionsProvider.getOptions(BuildEventProtocolOptions.class),
+ "Could not get BuildEventProtocolOptions.");
+
if (isNullOrEmpty(besOptions.besBackend)) {
logger.fine("BuildEventServiceTransport is disabled.");
return null;
@@ -256,7 +244,7 @@ public abstract class BuildEventServiceModule<T extends BuildEventServiceOptions
BuildEventArtifactUploader artifactUploader =
buildEventArtifactUploaderFactoryMap
.select(protocolOptions.buildEventUploadStrategy)
- .create();
+ .create(optionsProvider);
BuildEventTransport besTransport =
new BuildEventServiceTransport(
diff --git a/src/main/java/com/google/devtools/build/lib/buildeventstream/BuildEventArtifactUploaderFactory.java b/src/main/java/com/google/devtools/build/lib/buildeventstream/BuildEventArtifactUploaderFactory.java
index bee7c40433..d2cc64e6b1 100644
--- a/src/main/java/com/google/devtools/build/lib/buildeventstream/BuildEventArtifactUploaderFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/buildeventstream/BuildEventArtifactUploaderFactory.java
@@ -15,14 +15,17 @@ package com.google.devtools.build.lib.buildeventstream;
import static com.google.devtools.build.lib.buildeventstream.BuildEventArtifactUploader.LOCAL_FILES_UPLOADER;
+import com.google.devtools.common.options.OptionsProvider;
+
/** A factory for {@link BuildEventArtifactUploader}. */
public interface BuildEventArtifactUploaderFactory {
- BuildEventArtifactUploaderFactory LOCAL_FILES_UPLOADER_FACTORY = () -> LOCAL_FILES_UPLOADER;
+ BuildEventArtifactUploaderFactory LOCAL_FILES_UPLOADER_FACTORY =
+ (OptionsProvider options) -> LOCAL_FILES_UPLOADER;
/**
* Returns a new instance of a {@link BuildEventArtifactUploader}. The call is responsible for
* calling {@link BuildEventArtifactUploader#shutdown()} on the returned instance.
*/
- BuildEventArtifactUploader create();
+ BuildEventArtifactUploader create(OptionsProvider options);
}
diff --git a/src/main/java/com/google/devtools/build/lib/buildeventstream/transports/BuildEventTransportFactory.java b/src/main/java/com/google/devtools/build/lib/buildeventstream/transports/BuildEventTransportFactory.java
index 6cc539418d..cafc20ac29 100644
--- a/src/main/java/com/google/devtools/build/lib/buildeventstream/transports/BuildEventTransportFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/buildeventstream/transports/BuildEventTransportFactory.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.buildeventstream.transports;
+import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Strings.isNullOrEmpty;
import com.google.common.collect.ImmutableSet;
@@ -22,6 +23,7 @@ import com.google.devtools.build.lib.buildeventstream.BuildEventArtifactUploader
import com.google.devtools.build.lib.buildeventstream.BuildEventProtocolOptions;
import com.google.devtools.build.lib.buildeventstream.BuildEventTransport;
import com.google.devtools.build.lib.util.AbruptExitException;
+import com.google.devtools.common.options.OptionsProvider;
import java.io.IOException;
import java.util.function.Consumer;
@@ -105,19 +107,27 @@ public enum BuildEventTransportFactory {
* @throws IOException Exception propagated from a {@link BuildEventTransport} creation failure.
*/
public static ImmutableSet<BuildEventTransport> createFromOptions(
- BuildEventStreamOptions options,
- BuildEventProtocolOptions protocolOptions,
+ OptionsProvider options,
BuildEventArtifactUploaderFactoryMap artifactUploaders,
Consumer<AbruptExitException> exitFunc)
throws IOException {
+ BuildEventStreamOptions bepOptions =
+ checkNotNull(
+ options.getOptions(BuildEventStreamOptions.class),
+ "Could not get BuildEventStreamOptions.");
+ BuildEventProtocolOptions protocolOptions =
+ checkNotNull(
+ options.getOptions(BuildEventProtocolOptions.class),
+ "Could not get BuildEventProtocolOptions.");
ImmutableSet.Builder<BuildEventTransport> buildEventTransportsBuilder = ImmutableSet.builder();
for (BuildEventTransportFactory transportFactory : BuildEventTransportFactory.values()) {
- if (transportFactory.enabled(options)) {
- BuildEventArtifactUploader uploader = transportFactory.usePathConverter(options)
- ? artifactUploaders.select(protocolOptions.buildEventUploadStrategy).create()
- : BuildEventArtifactUploader.LOCAL_FILES_UPLOADER;
+ if (transportFactory.enabled(bepOptions)) {
+ BuildEventArtifactUploader uploader =
+ transportFactory.usePathConverter(bepOptions)
+ ? artifactUploaders.select(protocolOptions.buildEventUploadStrategy).create(options)
+ : BuildEventArtifactUploader.LOCAL_FILES_UPLOADER;
buildEventTransportsBuilder.add(
- transportFactory.create(options, protocolOptions, uploader, exitFunc));
+ transportFactory.create(bepOptions, protocolOptions, uploader, exitFunc));
}
}
return buildEventTransportsBuilder.build();
diff --git a/src/main/java/com/google/devtools/build/lib/remote/RemoteModule.java b/src/main/java/com/google/devtools/build/lib/remote/RemoteModule.java
index a12ee300a4..ca1b2b51bc 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/RemoteModule.java
+++ b/src/main/java/com/google/devtools/build/lib/remote/RemoteModule.java
@@ -105,7 +105,7 @@ public final class RemoteModule extends BlazeModule {
@Override
public void serverInit(OptionsProvider startupOptions, ServerBuilder builder) {
builder.addBuildEventArtifactUploaderFactory(
- () ->
+ (OptionsProvider options) ->
new BuildEventArtifactUploader() {
@Override