diff options
author | Valerij Fredriksen <valerijf@yahooinc.com> | 2021-10-13 17:14:48 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerijf@yahooinc.com> | 2021-10-13 17:14:48 +0200 |
commit | d1028019641d396f35fcc81115bd7452e757ad7a (patch) | |
tree | 4bc4befc242a743112dc93e4f7e8c11a0dbfecb3 /node-admin | |
parent | 4fb42f0a38fcbd411c4e1074a3e2a8ddf595081f (diff) |
Simplify fromPathOnHost
Diffstat (limited to 'node-admin')
-rw-r--r-- | node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/fs/ContainerPath.java | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/fs/ContainerPath.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/fs/ContainerPath.java index 01f18b2088b..e967806dc55 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/fs/ContainerPath.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/fs/ContainerPath.java @@ -205,17 +205,19 @@ public class ContainerPath implements Path { return resolve(containerFs, new String[0], pathInContainer); } - static ContainerPath fromPathOnHost(ContainerFileSystem containerFs, Path pathOnHost) { - pathOnHost = pathOnHost.normalize(); - Path containerRootOnHost = containerFs.provider().containerRootOnHost(); - Path pathUnderContainerStore = containerRootOnHost.relativize(pathOnHost); - List<String> parts = new ArrayList<>(); - for (int i = 0; i < pathUnderContainerStore.getNameCount(); i++) { - String part = pathUnderContainerStore.getName(i).toString(); - if (part.isEmpty() || part.equals(".")) continue; - if (part.equals("..")) throw new IllegalArgumentException("Path " + pathOnHost + " is not under container root " + containerRootOnHost); - parts.add(part); - } - return new ContainerPath(containerFs, pathOnHost, parts.toArray(String[]::new)); - } +static ContainerPath fromPathOnHost(ContainerFileSystem containerFs, Path pathOnHost) { + pathOnHost = pathOnHost.normalize(); + Path containerRootOnHost = containerFs.provider().containerRootOnHost(); + Path pathUnderContainerStorage = containerRootOnHost.relativize(pathOnHost); + + if (pathUnderContainerStorage.getNameCount() == 0 || pathUnderContainerStorage.getName(0).toString().isEmpty()) + return new ContainerPath(containerFs, pathOnHost, new String[0]); + if (pathUnderContainerStorage.getName(0).toString().equals("..")) + throw new IllegalArgumentException("Path " + pathOnHost + " is not under container root " + containerRootOnHost); + + List<String> parts = new ArrayList<>(); + for (int i = 0; i < pathUnderContainerStorage.getNameCount(); i++) + parts.add(pathUnderContainerStorage.getName(i).toString()); + return new ContainerPath(containerFs, pathOnHost, parts.toArray(String[]::new)); +} } |