summaryrefslogtreecommitdiffstats
path: root/node-maintainer
diff options
context:
space:
mode:
authorvalerijf <valerijf@yahoo-inc.com>2017-03-14 14:17:04 +0100
committervalerijf <valerijf@yahoo-inc.com>2017-03-14 14:19:06 +0100
commit3630e7d12748ebe5d64b0901aad829d56c95bddc (patch)
tree7507cc0332e6eaa61589fe0a7043eb6e4e100a6e /node-maintainer
parentb979075997ea3c2248b607261d3ce8243e9f029c (diff)
Execute all maintenance jobs anyway
Diffstat (limited to 'node-maintainer')
-rw-r--r--node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/maintainer/Maintainer.java20
1 files changed, 17 insertions, 3 deletions
diff --git a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/maintainer/Maintainer.java b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/maintainer/Maintainer.java
index 88d9c5312ad..8a1751fe9a7 100644
--- a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/maintainer/Maintainer.java
+++ b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/maintainer/Maintainer.java
@@ -16,6 +16,7 @@ import java.time.Duration;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
+import java.util.concurrent.atomic.AtomicInteger;
/**
* @author freva
@@ -34,11 +35,24 @@ public class Maintainer {
throw new IllegalArgumentException("Expected a list maintainer jobs to execute");
}
+ // Variable must be effectively final to be used in lambda expression
+ AtomicInteger numberOfJobsFailed = new AtomicInteger(0);
object.traverse((ArrayTraverser) (int i, Inspector item) -> {
- String type = getFieldOrFail(item, "type").asString();
- Inspector arguments = getFieldOrFail(item, "arguments");
- parseMaintenanceJob(type, arguments);
+ try {
+ String type = getFieldOrFail(item, "type").asString();
+ Inspector arguments = getFieldOrFail(item, "arguments");
+ parseMaintenanceJob(type, arguments);
+ } catch (Exception e) {
+ System.err.println("Failed executing job: " + item.toString());
+ e.printStackTrace();
+ numberOfJobsFailed.incrementAndGet();
+ }
});
+
+ if (numberOfJobsFailed.get() > 0) {
+ System.err.println(numberOfJobsFailed.get() + " of jobs has failed");
+ System.exit(1);
+ }
}
private static void parseMaintenanceJob(String type, Inspector arguments) {