diff options
author | Valerij Fredriksen <valerijf@verizonmedia.com> | 2021-09-16 11:22:22 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerijf@verizonmedia.com> | 2021-09-16 11:24:45 +0200 |
commit | cd2827467157f3eb872d63f9c39a658082f1bf88 (patch) | |
tree | d9f67db417f944adacf731416fff3578c76d23a9 /node-repository | |
parent | 1a72eefec8a8c62f8b29455e15a4cc2d67eb4d0e (diff) |
Allow underscores in archive URI
Diffstat (limited to 'node-repository')
2 files changed, 5 insertions, 2 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ArchiveUris.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ArchiveUris.java index c59de5865b8..6174d9bb396 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ArchiveUris.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ArchiveUris.java @@ -24,7 +24,7 @@ import java.util.regex.Pattern; public class ArchiveUris { private static final Logger log = Logger.getLogger(ArchiveUris.class.getName()); - private static final Pattern validUriPattern = Pattern.compile("[a-z0-9]+://(?:(?:[a-z0-9]+(?:-[a-z0-9.]+)*)+/)+"); + private static final Pattern validUriPattern = Pattern.compile("[a-z0-9]+://(?:(?:[a-z0-9]+(?:[-_][a-z0-9.]+)*)+/)+"); private static final Duration cacheTtl = Duration.ofMinutes(1); private final CuratorDatabaseClient db; diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ArchiveUrisTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ArchiveUrisTest.java index cf773052991..982448558e6 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ArchiveUrisTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ArchiveUrisTest.java @@ -55,12 +55,15 @@ public class ArchiveUrisTest { assertEquals("ftp://domain/legal-dir123/", normalizeUri("ftp://domain/legal-dir123")); assertEquals("ftp://domain/legal-dir123/", normalizeUri("ftp://domain/legal-dir123/")); assertEquals("s3://my-bucket-prod.region/my-tenant-123/", normalizeUri("s3://my-bucket-prod.region/my-tenant-123/")); + assertEquals("s3://my-bucket-prod.region/my-tenant_123/", normalizeUri("s3://my-bucket-prod.region/my-tenant_123/")); assertThrows(IllegalArgumentException.class, () -> normalizeUri("domain/dir/")); assertThrows(IllegalArgumentException.class, () -> normalizeUri("ftp:/domain/dir/")); assertThrows(IllegalArgumentException.class, () -> normalizeUri("ftp:/domain//dir/")); - assertThrows(IllegalArgumentException.class, () -> normalizeUri("ftp://domain/illegal_dir/")); + assertThrows(IllegalArgumentException.class, () -> normalizeUri("ftp://domain/illegal:dir/")); assertThrows(IllegalArgumentException.class, () -> normalizeUri("ftp://domain/-illegal-dir/")); + assertThrows(IllegalArgumentException.class, () -> normalizeUri("ftp://domain/_illegal-dir/")); assertThrows(IllegalArgumentException.class, () -> normalizeUri("ftp://domain/illegal-dir-/")); + assertThrows(IllegalArgumentException.class, () -> normalizeUri("ftp://domain/illegal-dir_/")); } private static void assertThrows(Class<? extends Throwable> clazz, Runnable runnable) { |