summaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorfreva <valerijf@yahoo-inc.com>2017-01-30 11:51:09 +0100
committerfreva <valerijf@yahoo-inc.com>2017-01-30 11:51:09 +0100
commit10dd823a33a9a0c57e613ca6d591d90699e37410 (patch)
treef67fe2468988f53dc0bc822f0f802d6070b23480 /node-admin
parent28217dfa19963b557cd9d5e445338508f3c45048 (diff)
parent5b367fb5f182467425ed5a16435fc968b6cf184f (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')
-rw-r--r--node-admin/.gitignore5
-rw-r--r--node-admin/Dockerfile.template (renamed from node-admin/vespa-local/Dockerfile.template)12
-rw-r--r--node-admin/include/http-server.xml (renamed from node-admin/vespa-local/http-server.xml)0
-rw-r--r--node-admin/include/node-flavors.xml (renamed from node-admin/vespa-local/node-flavors.xml)0
-rwxr-xr-xnode-admin/include/nodectl-instance.sh (renamed from node-admin/vespa-local/nodectl-instance.sh)0
-rw-r--r--node-admin/include/root-bashrc (renamed from node-admin/vespa-local/root-bashrc)0
-rwxr-xr-xnode-admin/include/start-config-server.sh (renamed from node-admin/vespa-local/start-config-server.sh)0
-rwxr-xr-xnode-admin/include/start-services.sh (renamed from node-admin/vespa-local/start-services.sh)0
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java5
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImplTest.java8
-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/integrationTests/DockerMock.java7
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);