summaryrefslogtreecommitdiffstats
path: root/controller-api
diff options
context:
space:
mode:
authorJon Marius Venstad <jvenstad@yahoo-inc.com>2018-04-25 10:02:09 +0200
committerJon Marius Venstad <jvenstad@yahoo-inc.com>2018-04-25 10:02:09 +0200
commit47372c2f703d498f273a5dec38b246f232e5bf40 (patch)
treee5cc93f3c9c096872868ffae1b4276b176f0f0c2 /controller-api
parentd82730695ca5a0e74e8bc0a8a985bd1da5af3ae5 (diff)
Differentiate between idle, running, queued, disabled build jobs
Diffstat (limited to 'controller-api')
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/BuildService.java21
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockBuildService.java7
2 files changed, 23 insertions, 5 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/BuildService.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/BuildService.java
index e9fa196d44e..bb2de87796b 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/BuildService.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/BuildService.java
@@ -16,10 +16,25 @@ public interface BuildService {
void trigger(BuildJob buildJob);
/**
- * Returns whether the given job is currently running.
+ * Returns the state of the given job in the build service.
*/
- // TODO jvenstad: Change to enum State { idle, running, queued, disabled }
- boolean isRunning(BuildJob buildJob);
+ JobState stateOf(BuildJob buildJob);
+
+ enum JobState {
+
+ /** Job is not running, and may be triggered. */
+ idle,
+
+ /** Job is already running, and will be queued if triggered now. */
+ running,
+
+ /** Job is running and queued and will automatically be started again after it finishes its current run. */
+ queued,
+
+ /** Job is disabled, i.e., it can not be triggered. */
+ disabled
+
+ }
class BuildJob {
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockBuildService.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockBuildService.java
index 9219619dc9e..a8320f56fff 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockBuildService.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockBuildService.java
@@ -9,6 +9,9 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import static com.yahoo.vespa.hosted.controller.api.integration.BuildService.JobState.idle;
+import static com.yahoo.vespa.hosted.controller.api.integration.BuildService.JobState.running;
+
/**
* @author jvenstad
*/
@@ -22,8 +25,8 @@ public class MockBuildService extends AbstractComponent implements BuildService
}
@Override
- public boolean isRunning(BuildJob buildJob) {
- return jobs.contains(buildJob);
+ public JobState stateOf(BuildJob buildJob) {
+ return jobs.contains(buildJob) ? running : idle;
}
/** List all running jobs. */