aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com
diff options
context:
space:
mode:
authorGravatar Philipp Wollermann <philwo@google.com>2016-02-03 13:18:26 +0000
committerGravatar David Chen <dzc@google.com>2016-02-03 22:06:30 +0000
commit9446e9b55e01aee0425a1f21b47b98df55043c6f (patch)
tree59a0bdbfa93b133ed5c53ec41de9af165319a927 /src/main/java/com
parent0d1a53cf5614d621518914682ec44c6f20a27ab7 (diff)
Make The Build Faster: Drop the describeStrategy() and strategyLocality() methods, as we can simply pass an ActionStatusMessage to the EventBus instead. All SpawnActionContexts now send an appropriate message when they execute a Spawn.
This also gets rid of the idiom that an Action knows which strategy will be used to execute it - this decision and knowledge belongs to the executor, not the action. -- MOS_MIGRATED_REVID=113731846
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/ActionExecutionStatusReporter.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/ActionMetadata.java13
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/ActionStatusMessage.java18
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/FailAction.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/MiddlemanAction.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/ResourceManager.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/SpawnActionContext.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/PseudoAction.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/SymlinkTreeAction.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/actions/AbstractFileWriteAction.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteActionContext.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/BazelWorkspaceStatusModule.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/exec/FileWriteStrategy.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionContext.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionContext.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/ExtractInclusionAction.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/FakeCppCompileAction.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/FdoStubAction.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/SolibSymlinkAction.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/SpawnGccStrategy.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/SpawnLinkStrategy.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/test/ExclusiveTestStrategy.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/test/StandaloneTestStrategy.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/test/TestActionContext.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/test/TestRunnerAction.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/test/TestStrategy.java13
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java17
-rw-r--r--src/main/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategy.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java7
34 files changed, 30 insertions, 180 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionStatusReporter.java b/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionStatusReporter.java
index 8a29b08ea0..7a2a410d85 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionStatusReporter.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionStatusReporter.java
@@ -117,20 +117,13 @@ public final class ActionExecutionStatusReporter {
}
public void setRunningFromBuildData(ActionMetadata action) {
- updateStatus(ActionStatusMessage.runningStrategy(action));
+ updateStatus(ActionStatusMessage.runningStrategy(action, "unknown"));
}
@Subscribe
public void updateStatus(ActionStatusMessage statusMsg) {
String message = statusMsg.getMessage();
ActionMetadata action = statusMsg.getActionMetadata();
- if (statusMsg.needsStrategy()) {
- String strategy = action.describeStrategy(executor);
- if (strategy == null) {
- return;
- }
- message = String.format(message, strategy);
- }
setStatus(action, message);
}
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ActionMetadata.java b/src/main/java/com/google/devtools/build/lib/actions/ActionMetadata.java
index c8c82c86ca..08b501c4c6 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/ActionMetadata.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/ActionMetadata.java
@@ -61,19 +61,6 @@ public interface ActionMetadata {
String prettyPrint();
/**
- * Returns a string that can be used to describe the execution strategy.
- * For example, "local".
- *
- * May return null if the action chooses to update its strategy
- * locality "manually", via ActionLocalityMessage.
- *
- * @param executor the application-specific value passed to the
- * executor parameter of the top-level call to
- * Builder.buildArtifacts().
- */
- String describeStrategy(Executor executor);
-
- /**
* Returns true iff the getInputs set is known to be complete.
*
* <p>For most Actions, this always returns true, but in some cases (e.g. C++ compilation), inputs
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ActionStatusMessage.java b/src/main/java/com/google/devtools/build/lib/actions/ActionStatusMessage.java
index 45de35d48d..144e862297 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/ActionStatusMessage.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/ActionStatusMessage.java
@@ -24,7 +24,7 @@ public class ActionStatusMessage {
private final String message;
public static final String PREPARING = "Preparing";
- public ActionStatusMessage(ActionMetadata action, String message) {
+ private ActionStatusMessage(ActionMetadata action, String message) {
this.action = action;
this.message = message;
}
@@ -37,11 +37,6 @@ public class ActionStatusMessage {
return message;
}
- /** Returns whether the message needs further interpolation of a 'strategy' when printed. */
- public boolean needsStrategy() {
- return false;
- }
-
/** Creates "Analyzing" status message. */
public static ActionStatusMessage analysisStrategy(ActionMetadata action) {
return new ActionStatusMessage(action, "Analyzing");
@@ -57,13 +52,8 @@ public class ActionStatusMessage {
return new ActionStatusMessage(action, "Scheduling");
}
- /** Creates "Running (%s)" status message (needs strategy interpolated). */
- public static ActionStatusMessage runningStrategy(ActionMetadata action) {
- return new ActionStatusMessage(action, "Running (%s)") {
- @Override
- public boolean needsStrategy() {
- return true;
- }
- };
+ /** Creates "Running (strategy)" status message. */
+ public static ActionStatusMessage runningStrategy(ActionMetadata action, String strategy) {
+ return new ActionStatusMessage(action, String.format("Running (%s)", strategy));
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/actions/FailAction.java b/src/main/java/com/google/devtools/build/lib/actions/FailAction.java
index 191c657898..da6f599d37 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/FailAction.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/FailAction.java
@@ -62,11 +62,6 @@ public final class FailAction extends AbstractAction {
}
@Override
- public String describeStrategy(Executor executor) {
- return "";
- }
-
- @Override
public String getMnemonic() {
return "Fail";
}
diff --git a/src/main/java/com/google/devtools/build/lib/actions/MiddlemanAction.java b/src/main/java/com/google/devtools/build/lib/actions/MiddlemanAction.java
index bc710f09fc..8c25e4d223 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/MiddlemanAction.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/MiddlemanAction.java
@@ -86,11 +86,6 @@ public class MiddlemanAction extends AbstractAction {
}
@Override
- public String describeStrategy(Executor executor) {
- return "";
- }
-
- @Override
public String getMnemonic() {
return MIDDLEMAN_MNEMONIC;
}
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ResourceManager.java b/src/main/java/com/google/devtools/build/lib/actions/ResourceManager.java
index c262294a4b..e87e87e697 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/ResourceManager.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/ResourceManager.java
@@ -265,7 +265,7 @@ public class ResourceManager {
private void acquired(ActionMetadata owner) {
if (eventBus != null) {
// Null only in tests.
- eventBus.post(ActionStatusMessage.runningStrategy(owner));
+ eventBus.post(ActionStatusMessage.runningStrategy(owner, "unknown"));
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/actions/SpawnActionContext.java b/src/main/java/com/google/devtools/build/lib/actions/SpawnActionContext.java
index cf33786f8c..80ef4a505b 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/SpawnActionContext.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/SpawnActionContext.java
@@ -24,9 +24,6 @@ public interface SpawnActionContext extends Executor.ActionContext {
void exec(Spawn spawn, ActionExecutionContext actionExecutionContext)
throws ExecException, InterruptedException;
- /** Returns the locality of running the spawn, i.e., "local". */
- String strategyLocality(String mnemonic, boolean remotable);
-
/**
* This implements a tri-state mode. There are three possible cases: (1) implementations of this
* class can unconditionally execute spawns locally, (2) they can follow whatever is set for the
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/PseudoAction.java b/src/main/java/com/google/devtools/build/lib/analysis/PseudoAction.java
index 633258b310..c482f2e615 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/PseudoAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/PseudoAction.java
@@ -52,11 +52,6 @@ public class PseudoAction<InfoType extends MessageLite> extends AbstractAction {
this.info = info;
}
- @Override
- public String describeStrategy(Executor executor) {
- return null;
- }
-
@Override
public void execute(ActionExecutionContext actionExecutionContext)
throws ActionExecutionException {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/SymlinkTreeAction.java b/src/main/java/com/google/devtools/build/lib/analysis/SymlinkTreeAction.java
index 7501f09189..17591e0265 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/SymlinkTreeAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/SymlinkTreeAction.java
@@ -111,11 +111,6 @@ public class SymlinkTreeAction extends AbstractAction {
}
@Override
- public String describeStrategy(Executor executor) {
- return "local"; // Symlink tree is always generated locally.
- }
-
- @Override
public void execute(
ActionExecutionContext actionExecutionContext)
throws ActionExecutionException, InterruptedException {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/AbstractFileWriteAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/AbstractFileWriteAction.java
index 7f361a4ade..2c5daad8b0 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/AbstractFileWriteAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/AbstractFileWriteAction.java
@@ -123,11 +123,6 @@ public abstract class AbstractFileWriteAction extends AbstractAction {
return true;
}
- @Override
- public final String describeStrategy(Executor executor) {
- return executor.getContext(FileWriteActionContext.class).strategyLocality(this);
- }
-
private FileWriteActionContext getStrategy(Executor executor) {
return executor.getContext(FileWriteActionContext.class);
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteActionContext.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteActionContext.java
index 4014322fa7..e019fb5826 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteActionContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteActionContext.java
@@ -37,8 +37,4 @@ public interface FileWriteActionContext extends ActionContext {
*/
ResourceSet estimateResourceConsumption(AbstractFileWriteAction action);
- /**
- * Returns where the action actually runs.
- */
- String strategyLocality(AbstractFileWriteAction action);
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java
index 251d81a5ca..d648662538 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java
@@ -400,11 +400,6 @@ public class SpawnAction extends AbstractAction {
return executionInfo;
}
- @Override
- public String describeStrategy(Executor executor) {
- return getContext(executor).strategyLocality(getMnemonic(), isRemotable());
- }
-
protected SpawnActionContext getContext(Executor executor) {
return executor.getSpawnActionContext(getMnemonic());
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java
index 255e51d4ec..c6ac8be4bf 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java
@@ -122,9 +122,4 @@ public class SymlinkAction extends AbstractAction {
protected String getRawProgressMessage() {
return progressMessage;
}
-
- @Override
- public String describeStrategy(Executor executor) {
- return "local";
- }
}
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/BazelWorkspaceStatusModule.java b/src/main/java/com/google/devtools/build/lib/bazel/BazelWorkspaceStatusModule.java
index 72e7081c20..c47388b6da 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/BazelWorkspaceStatusModule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/BazelWorkspaceStatusModule.java
@@ -102,11 +102,6 @@ public class BazelWorkspaceStatusModule extends BlazeModule {
.build();
}
- @Override
- public String describeStrategy(Executor executor) {
- return "";
- }
-
private String getAdditionalWorkspaceStatus(ActionExecutionContext actionExecutionContext)
throws ActionExecutionException {
try {
diff --git a/src/main/java/com/google/devtools/build/lib/exec/FileWriteStrategy.java b/src/main/java/com/google/devtools/build/lib/exec/FileWriteStrategy.java
index 9c476bc648..1359363607 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/FileWriteStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/exec/FileWriteStrategy.java
@@ -71,9 +71,4 @@ public final class FileWriteStrategy implements FileWriteActionContext {
public ResourceSet estimateResourceConsumption(AbstractFileWriteAction action) {
return action.estimateResourceConsumptionLocal();
}
-
- @Override
- public String strategyLocality(AbstractFileWriteAction action) {
- return "local";
- }
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java
index c908bcda5d..ead89f63e3 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java
@@ -482,11 +482,6 @@ public class CppCompileAction extends AbstractAction implements IncludeScannable
return cppCompileCommandLine.dotdFile;
}
- @Override
- public String describeStrategy(Executor executor) {
- return executor.getContext(actionContext).strategyLocality();
- }
-
@VisibleForTesting
public CppCompilationContext getContext() {
return context;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionContext.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionContext.java
index f0e423b37d..fe59f8e68b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionContext.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionContext.java
@@ -70,11 +70,6 @@ public interface CppCompileActionContext extends ActionContext {
ResourceSet estimateResourceConsumption(CppCompileAction action);
/**
- * Returns where the action actually runs.
- */
- String strategyLocality();
-
- /**
* Returns whether include scanning needs to be run.
*/
boolean needsIncludeScanning();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java
index c4b240cfb8..95d6379f18 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java
@@ -287,11 +287,6 @@ public final class CppLinkAction extends AbstractAction {
}
}
- @Override
- public String describeStrategy(Executor executor) {
- return fake ? "fake,local" : executor.getContext(CppLinkActionContext.class).strategyLocality();
- }
-
// Don't forget to update FAKE_LINK_GUID if you modify this method.
@ThreadCompatible
private void executeFake()
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionContext.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionContext.java
index 6e97cfc12a..cf64db187f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionContext.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionContext.java
@@ -25,10 +25,6 @@ import com.google.devtools.build.lib.actions.ResourceSet;
*/
@ActionContextMarker(name = "C++ link")
public interface CppLinkActionContext extends ActionContext {
- /**
- * Returns where the action actually runs.
- */
- String strategyLocality();
/**
* Returns the estimated resource consumption of the action.
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtractInclusionAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtractInclusionAction.java
index 36d8d7dc7c..82a3a16f69 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtractInclusionAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtractInclusionAction.java
@@ -55,11 +55,6 @@ final class ExtractInclusionAction extends AbstractAction {
}
@Override
- public String describeStrategy(Executor executor) {
- return executor.getContext(CppCompileActionContext.class).strategyLocality();
- }
-
- @Override
public String getMnemonic() {
return "GrepIncludes";
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/FakeCppCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/FakeCppCompileAction.java
index b97f481964..b92e61496d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/FakeCppCompileAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/FakeCppCompileAction.java
@@ -216,11 +216,6 @@ public class FakeCppCompileAction extends CppCompileAction {
public String getMnemonic() { return "FakeCppCompile"; }
@Override
- public String describeStrategy(Executor executor) {
- return "fake";
- }
-
- @Override
public ResourceSet estimateResourceConsumptionLocal() {
return ResourceSet.createWithRamCpuIo(/*memoryMb=*/1, /*cpuUsage=*/0.1, /*ioUsage=*/0.0);
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoStubAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoStubAction.java
index 169f664780..bee74f7092 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoStubAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoStubAction.java
@@ -38,11 +38,6 @@ public class FdoStubAction extends AbstractAction {
}
@Override
- public String describeStrategy(Executor executor) {
- return "";
- }
-
- @Override
public void execute(ActionExecutionContext actionExecutionContext) {
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/SolibSymlinkAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/SolibSymlinkAction.java
index efe9b313e4..2e1dd42375 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/SolibSymlinkAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/SolibSymlinkAction.java
@@ -109,11 +109,6 @@ public final class SolibSymlinkAction extends AbstractAction {
public String getMnemonic() { return "SolibSymlink"; }
@Override
- public String describeStrategy(Executor executor) {
- return "local";
- }
-
- @Override
protected String getRawProgressMessage() { return null; }
/**
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/SpawnGccStrategy.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/SpawnGccStrategy.java
index 83cd41a6a5..4a97ce0e96 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/SpawnGccStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/SpawnGccStrategy.java
@@ -36,10 +36,6 @@ import java.util.Collection;
name = {"spawn"}
)
public class SpawnGccStrategy implements CppCompileActionContext {
- @Override
- public String strategyLocality() {
- return "spawn";
- }
@Override
public boolean needsIncludeScanning() {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/SpawnLinkStrategy.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/SpawnLinkStrategy.java
index b64c5a7b9c..f9d494be4b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/SpawnLinkStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/SpawnLinkStrategy.java
@@ -50,11 +50,6 @@ public final class SpawnLinkStrategy implements CppLinkActionContext {
}
@Override
- public String strategyLocality() {
- return "spawn";
- }
-
- @Override
public ResourceSet estimateResourceConsumption(CppLinkAction action) {
return action.estimateResourceConsumptionLocal();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java
index f1a890877d..a436124a72 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java
@@ -412,11 +412,6 @@ public class JavaCompileAction extends AbstractAction {
}
@Override
- public String describeStrategy(Executor executor) {
- return getContext(executor).strategyLocality(getMnemonic(), true);
- }
-
- @Override
public ResourceSet estimateResourceConsumption(Executor executor) {
if (getContext(executor).isRemotable(getMnemonic(), true)) {
return ResourceSet.ZERO;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/test/ExclusiveTestStrategy.java b/src/main/java/com/google/devtools/build/lib/rules/test/ExclusiveTestStrategy.java
index b3b5fbd67c..8ee7f3efb7 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/test/ExclusiveTestStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/test/ExclusiveTestStrategy.java
@@ -47,9 +47,4 @@ public class ExclusiveTestStrategy implements TestActionContext {
Path execRoot, TestRunnerAction action, TestResultData cached) throws IOException {
return parent.newCachedTestResult(execRoot, action, cached);
}
-
- @Override
- public String strategyLocality(TestRunnerAction testRunnerAction) {
- return "exclusive";
- }
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/test/StandaloneTestStrategy.java b/src/main/java/com/google/devtools/build/lib/rules/test/StandaloneTestStrategy.java
index 59e752bf3d..1cddbf6791 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/test/StandaloneTestStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/test/StandaloneTestStrategy.java
@@ -266,9 +266,6 @@ public class StandaloneTestStrategy extends TestStrategy {
}
@Override
- public String strategyLocality(TestRunnerAction action) { return "standalone"; }
-
- @Override
public TestResult newCachedTestResult(
Path execRoot, TestRunnerAction action, TestResultData data) {
return new TestResult(action, data, /*cached*/ true);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/test/TestActionContext.java b/src/main/java/com/google/devtools/build/lib/rules/test/TestActionContext.java
index 75cbc5bf79..68bf3cf9dd 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/test/TestActionContext.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/test/TestActionContext.java
@@ -34,11 +34,6 @@ public interface TestActionContext extends ActionContext {
ActionExecutionContext actionExecutionContext) throws ExecException, InterruptedException;
/**
- * String describing where the action will run.
- */
- String strategyLocality(TestRunnerAction action);
-
- /**
* Creates a cached test result.
*/
TestResult newCachedTestResult(Path execRoot, TestRunnerAction action, TestResultData cached)
diff --git a/src/main/java/com/google/devtools/build/lib/rules/test/TestRunnerAction.java b/src/main/java/com/google/devtools/build/lib/rules/test/TestRunnerAction.java
index 57ddcf9c56..9f09c90319 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/test/TestRunnerAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/test/TestRunnerAction.java
@@ -305,11 +305,6 @@ public class TestRunnerAction extends AbstractAction implements NotifyOnActionCa
return "Testing " + getTestName();
}
- @Override
- public String describeStrategy(Executor executor) {
- return executor.getContext(TestActionContext.class).strategyLocality(this);
- }
-
/**
* Deletes <b>all</b> possible test outputs.
*
diff --git a/src/main/java/com/google/devtools/build/lib/rules/test/TestStrategy.java b/src/main/java/com/google/devtools/build/lib/rules/test/TestStrategy.java
index 93585bccf9..3275791cf1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/test/TestStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/test/TestStrategy.java
@@ -147,19 +147,6 @@ public abstract class TestStrategy implements TestActionContext {
public abstract void exec(TestRunnerAction action, ActionExecutionContext actionExecutionContext)
throws ExecException, InterruptedException;
- @Override
- public abstract String strategyLocality(TestRunnerAction action);
-
- /**
- * Callback for determining the strategy locality.
- *
- * @param action the test action
- * @param localRun whether to run it locally
- */
- protected String strategyLocality(TestRunnerAction action, boolean localRun) {
- return strategyLocality(action);
- }
-
/**
* Returns mutable map of default testing shell environment. By itself it is incomplete and is
* modified further by the specific test strategy implementations (mostly due to the fact that
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 b15744955d..9148014a5e 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
@@ -22,6 +22,7 @@ import com.google.devtools.build.lib.Constants;
import com.google.devtools.build.lib.actions.ActionExecutionContext;
import com.google.devtools.build.lib.actions.ActionInput;
import com.google.devtools.build.lib.actions.ActionInputHelper;
+import com.google.devtools.build.lib.actions.ActionStatusMessage;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.EnvironmentalExecException;
import com.google.devtools.build.lib.actions.ExecException;
@@ -95,20 +96,24 @@ public class LinuxSandboxedStrategy implements SpawnActionContext {
@Override
public void exec(Spawn spawn, ActionExecutionContext actionExecutionContext)
throws ExecException {
- Executor executor = actionExecutionContext.getExecutor();
-
// Certain actions can't run remotely or in a sandbox - pass them on to the standalone strategy.
if (!spawn.isRemotable()) {
standaloneStrategy.exec(spawn, actionExecutionContext);
return;
}
+ Executor executor = actionExecutionContext.getExecutor();
+
if (executor.reportsSubcommands()) {
executor.reportSubcommand(
Label.print(spawn.getOwner().getLabel()) + " [" + spawn.getResourceOwner().prettyPrint()
+ "]", spawn.asShellCommand(executor.getExecRoot()));
}
+ executor
+ .getEventBus()
+ .post(ActionStatusMessage.runningStrategy(spawn.getResourceOwner(), "sandbox"));
+
FileOutErr outErr = actionExecutionContext.getFileOutErr();
// The execId is a unique ID just for this invocation of "exec".
@@ -492,12 +497,12 @@ public class LinuxSandboxedStrategy implements SpawnActionContext {
}
@Override
- public String strategyLocality(String mnemonic, boolean remotable) {
- return "linux-sandboxing";
+ public boolean isRemotable(String mnemonic, boolean remotable) {
+ return false;
}
@Override
- public boolean isRemotable(String mnemonic, boolean remotable) {
- return false;
+ public String toString() {
+ return "sandboxed";
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategy.java b/src/main/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategy.java
index b7e345caa9..b2f98a36d5 100644
--- a/src/main/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategy.java
@@ -15,6 +15,7 @@ package com.google.devtools.build.lib.standalone;
import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.actions.ActionExecutionContext;
+import com.google.devtools.build.lib.actions.ActionStatusMessage;
import com.google.devtools.build.lib.actions.ExecException;
import com.google.devtools.build.lib.actions.ExecutionStrategy;
import com.google.devtools.build.lib.actions.Executor;
@@ -62,12 +63,17 @@ public class StandaloneSpawnStrategy implements SpawnActionContext {
ActionExecutionContext actionExecutionContext)
throws ExecException {
Executor executor = actionExecutionContext.getExecutor();
+
if (executor.reportsSubcommands()) {
executor.reportSubcommand(
Label.print(spawn.getOwner().getLabel()) + " [" + spawn.getResourceOwner().prettyPrint()
+ "]", spawn.asShellCommand(executor.getExecRoot()));
}
+ executor
+ .getEventBus()
+ .post(ActionStatusMessage.runningStrategy(spawn.getResourceOwner(), "standalone"));
+
int timeout = -1;
String timeoutStr = spawn.getExecutionInfo().get("timeout");
if (timeoutStr != null) {
@@ -125,7 +131,7 @@ public class StandaloneSpawnStrategy implements SpawnActionContext {
}
@Override
- public String strategyLocality(String mnemonic, boolean remotable) {
+ public String toString() {
return "standalone";
}
diff --git a/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java b/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java
index 22645109d4..c079a8d941 100644
--- a/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java
@@ -27,6 +27,7 @@ import com.google.devtools.build.lib.actions.ActionExecutionContext;
import com.google.devtools.build.lib.actions.ActionInput;
import com.google.devtools.build.lib.actions.ActionInputFileCache;
import com.google.devtools.build.lib.actions.ActionInputHelper;
+import com.google.devtools.build.lib.actions.ActionStatusMessage;
import com.google.devtools.build.lib.actions.ChangedFilesMessage;
import com.google.devtools.build.lib.actions.ExecException;
import com.google.devtools.build.lib.actions.ExecutionStrategy;
@@ -138,6 +139,10 @@ final class WorkerSpawnStrategy implements SpawnActionContext {
return;
}
+ executor
+ .getEventBus()
+ .post(ActionStatusMessage.runningStrategy(spawn.getResourceOwner(), "worker"));
+
FileOutErr outErr = actionExecutionContext.getFileOutErr();
ImmutableList<String> args = ImmutableList.<String>builder()
@@ -272,7 +277,7 @@ final class WorkerSpawnStrategy implements SpawnActionContext {
}
@Override
- public String strategyLocality(String mnemonic, boolean remotable) {
+ public String toString() {
return "worker";
}