diff options
author | valerijf <valerijf@yahoo-inc.com> | 2017-03-14 14:17:04 +0100 |
---|---|---|
committer | valerijf <valerijf@yahoo-inc.com> | 2017-03-14 14:19:06 +0100 |
commit | 3630e7d12748ebe5d64b0901aad829d56c95bddc (patch) | |
tree | 7507cc0332e6eaa61589fe0a7043eb6e4e100a6e /node-maintainer | |
parent | b979075997ea3c2248b607261d3ce8243e9f029c (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.java | 20 |
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) { |