diff options
author | freva <valerijf@yahoo-inc.com> | 2017-01-31 16:07:27 +0100 |
---|---|---|
committer | freva <valerijf@yahoo-inc.com> | 2017-01-31 16:07:27 +0100 |
commit | c12a478a58d981f7a05c695ef50219870e93b6f2 (patch) | |
tree | 1f462b5f81893f35ecc53f58bb5c397af9f7e6d7 | |
parent | fe5a0bbcb9376c5bca80b83fe98983d5f49cffa4 (diff) |
Node-admin local zone fixes
-rw-r--r-- | node-admin/.gitignore | 5 | ||||
-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.java | 20 | ||||
-rw-r--r-- | node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/LocalZoneUtils.java | 4 | ||||
-rw-r--r-- | node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/RunVespaLocal.java | 2 | ||||
-rw-r--r-- | pom.xml | 1 |
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); } /** @@ -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> |