summaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@verizonmedia.com>2019-10-16 16:11:22 +0200
committerHåkon Hallingstad <hakon@verizonmedia.com>2019-10-16 16:11:22 +0200
commitd03ff852bdc34405a0e2e46fa0c8b43087f63116 (patch)
tree4c82dfe2321e2f8d1a3e94ce1bd628e5e2125136 /node-admin
parent4711c857498fc37e9b9c7f56e54ca323bd29097f (diff)
Support FileSystem in NodeAgentContextImpl
Diffstat (limited to 'node-admin')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContextImpl.java17
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerTester.java2
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainerTest.java2
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContextImplTest.java2
4 files changed, 15 insertions, 8 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContextImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContextImpl.java
index b2769ee40c4..fa5f6217718 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContextImpl.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContextImpl.java
@@ -14,6 +14,7 @@ import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeState;
import com.yahoo.vespa.hosted.node.admin.docker.DockerNetworking;
import java.nio.file.FileSystem;
+import java.nio.file.FileSystems;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Objects;
@@ -166,6 +167,7 @@ public class NodeAgentContextImpl implements NodeAgentContext {
private Path pathToVespaHome;
private String vespaUser;
private String vespaUserOnHost;
+ private FileSystem fileSystem = FileSystems.getDefault();
public Builder(NodeSpec node) {
this.nodeSpecBuilder = new NodeSpec.Builder(node);
@@ -209,8 +211,8 @@ public class NodeAgentContextImpl implements NodeAgentContext {
return this;
}
- public Builder pathToContainerStorage(Path pathToContainerStorage) {
- this.pathToContainerStorage = pathToContainerStorage;
+ public Builder pathToContainerStorageFromFileSystem(FileSystem fileSystem) {
+ this.pathToContainerStorage = fileSystem.getPath("/home/docker");
return this;
}
@@ -229,8 +231,13 @@ public class NodeAgentContextImpl implements NodeAgentContext {
return this;
}
+ /**
+ * Sets the default file system to use for paths. May be overridden for each path,
+ * e.g. {@link #pathToVespaHome(Path)} pathToVespaHome()}.
+ */
public Builder fileSystem(FileSystem fileSystem) {
- return pathToContainerStorage(fileSystem.getPath("/home/docker"));
+ this.fileSystem = fileSystem;
+ return this;
}
public NodeAgentContextImpl build() {
@@ -260,8 +267,8 @@ public class NodeAgentContextImpl implements NodeAgentContext {
return getId().region().value();
}
}),
- Optional.ofNullable(pathToContainerStorage).orElseGet(() -> Paths.get("/home/docker")),
- Optional.ofNullable(pathToVespaHome).orElseGet(() -> Paths.get("/opt/vespa")),
+ Optional.ofNullable(pathToContainerStorage).orElseGet(() -> fileSystem.getPath("/home/docker")),
+ Optional.ofNullable(pathToVespaHome).orElseGet(() -> fileSystem.getPath("/opt/vespa")),
Optional.ofNullable(vespaUser).orElse("vespa"),
Optional.ofNullable(vespaUserOnHost).orElse("container_vespa"));
}
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerTester.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerTester.java
index 22b3949755f..70b406b3056 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerTester.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerTester.java
@@ -97,7 +97,7 @@ public class DockerTester implements AutoCloseable {
Optional.empty(), Optional.empty(), Optional.empty());
nodeAdmin = new NodeAdminImpl(nodeAgentFactory, metrics, Clock.systemUTC(), Duration.ofMillis(10), Duration.ZERO);
NodeAgentContextFactory nodeAgentContextFactory = (nodeSpec, acl) ->
- new NodeAgentContextImpl.Builder(nodeSpec).acl(acl).fileSystem(fileSystem).build();
+ new NodeAgentContextImpl.Builder(nodeSpec).acl(acl).pathToContainerStorageFromFileSystem(fileSystem).build();
nodeAdminStateUpdater = new NodeAdminStateUpdater(nodeAgentContextFactory, nodeRepository, orchestrator,
nodeAdmin, HOST_HOSTNAME, Clock.systemUTC());
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainerTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainerTest.java
index d034d3c1cd0..2a670ba8322 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainerTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainerTest.java
@@ -110,7 +110,7 @@ public class StorageMaintainerTest {
private NodeAgentContext createNodeAgentContextAndContainerStorage(FileSystem fileSystem, String containerName) throws IOException {
NodeAgentContext context = new NodeAgentContextImpl.Builder(containerName + ".domain.tld")
- .fileSystem(fileSystem).build();
+ .pathToContainerStorageFromFileSystem(fileSystem).build();
Path containerVespaHomeOnHost = context.pathOnHostFromPathInNode(context.pathInNodeUnderVespaHome(""));
Files.createDirectories(context.pathOnHostFromPathInNode("/etc/something"));
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContextImplTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContextImplTest.java
index 84f13ed299a..be94846fb65 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContextImplTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContextImplTest.java
@@ -13,7 +13,7 @@ import static org.junit.Assert.assertEquals;
public class NodeAgentContextImplTest {
private final FileSystem fileSystem = TestFileSystem.create();
private final NodeAgentContext context = new NodeAgentContextImpl.Builder("container-1.domain.tld")
- .fileSystem(fileSystem).build();
+ .pathToContainerStorageFromFileSystem(fileSystem).build();
@Test
public void path_on_host_from_path_in_node_test() {