aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@yahoo-inc.com>2018-02-19 14:12:23 +0100
committerGitHub <noreply@github.com>2018-02-19 14:12:23 +0100
commitc2f334c0ad1e15035465f87b90c94f5dbdf295f2 (patch)
tree84f05f31c982de8a92411bfbdfe5a0ab4209e257
parent4960a96e98607b611b494663721ea1ae76df8bab (diff)
parent12f16209d3a84cb9c5313ab66bf49d2da417e5e4 (diff)
Merge pull request #5068 from vespa-engine/hmusum/inject-config-server-client-in-DockerAdminComponent
Inject config server clients in DockerAdminComponent
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/component/DockerAdminComponent.java33
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminMain.java8
2 files changed, 23 insertions, 18 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/component/DockerAdminComponent.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/component/DockerAdminComponent.java
index cd2e0cc5064..89f52a39fbb 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/component/DockerAdminComponent.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/component/DockerAdminComponent.java
@@ -8,7 +8,6 @@ import com.yahoo.vespa.hosted.dockerapi.Docker;
import com.yahoo.vespa.hosted.dockerapi.metrics.MetricReceiverWrapper;
import com.yahoo.vespa.hosted.node.admin.config.ConfigServerConfig;
import com.yahoo.vespa.hosted.node.admin.configserver.ConfigServerClients;
-import com.yahoo.vespa.hosted.node.admin.configserver.ConfigServerClientsImpl;
import com.yahoo.vespa.hosted.node.admin.docker.DockerOperations;
import com.yahoo.vespa.hosted.node.admin.docker.DockerOperationsImpl;
import com.yahoo.vespa.hosted.node.admin.maintenance.StorageMaintainer;
@@ -36,35 +35,39 @@ public class DockerAdminComponent implements AdminComponent {
private final Docker docker;
private final MetricReceiverWrapper metricReceiver;
private final Optional<ClassLocking> classLocking;
+ private final ConfigServerClients configServerClients;
private Optional<Environment> environment = Optional.empty();
- private Optional<ConfigServerClients> configServerClients = Optional.empty();
private Optional<NodeAdminStateUpdaterImpl> nodeAdminStateUpdater = Optional.empty();
public DockerAdminComponent(ConfigServerConfig configServerConfig,
Docker docker,
MetricReceiverWrapper metricReceiver,
- ClassLocking classLocking) {
- this(configServerConfig, docker, metricReceiver, Optional.empty(), Optional.of(classLocking));
+ ClassLocking classLocking,
+ ConfigServerClients configServerClients) {
+ this(configServerConfig, docker, metricReceiver, Optional.empty(), Optional.of(classLocking), configServerClients);
}
public DockerAdminComponent(ConfigServerConfig configServerConfig,
Docker docker,
MetricReceiverWrapper metricReceiver,
- Environment environment) {
- this(configServerConfig, docker, metricReceiver, Optional.of(environment), Optional.empty());
+ Environment environment,
+ ConfigServerClients configServerClients) {
+ this(configServerConfig, docker, metricReceiver, Optional.of(environment), Optional.empty(), configServerClients);
}
private DockerAdminComponent(ConfigServerConfig configServerConfig,
Docker docker,
MetricReceiverWrapper metricReceiver,
Optional<Environment> environment,
- Optional<ClassLocking> classLocking) {
+ Optional<ClassLocking> classLocking,
+ ConfigServerClients configServerClients) {
this.configServerConfig = configServerConfig;
this.docker = docker;
this.metricReceiver = metricReceiver;
this.environment = environment;
this.classLocking = classLocking;
+ this.configServerClients = configServerClients;
}
@Override
@@ -82,10 +85,6 @@ public class DockerAdminComponent implements AdminComponent {
environment = Optional.of(new Environment(configServerConfig));
}
- if (!configServerClients.isPresent()) {
- configServerClients = Optional.of(new ConfigServerClientsImpl(environment.get()));
- }
-
Clock clock = Clock.systemUTC();
String dockerHostHostName = HostName.getLocalhost();
ProcessExecuter processExecuter = new ProcessExecuter();
@@ -105,13 +104,13 @@ public class DockerAdminComponent implements AdminComponent {
AclMaintainer aclMaintainer = new AclMaintainer(
dockerOperations,
- configServerClients.get().nodeRepository(),
+ configServerClients.nodeRepository(),
dockerHostHostName);
Function<String, NodeAgent> nodeAgentFactory = (hostName) -> new NodeAgentImpl(
hostName,
- configServerClients.get().nodeRepository(),
- configServerClients.get().orchestrator(),
+ configServerClients.nodeRepository(),
+ configServerClients.orchestrator(),
dockerOperations,
storageMaintainer,
aclMaintainer,
@@ -128,8 +127,8 @@ public class DockerAdminComponent implements AdminComponent {
clock);
return new NodeAdminStateUpdaterImpl(
- configServerClients.get().nodeRepository(),
- configServerClients.get().orchestrator(),
+ configServerClients.nodeRepository(),
+ configServerClients.orchestrator(),
storageMaintainer,
nodeAdmin,
dockerHostHostName,
@@ -145,7 +144,7 @@ public class DockerAdminComponent implements AdminComponent {
}
nodeAdminStateUpdater.ifPresent(NodeAdminStateUpdaterImpl::stop);
- configServerClients.ifPresent(ConfigServerClients::stop);
+ configServerClients.stop();
nodeAdminStateUpdater = Optional.empty();
}
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 95eb9e150a2..d19f64a2bc3 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
@@ -8,8 +8,10 @@ import com.yahoo.log.LogLevel;
import com.yahoo.vespa.hosted.dockerapi.Docker;
import com.yahoo.vespa.hosted.dockerapi.metrics.MetricReceiverWrapper;
import com.yahoo.vespa.hosted.node.admin.component.AdminComponent;
+import com.yahoo.vespa.hosted.node.admin.component.Environment;
import com.yahoo.vespa.hosted.node.admin.config.ConfigServerConfig;
import com.yahoo.vespa.hosted.node.admin.component.DockerAdminComponent;
+import com.yahoo.vespa.hosted.node.admin.configserver.ConfigServerClientsImpl;
import com.yahoo.vespa.hosted.node.admin.provider.NodeAdminStateUpdater;
import java.io.File;
@@ -60,7 +62,11 @@ public class NodeAdminMain implements AutoCloseable {
private AdminComponent selectAdminComponent(NodeAdminConfig config) {
if (config.mainComponent == null) {
- return new DockerAdminComponent(configServerConfig, docker, metricReceiver, classLocking);
+ return new DockerAdminComponent(configServerConfig,
+ docker,
+ metricReceiver,
+ classLocking,
+ new ConfigServerClientsImpl(new Environment(configServerConfig)));
}
logger.log(LogLevel.INFO, () -> {