summaryrefslogtreecommitdiffstats
path: root/config-provisioning
diff options
context:
space:
mode:
authorValerij Fredriksen <freva@users.noreply.github.com>2022-05-12 10:36:45 +0200
committerGitHub <noreply@github.com>2022-05-12 10:36:45 +0200
commitb69809180d764619264e88cb16979fb60cc9a23c (patch)
treef9a0c4230f1bccb341312b1dc1e2dd648e140070 /config-provisioning
parent3ae64956b57ee364807e5258da331bc156771a9e (diff)
Revert "Improve docker image validation"
Diffstat (limited to 'config-provisioning')
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/DockerImage.java18
-rw-r--r--config-provisioning/src/test/java/com/yahoo/config/provision/DockerImageTest.java10
2 files changed, 10 insertions, 18 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/DockerImage.java b/config-provisioning/src/main/java/com/yahoo/config/provision/DockerImage.java
index 1dce521b520..bbcf4b48c1d 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/DockerImage.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/DockerImage.java
@@ -24,9 +24,6 @@ public class DockerImage {
this.registry = Objects.requireNonNull(registry, "registry must be non-null");
this.repository = Objects.requireNonNull(repository, "repository must be non-null");
this.tag = Objects.requireNonNull(tag, "tag must be non-null");
-
- if (tag.isPresent() && tag.get().isBlank())
- throw new IllegalArgumentException("Set tag cannot be empty");
}
/** Returns the registry-part of this, i.e. the host/port of the registry. */
@@ -61,8 +58,6 @@ public class DockerImage {
/** Returns a copy of this with registry set to given value */
public DockerImage withRegistry(String registry) {
- if (registry.indexOf('/') >= 0)
- throw new IllegalArgumentException("Registry cannot container '/'");
return new DockerImage(registry, repository, tag);
}
@@ -91,6 +86,10 @@ public class DockerImage {
return Objects.hash(registry, repository, tag);
}
+ public static DockerImage from(String registry, String repository) {
+ return new DockerImage(registry, repository, Optional.empty());
+ }
+
public static DockerImage fromString(String s) {
if (s.isEmpty()) return EMPTY;
@@ -99,13 +98,14 @@ public class DockerImage {
String registry = s.substring(0, firstPathSeparator);
String repository = s.substring(firstPathSeparator + 1);
+ if (repository.isEmpty()) throw new IllegalArgumentException("Repository must be non-empty in '" + s + "'");
int tagStart = repository.indexOf(':');
- Optional<String> tag = tagStart < 0 ? Optional.empty() : Optional.of(repository.substring(tagStart + 1));
+ if (tagStart < 0) return new DockerImage(registry, repository, Optional.empty());
- if (tagStart >= 0) repository = repository.substring(0, tagStart);
- if (repository.isEmpty()) throw new IllegalArgumentException("Repository must be non-empty in '" + s + "'");
- return new DockerImage(registry, repository, tag);
+ String tag = repository.substring(tagStart + 1);
+ repository = repository.substring(0, tagStart);
+ return new DockerImage(registry, repository, Optional.of(tag));
}
}
diff --git a/config-provisioning/src/test/java/com/yahoo/config/provision/DockerImageTest.java b/config-provisioning/src/test/java/com/yahoo/config/provision/DockerImageTest.java
index ad21c6dca3b..71fd453aa26 100644
--- a/config-provisioning/src/test/java/com/yahoo/config/provision/DockerImageTest.java
+++ b/config-provisioning/src/test/java/com/yahoo/config/provision/DockerImageTest.java
@@ -8,7 +8,6 @@ import java.util.Map;
import java.util.Optional;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThrows;
import static org.junit.Assert.fail;
/**
@@ -37,24 +36,17 @@ public class DockerImageTest {
}
@Test
- public void registry_cannot_contain_slash() {
- DockerImage image = DockerImage.fromString("registry.example.com/vespa/vespa");
- assertThrows(IllegalArgumentException.class, () -> image.withRegistry("my-registry/path"));
- }
-
- @Test
public void parse_invalid() {
List<String> tests = List.of(
"registry.example.com",
"registry.example.com/",
- "registry.example.com/repository:",
"foo",
"foo:1.2.3"
);
for (var value : tests) {
try {
DockerImage.fromString(value);
- fail("Expected failure for: " + value);
+ fail("Expected failure");
} catch (IllegalArgumentException ignored) {
}
}