summaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@oath.com>2018-01-02 14:15:36 +0100
committerHåkon Hallingstad <hakon@oath.com>2018-01-02 14:15:36 +0100
commitc656875e42e7e072762bea6c11a4a787c57187c0 (patch)
treed5a220feac4109fce12d148382752db96a6cb46f /node-admin
parent00006f4e576e180d3c67a03cc3b1c4f0f8c4f34e (diff)
Call start once and avoid stop without start
Diffstat (limited to 'node-admin')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminMain.java17
1 files changed, 10 insertions, 7 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminMain.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminMain.java
index 02d63f5e5ed..e3ce441dc73 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminMain.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminMain.java
@@ -23,6 +23,7 @@ import com.yahoo.vespa.hosted.node.admin.util.Environment;
import java.io.File;
import java.time.Clock;
import java.time.Duration;
+import java.util.Optional;
import java.util.function.Function;
/**
@@ -42,22 +43,21 @@ public class NodeAdminMain implements AutoCloseable {
private final MetricReceiverWrapper metricReceiver;
private final ClassLocking classLocking;
- private NodeAdminStateUpdater nodeAdminStateUpdater;
+ private Optional<NodeAdminStateUpdater> nodeAdminStateUpdater = Optional.empty();
public NodeAdminMain(Docker docker, MetricReceiverWrapper metricReceiver, ClassLocking classLocking) {
this.docker = docker;
this.metricReceiver = metricReceiver;
this.classLocking = classLocking;
- start();
}
@Override
public void close() {
- nodeAdminStateUpdater.stop();
+ nodeAdminStateUpdater.ifPresent(NodeAdminStateUpdater::stop);
}
public NodeAdminStateUpdater getNodeAdminStateUpdater() {
- return nodeAdminStateUpdater;
+ return nodeAdminStateUpdater.get();
}
public void start() {
@@ -78,6 +78,11 @@ public class NodeAdminMain implements AutoCloseable {
}
private void setupTenantHostNodeAdmin() {
+ nodeAdminStateUpdater = Optional.of(createNodeAdminStateUpdater());
+ nodeAdminStateUpdater.get().start();
+ }
+
+ private NodeAdminStateUpdater createNodeAdminStateUpdater() {
Clock clock = Clock.systemUTC();
String dockerHostHostName = HostName.getLocalhost();
ProcessExecuter processExecuter = new ProcessExecuter();
@@ -99,10 +104,8 @@ public class NodeAdminMain implements AutoCloseable {
NodeAdmin nodeAdmin = new NodeAdminImpl(dockerOperations, nodeAgentFactory, storageMaintainer, aclMaintainer,
metricReceiver, clock);
- nodeAdminStateUpdater = new NodeAdminStateUpdater(nodeRepository, orchestrator, storageMaintainer, nodeAdmin,
+ return new NodeAdminStateUpdater(nodeRepository, orchestrator, storageMaintainer, nodeAdmin,
dockerHostHostName, clock, NODE_ADMIN_CONVERGE_STATE_INTERVAL, classLocking);
-
- nodeAdminStateUpdater.start();
}
private void setupConfigServerHostNodeAdmin() {