diff options
author | 2016-06-20 10:30:55 +0000 | |
---|---|---|
committer | 2016-06-21 09:57:25 +0000 | |
commit | 69fa69983b26c1059c99c7709162fbe778fe690f (patch) | |
tree | ce0e742abf8c0423c252941c23093856143cac5f /src/main/java/com/google/devtools/build/lib/sandbox | |
parent | 7c246857cdfc210538c76749acb5004a284bdf01 (diff) |
sandbox: So refactoring, much no-op change, wow.
(But this will make it easier to try out the overlayfs-based sandbox later.)
--
MOS_MIGRATED_REVID=125320914
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/sandbox')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java | 24 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextProvider.java | 6 |
2 files changed, 14 insertions, 16 deletions
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 989190554c..cc9acf66d9 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 @@ -70,33 +70,30 @@ import java.util.concurrent.atomic.AtomicInteger; public class LinuxSandboxedStrategy implements SpawnActionContext { private final ExecutorService backgroundWorkers; + private final SandboxOptions sandboxOptions; private final ImmutableMap<String, String> clientEnv; private final BlazeDirectories blazeDirs; private final Path execRoot; private final boolean verboseFailures; - private final boolean sandboxDebug; private final boolean unblockNetwork; - private final List<String> sandboxAddPath; private final UUID uuid = UUID.randomUUID(); private final AtomicInteger execCounter = new AtomicInteger(); private final String productName; public LinuxSandboxedStrategy( + SandboxOptions options, Map<String, String> clientEnv, BlazeDirectories blazeDirs, ExecutorService backgroundWorkers, boolean verboseFailures, - boolean sandboxDebug, - List<String> sandboxAddPath, boolean unblockNetwork, String productName) { + this.sandboxOptions = options; this.clientEnv = ImmutableMap.copyOf(clientEnv); this.blazeDirs = blazeDirs; this.execRoot = blazeDirs.getExecRoot(); this.backgroundWorkers = Preconditions.checkNotNull(backgroundWorkers); this.verboseFailures = verboseFailures; - this.sandboxDebug = sandboxDebug; - this.sandboxAddPath = sandboxAddPath; this.unblockNetwork = unblockNetwork; this.productName = productName; } @@ -136,9 +133,9 @@ public class LinuxSandboxedStrategy implements SpawnActionContext { Path sandboxPath = execRoot.getRelative(productName + "-sandbox").getRelative(execId); + // Gather all necessary mounts for the sandbox. ImmutableMap<Path, Path> mounts; try { - // Gather all necessary mounts for the sandbox. mounts = getMounts(spawn, actionExecutionContext); } catch (IllegalArgumentException | IOException e) { throw new EnvironmentalExecException("Could not prepare mounts for sandbox execution", e); @@ -148,7 +145,7 @@ public class LinuxSandboxedStrategy implements SpawnActionContext { int timeout = getTimeout(spawn); - ImmutableSet.Builder<PathFragment> outputFiles = ImmutableSet.<PathFragment>builder(); + ImmutableSet.Builder<PathFragment> outputFiles = ImmutableSet.builder(); for (PathFragment optionalOutput : spawn.getOptionalOutputFiles()) { Preconditions.checkArgument(!optionalOutput.isAbsolute()); outputFiles.add(optionalOutput); @@ -160,7 +157,12 @@ public class LinuxSandboxedStrategy implements SpawnActionContext { try { final NamespaceSandboxRunner runner = new NamespaceSandboxRunner( - execRoot, sandboxPath, mounts, createDirs, verboseFailures, sandboxDebug); + execRoot, + sandboxPath, + mounts, + createDirs, + verboseFailures, + sandboxOptions.sandboxDebug); try { runner.run( spawn.getArguments(), @@ -529,7 +531,7 @@ public class LinuxSandboxedStrategy implements SpawnActionContext { ImmutableList<Path> exclude = ImmutableList.of(blazeDirs.getWorkspace(), blazeDirs.getOutputBase()); - for (String pathStr : sandboxAddPath) { + for (String pathStr : sandboxOptions.sandboxAddPath) { Path path = fs.getPath(pathStr); // Check if path is in {workspace, outputBase} @@ -611,6 +613,6 @@ public class LinuxSandboxedStrategy implements SpawnActionContext { @Override public boolean shouldPropagateExecException() { - return verboseFailures && sandboxDebug; + return verboseFailures && sandboxOptions.sandboxDebug; } } 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 a1f6134ff0..e6e462318a 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 @@ -23,7 +23,6 @@ import com.google.devtools.build.lib.exec.ExecutionOptions; import com.google.devtools.build.lib.runtime.CommandEnvironment; import com.google.devtools.build.lib.util.OS; -import java.util.List; import java.util.concurrent.ExecutorService; /** @@ -37,24 +36,21 @@ public class SandboxActionContextProvider extends ActionContextProvider { public SandboxActionContextProvider( CommandEnvironment env, BuildRequest buildRequest, ExecutorService backgroundWorkers) { boolean verboseFailures = buildRequest.getOptions(ExecutionOptions.class).verboseFailures; - boolean sandboxDebug = buildRequest.getOptions(SandboxOptions.class).sandboxDebug; boolean unblockNetwork = buildRequest .getOptions(BuildConfiguration.Options.class) .testArguments .contains("--wrapper_script_flag=--debug"); - List<String> sandboxAddPath = buildRequest.getOptions(SandboxOptions.class).sandboxAddPath; Builder<ActionContext> strategies = ImmutableList.builder(); if (OS.getCurrent() == OS.LINUX) { strategies.add( new LinuxSandboxedStrategy( + buildRequest.getOptions(SandboxOptions.class), env.getClientEnv(), env.getDirectories(), backgroundWorkers, verboseFailures, - sandboxDebug, - sandboxAddPath, unblockNetwork, env.getRuntime().getProductName())); } |