diff options
author | freva <valerijf@yahoo-inc.com> | 2017-01-30 11:51:09 +0100 |
---|---|---|
committer | freva <valerijf@yahoo-inc.com> | 2017-01-30 11:51:09 +0100 |
commit | 10dd823a33a9a0c57e613ca6d591d90699e37410 (patch) | |
tree | f67fe2468988f53dc0bc822f0f802d6070b23480 /node-admin | |
parent | 28217dfa19963b557cd9d5e445338508f3c45048 (diff) | |
parent | 5b367fb5f182467425ed5a16435fc968b6cf184f (diff) |
Merge branch 'master' into freva/docker-always-returns-pid
# Conflicts:
# node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java
# node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImplTest.java
Diffstat (limited to 'node-admin')
12 files changed, 27 insertions, 14 deletions
diff --git a/node-admin/.gitignore b/node-admin/.gitignore index 8f00331723c..750f12730e3 100644 --- a/node-admin/.gitignore +++ b/node-admin/.gitignore @@ -1 +1,4 @@ -vespa-local/Dockerfile +/dependencies +/Dockerfile +include/services.xml +/**/*.pyc diff --git a/node-admin/vespa-local/Dockerfile.template b/node-admin/Dockerfile.template index 53f8bfac18f..e69308deae3 100644 --- a/node-admin/vespa-local/Dockerfile.template +++ b/node-admin/Dockerfile.template @@ -15,19 +15,21 @@ 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 root-bashrc /root/.bashrc +ADD include/root-bashrc /root/.bashrc # Make config-server aware of node flavor 'docker'. -ADD node-flavors.xml $VESPA_HOME/conf/configserver-app/node-flavors.xml +ADD include/node-flavors.xml $VESPA_HOME/conf/configserver-app/node-flavors.xml # Make config-server also listen to 4080 -ADD http-server.xml $VESPA_HOME/conf/configserver-app/hosted-vespa/http-server.xml +ADD include/http-server.xml $VESPA_HOME/conf/configserver-app/hosted-vespa/http-server.xml # Entrypoint for running config server in a container. -ADD start-config-server.sh $VESPA_HOME/bin/start-config-server.sh +ADD include/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 start-services.sh $VESPA_HOME/bin/start-services.sh +ADD include/start-services.sh $VESPA_HOME/bin/start-services.sh diff --git a/node-admin/vespa-local/http-server.xml b/node-admin/include/http-server.xml index f77d392de97..f77d392de97 100644 --- a/node-admin/vespa-local/http-server.xml +++ b/node-admin/include/http-server.xml diff --git a/node-admin/vespa-local/node-flavors.xml b/node-admin/include/node-flavors.xml index 7d22975994a..7d22975994a 100644 --- a/node-admin/vespa-local/node-flavors.xml +++ b/node-admin/include/node-flavors.xml diff --git a/node-admin/vespa-local/nodectl-instance.sh b/node-admin/include/nodectl-instance.sh index b40ce44e33a..b40ce44e33a 100755 --- a/node-admin/vespa-local/nodectl-instance.sh +++ b/node-admin/include/nodectl-instance.sh diff --git a/node-admin/vespa-local/root-bashrc b/node-admin/include/root-bashrc index fda1752c85f..fda1752c85f 100644 --- a/node-admin/vespa-local/root-bashrc +++ b/node-admin/include/root-bashrc diff --git a/node-admin/vespa-local/start-config-server.sh b/node-admin/include/start-config-server.sh index a592ec3cbd3..a592ec3cbd3 100755 --- a/node-admin/vespa-local/start-config-server.sh +++ b/node-admin/include/start-config-server.sh diff --git a/node-admin/vespa-local/start-services.sh b/node-admin/include/start-services.sh index 0fe5c1c0724..0fe5c1c0724 100755 --- a/node-admin/vespa-local/start-services.sh +++ b/node-admin/include/start-services.sh diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java index 8edfb6c13f6..971fe235f70 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java @@ -281,10 +281,11 @@ public class DockerOperationsImpl implements DockerOperations { @Override public void executeCommandInNetworkNamespace(ContainerName containerName, String[] command) { final PrefixLogger logger = PrefixLogger.getNodeAgentLogger(DockerOperationsImpl.class, containerName); - final Integer containerPid = getContainer(containerName.asString()) + final Integer containerPid = docker.getContainer(containerName) .filter(container -> container.state.isRunning()) .map(container -> container.pid) - .orElseThrow(() -> new RuntimeException("PID not found for container: " + containerName.asString())); + .orElseThrow(() -> new RuntimeException("PID not found for container with name: " + + containerName.asString())); final List<String> wrappedCommand = new LinkedList<>(); wrappedCommand.add("sudo"); diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImplTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImplTest.java index 5eaeb927c53..8d867a16c05 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImplTest.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImplTest.java @@ -123,10 +123,10 @@ public class DockerOperationsImplTest { "-nvL"), capturedArgs); } - private Container makeContainer(String hostname, Container.State state, int pid) { - final Container container = new Container(hostname, new DockerImage("mock"), - new ContainerName(hostname), state, pid); - when(dockerOperations.getContainer(eq(hostname))).thenReturn(Optional.of(container)); + private Container makeContainer(String name, Container.State state, int pid) { + final Container container = new Container(name + ".fqdn", new DockerImage("mock"), + new ContainerName(name), state, pid); + when(docker.getContainer(eq(container.name))).thenReturn(Optional.of(container)); return container; } } 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 1153b38d361..65ef3c4f3bf 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 @@ -123,9 +123,9 @@ public class LocalZoneUtils { } public static void buildVespaLocalDockerImage(Docker docker, DockerImage vespaBaseImage) throws IOException { - Path dockerfilePath = PROJECT_ROOT.resolve("node-admin/vespa-local/Dockerfile"); + Path dockerfilePath = PROJECT_ROOT.resolve("node-admin/Dockerfile"); - Path dockerfileTemplatePath = Paths.get("node-admin/vespa-local/Dockerfile.template"); + Path dockerfileTemplatePath = Paths.get("node-admin/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/integrationTests/DockerMock.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerMock.java index ac0e24d8c71..75c25b3b93e 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerMock.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerMock.java @@ -104,6 +104,13 @@ public class DockerMock implements Docker { } @Override + public Optional<Container> getContainer(ContainerName containerName) { + synchronized (monitor) { + return containers.stream().filter(container -> container.name.equals(containerName)).findFirst(); + } + } + + @Override public CompletableFuture<DockerImage> pullImageAsync(DockerImage image) { synchronized (monitor) { callOrderVerifier.add("pullImageAsync with " + image); |