aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfreva <valerijf@yahoo-inc.com>2017-01-31 16:07:27 +0100
committerfreva <valerijf@yahoo-inc.com>2017-01-31 16:07:27 +0100
commitc12a478a58d981f7a05c695ef50219870e93b6f2 (patch)
tree1f462b5f81893f35ecc53f58bb5c397af9f7e6d7
parentfe5a0bbcb9376c5bca80b83fe98983d5f49cffa4 (diff)
Node-admin local zone fixes
-rw-r--r--node-admin/.gitignore5
-rw-r--r--node-admin/include/Dockerfile.template (renamed from node-admin/Dockerfile.template)12
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/provider/ComponentsProviderImpl.java20
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/LocalZoneUtils.java4
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/RunVespaLocal.java2
-rw-r--r--pom.xml1
6 files changed, 21 insertions, 23 deletions
diff --git a/node-admin/.gitignore b/node-admin/.gitignore
index 750f12730e3..67b21d2d89c 100644
--- a/node-admin/.gitignore
+++ b/node-admin/.gitignore
@@ -1,4 +1 @@
-/dependencies
-/Dockerfile
-include/services.xml
-/**/*.pyc
+include/Dockerfile
diff --git a/node-admin/Dockerfile.template b/node-admin/include/Dockerfile.template
index e69308deae3..53f8bfac18f 100644
--- a/node-admin/Dockerfile.template
+++ b/node-admin/include/Dockerfile.template
@@ -15,21 +15,19 @@ FROM $NODE_ADMIN_FROM_IMAGE
# Be aware that this Dockerfile is not being used in any pipelines and has no relation to production environments etc.
# It is here for developers' convenience - it allows building and experimenting with node-admin locally.
-CMD $VESPA_HOME/bin/start-services.sh
-
# Things for convenience.
RUN yum install -y tcpdump
-ADD include/root-bashrc /root/.bashrc
+ADD root-bashrc /root/.bashrc
# Make config-server aware of node flavor 'docker'.
-ADD include/node-flavors.xml $VESPA_HOME/conf/configserver-app/node-flavors.xml
+ADD node-flavors.xml $VESPA_HOME/conf/configserver-app/node-flavors.xml
# Make config-server also listen to 4080
-ADD include/http-server.xml $VESPA_HOME/conf/configserver-app/hosted-vespa/http-server.xml
+ADD http-server.xml $VESPA_HOME/conf/configserver-app/hosted-vespa/http-server.xml
# Entrypoint for running config server in a container.
-ADD include/start-config-server.sh $VESPA_HOME/bin/start-config-server.sh
+ADD start-config-server.sh $VESPA_HOME/bin/start-config-server.sh
# Included in base image, but here overridden with local modifications.
# TODO: Update the source instead.
-ADD include/start-services.sh $VESPA_HOME/bin/start-services.sh
+ADD start-services.sh $VESPA_HOME/bin/start-services.sh
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/provider/ComponentsProviderImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/provider/ComponentsProviderImpl.java
index 1f64c02e6a4..45367b74c29 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/provider/ComponentsProviderImpl.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/provider/ComponentsProviderImpl.java
@@ -50,21 +50,24 @@ public class ComponentsProviderImpl implements ComponentsProvider {
private static final int NODE_ADMIN_STATE_INTERVAL_MILLIS = 5 * 60000;
public ComponentsProviderImpl(Docker docker, MetricReceiverWrapper metricReceiver, Environment environment,
- Optional<StorageMaintainer> storageMaintainer) {
+ boolean isRunningLocally) {
String baseHostName = HostName.getLocalhost();
Set<String> configServerHosts = environment.getConfigServerHosts();
Orchestrator orchestrator = new OrchestratorImpl(configServerHosts);
NodeRepository nodeRepository = new NodeRepositoryImpl(configServerHosts, WEB_SERVICE_PORT, baseHostName);
+ DockerOperations dockerOperations = new DockerOperationsImpl(docker, environment, metricReceiver);
- final DockerOperations dockerOperations = new DockerOperationsImpl(docker, environment, metricReceiver);
- final Function<String, NodeAgent> nodeAgentFactory =
+ Optional<StorageMaintainer> storageMaintainer = isRunningLocally ?
+ Optional.empty() : Optional.of(new StorageMaintainer(docker, metricReceiver, environment));
+ Optional<AclMaintainer> aclMaintainer = isRunningLocally ?
+ Optional.empty() : Optional.of(new AclMaintainer(dockerOperations, nodeRepository));
+
+ Function<String, NodeAgent> nodeAgentFactory =
(hostName) -> new NodeAgentImpl(hostName, nodeRepository, orchestrator, dockerOperations,
storageMaintainer, metricReceiver, environment);
- final AclMaintainer aclMaintainer = new AclMaintainer(dockerOperations, nodeRepository);
-
- final NodeAdmin nodeAdmin = new NodeAdminImpl(dockerOperations, nodeAgentFactory, storageMaintainer,
- NODE_AGENT_SCAN_INTERVAL_MILLIS, metricReceiver, Optional.of(aclMaintainer));
+ NodeAdmin nodeAdmin = new NodeAdminImpl(dockerOperations, nodeAgentFactory, storageMaintainer,
+ NODE_AGENT_SCAN_INTERVAL_MILLIS, metricReceiver, aclMaintainer);
nodeAdminStateUpdater = new NodeAdminStateUpdater(nodeRepository, nodeAdmin, INITIAL_SCHEDULER_DELAY_MILLIS,
NODE_ADMIN_STATE_INTERVAL_MILLIS, orchestrator, baseHostName);
@@ -77,8 +80,7 @@ public class ComponentsProviderImpl implements ComponentsProvider {
docker,
metricReceiver,
new Environment(),
- config.isRunningLocally() ? Optional.empty() :
- Optional.of(new StorageMaintainer(docker, metricReceiver, new Environment())));
+ config.isRunningLocally());
if (! config.isRunningLocally()) {
setCorePattern(docker);
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/LocalZoneUtils.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/LocalZoneUtils.java
index a7591548fa0..f30a8c8c16a 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/LocalZoneUtils.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/LocalZoneUtils.java
@@ -122,9 +122,9 @@ public class LocalZoneUtils {
}
public static void buildVespaLocalDockerImage(Docker docker, DockerImage vespaBaseImage) throws IOException {
- Path dockerfilePath = PROJECT_ROOT.resolve("node-admin/Dockerfile");
+ Path dockerfilePath = PROJECT_ROOT.resolve("node-admin/include/Dockerfile");
- Path dockerfileTemplatePath = Paths.get("node-admin/Dockerfile.template");
+ Path dockerfileTemplatePath = Paths.get("node-admin/include/Dockerfile.template");
String dockerfileTemplate = new String(Files.readAllBytes(dockerfileTemplatePath))
.replaceAll("\\$NODE_ADMIN_FROM_IMAGE", vespaBaseImage.asString())
.replaceAll("\\$VESPA_HOME", Defaults.getDefaults().vespaHome());
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/RunVespaLocal.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/RunVespaLocal.java
index b6c9675f076..c371b7fe66c 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/RunVespaLocal.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/RunVespaLocal.java
@@ -96,7 +96,7 @@ public class RunVespaLocal {
docker,
new MetricReceiverWrapper(MetricReceiver.nullImplementation),
environmentBuilder.build(),
- Optional.empty()).getNodeAdminStateUpdater();
+ true);
}
/**
diff --git a/pom.xml b/pom.xml
index 9b96e8bcf1a..64209f00b45 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1149,6 +1149,7 @@
<module>metrics</module>
<module>node-repository</module>
<module>node-admin</module>
+ <module>node-admin-maintenance</module>
<module>orchestrator-restapi</module>
<module>orchestrator</module>
<module>persistence</module>