aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/sandbox
diff options
context:
space:
mode:
authorGravatar ulfjack <ulfjack@google.com>2018-02-20 09:48:10 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-20 09:50:06 -0800
commitd399df930e089f23390b09f42f4f5b47fce02977 (patch)
tree47cec9cfbfd5f5ce69fdcbb6b14f7149574a96cb /src/main/java/com/google/devtools/build/lib/sandbox
parentb80158aca7f9cb99023e2f83effe2caefd0bb2d8 (diff)
Inject the product name in the constructor where needed
...instead of passing it everywhere so we can rewrite the local env. PiperOrigin-RevId: 186316859
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/sandbox')
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedSpawnRunner.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedSpawnRunner.java59
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedSpawnRunner.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextProvider.java3
5 files changed, 7 insertions, 69 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedSpawnRunner.java b/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedSpawnRunner.java
index ebd75bf48b..9d924e974d 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedSpawnRunner.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedSpawnRunner.java
@@ -150,7 +150,8 @@ final class DarwinSandboxedSpawnRunner extends AbstractSandboxSpawnRunner {
this.productName = productName;
this.alwaysWritableDirs = getAlwaysWritableDirs(cmdEnv.getRuntime().getFileSystem());
this.processWrapper = ProcessWrapperUtil.getProcessWrapper(cmdEnv);
- this.localEnvProvider = new XCodeLocalEnvProvider(cmdEnv.getClientEnv());
+ this.localEnvProvider =
+ new XCodeLocalEnvProvider(cmdEnv.getRuntime().getProductName(), cmdEnv.getClientEnv());
this.timeoutKillDelay = timeoutKillDelay;
}
@@ -223,8 +224,7 @@ final class DarwinSandboxedSpawnRunner extends AbstractSandboxSpawnRunner {
Path tmpDir = sandboxExecRoot.getRelative("tmp");
Map<String, String> environment =
- localEnvProvider.rewriteLocalEnv(
- spawn.getEnvironment(), execRoot, tmpDir.getPathString(), productName);
+ localEnvProvider.rewriteLocalEnv(spawn.getEnvironment(), execRoot, tmpDir.getPathString());
final HashSet<Path> writableDirs = new HashSet<>(alwaysWritableDirs);
ImmutableSet<Path> extraWritableDirs = getWritableDirs(sandboxExecRoot, environment);
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedSpawnRunner.java b/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedSpawnRunner.java
index ad677f17ae..bd21c1b680 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedSpawnRunner.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedSpawnRunner.java
@@ -85,66 +85,12 @@ final class LinuxSandboxedSpawnRunner extends AbstractSandboxSpawnRunner {
private final Path inaccessibleHelperDir;
private final LocalEnvProvider localEnvProvider;
private final Optional<Duration> timeoutKillDelay;
- private final String productName;
-
- /**
- * Creates a sandboxed spawn runner that uses the {@code linux-sandbox} tool. If a spawn exceeds
- * its timeout, then it will be killed instantly.
- *
- * @param cmdEnv the command environment to use
- * @param sandboxBase path to the sandbox base directory
- * @param productName the product name to use
- * @param inaccessibleHelperFile path to a file that is (already) inaccessible
- * @param inaccessibleHelperDir path to a directory that is (already) inaccessible
- */
- LinuxSandboxedSpawnRunner(
- CommandEnvironment cmdEnv,
- Path sandboxBase,
- String productName,
- Path inaccessibleHelperFile,
- Path inaccessibleHelperDir) {
- this(
- cmdEnv,
- sandboxBase,
- productName,
- inaccessibleHelperFile,
- inaccessibleHelperDir,
- Optional.empty());
- }
-
- /**
- * Creates a sandboxed spawn runner that uses the {@code linux-sandbox} tool. If a spawn exceeds
- * its timeout, then it will be killed after the specified delay.
- *
- * @param cmdEnv the command environment to use
- * @param sandboxBase path to the sandbox base directory
- * @param productName the product name to use
- * @param inaccessibleHelperFile path to a file that is (already) inaccessible
- * @param inaccessibleHelperDir path to a directory that is (already) inaccessible
- * @param timeoutKillDelay an additional grace period before killing timing out commands
- */
- LinuxSandboxedSpawnRunner(
- CommandEnvironment cmdEnv,
- Path sandboxBase,
- String productName,
- Path inaccessibleHelperFile,
- Path inaccessibleHelperDir,
- Duration timeoutKillDelay) {
- this(
- cmdEnv,
- sandboxBase,
- productName,
- inaccessibleHelperFile,
- inaccessibleHelperDir,
- Optional.of(timeoutKillDelay));
- }
/**
* Creates a sandboxed spawn runner that uses the {@code linux-sandbox} tool.
*
* @param cmdEnv the command environment to use
* @param sandboxBase path to the sandbox base directory
- * @param productName the product name to use
* @param inaccessibleHelperFile path to a file that is (already) inaccessible
* @param inaccessibleHelperDir path to a directory that is (already) inaccessible
* @param timeoutKillDelay an optional, additional grace period before killing timing out
@@ -153,7 +99,6 @@ final class LinuxSandboxedSpawnRunner extends AbstractSandboxSpawnRunner {
LinuxSandboxedSpawnRunner(
CommandEnvironment cmdEnv,
Path sandboxBase,
- String productName,
Path inaccessibleHelperFile,
Path inaccessibleHelperDir,
Optional<Duration> timeoutKillDelay) {
@@ -161,7 +106,6 @@ final class LinuxSandboxedSpawnRunner extends AbstractSandboxSpawnRunner {
this.fileSystem = cmdEnv.getRuntime().getFileSystem();
this.blazeDirs = cmdEnv.getDirectories();
this.execRoot = cmdEnv.getExecRoot();
- this.productName = productName;
this.allowNetwork = SandboxHelpers.shouldAllowNetwork(cmdEnv.getOptions());
this.linuxSandbox = LinuxSandboxUtil.getLinuxSandbox(cmdEnv);
this.inaccessibleHelperFile = inaccessibleHelperFile;
@@ -182,8 +126,7 @@ final class LinuxSandboxedSpawnRunner extends AbstractSandboxSpawnRunner {
Path tmpDir = sandboxExecRoot.getRelative("tmp");
Map<String, String> environment =
- localEnvProvider.rewriteLocalEnv(
- spawn.getEnvironment(), execRoot, tmpDir.getPathString(), productName);
+ localEnvProvider.rewriteLocalEnv(spawn.getEnvironment(), execRoot, tmpDir.getPathString());
Set<Path> writableDirs = getWritableDirs(sandboxExecRoot, environment);
ImmutableSet<PathFragment> outputs = SandboxHelpers.getOutputFiles(spawn);
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java b/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
index 9e665db734..360fcbbce4 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
@@ -99,7 +99,6 @@ public final class LinuxSandboxedStrategy extends AbstractSpawnStrategy {
return new LinuxSandboxedSpawnRunner(
cmdEnv,
sandboxBase,
- productName,
inaccessibleHelperFile,
inaccessibleHelperDir,
timeoutKillDelay);
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedSpawnRunner.java b/src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedSpawnRunner.java
index 18b33c2de4..60bd17adca 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedSpawnRunner.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedSpawnRunner.java
@@ -37,7 +37,6 @@ final class ProcessWrapperSandboxedSpawnRunner extends AbstractSandboxSpawnRunne
}
private final Path execRoot;
- private final String productName;
private final Path processWrapper;
private final LocalEnvProvider localEnvProvider;
private final Optional<Duration> timeoutKillDelay;
@@ -85,12 +84,11 @@ final class ProcessWrapperSandboxedSpawnRunner extends AbstractSandboxSpawnRunne
Optional<Duration> timeoutKillDelay) {
super(cmdEnv, sandboxBase);
this.execRoot = cmdEnv.getExecRoot();
- this.productName = productName;
this.timeoutKillDelay = timeoutKillDelay;
this.processWrapper = ProcessWrapperUtil.getProcessWrapper(cmdEnv);
this.localEnvProvider =
OS.getCurrent() == OS.DARWIN
- ? new XCodeLocalEnvProvider(cmdEnv.getClientEnv())
+ ? new XCodeLocalEnvProvider(productName, cmdEnv.getClientEnv())
: new PosixLocalEnvProvider(cmdEnv.getClientEnv());
}
@@ -106,8 +104,7 @@ final class ProcessWrapperSandboxedSpawnRunner extends AbstractSandboxSpawnRunne
Path tmpDir = sandboxExecRoot.getRelative("tmp");
Map<String, String> environment =
- localEnvProvider.rewriteLocalEnv(
- spawn.getEnvironment(), execRoot, tmpDir.getPathString(), productName);
+ localEnvProvider.rewriteLocalEnv(spawn.getEnvironment(), execRoot, tmpDir.getPathString());
Duration timeout = policy.getTimeout();
ProcessWrapperUtil.CommandLineBuilder commandLineBuilder =
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextProvider.java b/src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextProvider.java
index 24a08c4097..3e4af216e7 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextProvider.java
@@ -100,14 +100,13 @@ final class SandboxActionContextProvider extends ActionContextProvider {
env.getOptions().getOptions(LocalExecutionOptions.class);
LocalEnvProvider localEnvProvider =
OS.getCurrent() == OS.DARWIN
- ? new XCodeLocalEnvProvider(env.getClientEnv())
+ ? new XCodeLocalEnvProvider(env.getRuntime().getProductName(), env.getClientEnv())
: new PosixLocalEnvProvider(env.getClientEnv());
return
new LocalSpawnRunner(
env.getExecRoot(),
localExecutionOptions,
ResourceManager.instance(),
- env.getRuntime().getProductName(),
localEnvProvider);
}