summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Marius Venstad <jonmv@users.noreply.github.com>2022-04-19 16:19:49 +0200
committerGitHub <noreply@github.com>2022-04-19 16:19:49 +0200
commit383ab296f698577c9888062e2c726d3e7857cc6b (patch)
treee5f68c1e50c3f47c9b4ed25b11bc81ef05cecb39
parent5cf282748f208c6c30e4943484042679185334b9 (diff)
parent6974f7d520fb829b489774fc03e6c96e948beaa0 (diff)
Merge pull request #22146 from vespa-engine/jonmv/more-validation
Jonmv/more validation
-rw-r--r--config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java4
-rw-r--r--config-provisioning/pom.xml15
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationId.java13
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/AthenzDomain.java41
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/CloudName.java41
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/RegionName.java45
-rw-r--r--config-provisioning/src/test/java/com/yahoo/config/provision/ApplicationIdTest.java71
-rw-r--r--config-provisioning/src/test/java/com/yahoo/config/provision/ClusterSpecTest.java19
-rw-r--r--config-provisioning/src/test/java/com/yahoo/config/provision/IdentifierTestBase.java14
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/rpc/RpcServer.java2
-rw-r--r--controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/JobTypeTest.java36
-rw-r--r--vespa-athenz/src/main/java/com/yahoo/vespa/athenz/api/AthenzDomain.java2
13 files changed, 111 insertions, 195 deletions
diff --git a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java
index 36ebb621475..0579aebe771 100644
--- a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java
+++ b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java
@@ -481,12 +481,13 @@ public class FilesApplicationPackage extends AbstractApplicationPackage {
}
private static ApplicationMetaData readMetaData(File appDir) {
+ String originalAppDir = preprocessed.equals(appDir.getName()) ? appDir.getParentFile().getName() : appDir.getName();
ApplicationMetaData defaultMetaData = new ApplicationMetaData("n/a",
"n/a",
0L,
false,
ApplicationId.from(TenantName.defaultName(),
- ApplicationName.from(appDir.getName()),
+ ApplicationName.from(originalAppDir),
InstanceName.defaultName()),
"",
0L,
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java b/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java
index f2d0ab03e27..25e2a7593b0 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java
@@ -119,14 +119,12 @@ public class VespaModelFactory implements ModelFactory {
for (ConfigChangeAction action : changeActions) {
if (action.getType().equals(ConfigChangeAction.Type.REINDEX)) {
VespaModel currentModel = (VespaModel) currentActiveModel.get();
- var currentVersion = currentModel.version();
var currentMeta = currentModel.applicationPackage().getMetaData();
- var nextVersion = nextModel.version();
var nextMeta = nextModel.applicationPackage().getMetaData();
log.log(Level.INFO, String.format("Model [%s/%s] -> [%s/%s] triggers reindexing: %s",
currentModel.version().toString(), currentMeta.toString(),
nextModel.version().toString(), nextMeta.toString(),
- action.toString()));
+ action));
}
}
}
diff --git a/config-provisioning/pom.xml b/config-provisioning/pom.xml
index fdfbbfc9049..c7616b2187a 100644
--- a/config-provisioning/pom.xml
+++ b/config-provisioning/pom.xml
@@ -8,14 +8,12 @@
<version>7-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
- <groupId>com.yahoo.vespa</groupId>
+
+ <name>config-provisioning</name>
+ <description>Provisioning APIs.</description>
<artifactId>config-provisioning</artifactId>
<packaging>container-plugin</packaging>
- <version>7-SNAPSHOT</version>
- <name>config-provisioning</name>
- <description>
-Provisioning APIs.
- </description>
+
<dependencies>
<dependency>
<groupId>com.yahoo.vespa</groupId>
@@ -69,11 +67,6 @@ Provisioning APIs.
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>com.google.guava</groupId>
- <artifactId>guava-testlib</artifactId>
- <scope>test</scope>
- </dependency>
</dependencies>
<build>
<plugins>
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationId.java b/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationId.java
index aa70bf4d26a..f77a6b8d182 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationId.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationId.java
@@ -16,14 +16,11 @@ import java.util.regex.Pattern;
*/
public class ApplicationId implements Comparable<ApplicationId> {
- // TODO: remove '.' and '*' from this pattern.
- static final Pattern namePattern = Pattern.compile("(?!\\.\\.)[a-zA-Z0-9_.*-]{1,256}");
-
- private static final ApplicationId global = new ApplicationId(TenantName.from("*"),
- ApplicationName.from("*"),
- InstanceName.from("*")) {
- @Override public boolean equals(Object other) { return this == other; }
- };
+ static final Pattern namePattern = Pattern.compile("(?!\\.\\.)[a-zA-Z0-9_-]{1,256}");
+
+ private static final ApplicationId global = new ApplicationId(TenantName.from("hosted-vespa"),
+ ApplicationName.from("routing"),
+ InstanceName.from("default")) { };
private static final Comparator<ApplicationId> comparator = Comparator.comparing(ApplicationId::tenant)
.thenComparing(ApplicationId::application)
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/AthenzDomain.java b/config-provisioning/src/main/java/com/yahoo/config/provision/AthenzDomain.java
index 7b60d22c810..16cb3c43814 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/AthenzDomain.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/AthenzDomain.java
@@ -1,54 +1,23 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.config.provision;
+import ai.vespa.validation.PatternedStringWrapper;
+
import java.util.regex.Pattern;
/**
* @author mortent
*/
-public class AthenzDomain {
-
- private static final Pattern PATTERN = Pattern.compile("[a-zA-Z0-9_][a-zA-Z0-9_\\-.]*[a-zA-Z0-9_]");
+public class AthenzDomain extends PatternedStringWrapper<AthenzDomain> {
- private final String name;
+ private static final Pattern PATTERN = Pattern.compile("[a-zA-Z0-9_][a-zA-Z0-9_.-]*[a-zA-Z0-9_]");
private AthenzDomain(String name) {
- // TODO bjorncs: Temporarily disable name validation
- // validateName(name);
- this.name = name;
- }
-
- private static void validateName(String name) {
- if (!PATTERN.matcher(name).matches()) {
- throw new IllegalArgumentException("Not a valid domain name: '" + name + "'");
- }
+ super(name, PATTERN, "Athenz domain");
}
public static AthenzDomain from(String value) {
return new AthenzDomain(value);
}
- public String value() { return name; }
-
- @Override
- public String toString() {
- return "AthenzDomain{" +
- "name='" + name + '\'' +
- '}';
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
-
- AthenzDomain that = (AthenzDomain) o;
-
- return name != null ? name.equals(that.name) : that.name == null;
- }
-
- @Override
- public int hashCode() {
- return name != null ? name.hashCode() : 0;
- }
}
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/CloudName.java b/config-provisioning/src/main/java/com/yahoo/config/provision/CloudName.java
index b4be3531f2a..417e381587e 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/CloudName.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/CloudName.java
@@ -1,29 +1,27 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.config.provision;
+import ai.vespa.validation.PatternedStringWrapper;
+
import java.util.Objects;
+import java.util.regex.Pattern;
/**
* Represents a cloud provider used in a hosted Vespa system.
*
* @author mpolden
*/
-public class CloudName implements Comparable<CloudName> {
-
- private final static CloudName defaultCloud = from("default");
+public class CloudName extends PatternedStringWrapper<CloudName> {
- private final String cloud;
+ private static final Pattern pattern = Pattern.compile("[a-z]([a-z0-9-]*[a-z0-9])*");
+ private static final CloudName defaultCloud = from("default");
private CloudName(String cloud) {
- this.cloud = cloud;
- }
-
- public String value() {
- return cloud;
+ super(cloud, pattern, "cloud name");
}
public boolean isDefault() {
- return defaultName().equals(this);
+ return equals(defaultCloud);
}
public static CloudName defaultName() {
@@ -34,27 +32,4 @@ public class CloudName implements Comparable<CloudName> {
return new CloudName(cloud);
}
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- CloudName cloudName = (CloudName) o;
- return Objects.equals(cloud, cloudName.cloud);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(cloud);
- }
-
- @Override
- public String toString() {
- return cloud;
- }
-
- @Override
- public int compareTo(CloudName o) {
- return cloud.compareTo(o.cloud);
- }
-
}
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/RegionName.java b/config-provisioning/src/main/java/com/yahoo/config/provision/RegionName.java
index 73ad2181965..be431a5fd68 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/RegionName.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/RegionName.java
@@ -1,56 +1,35 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.config.provision;
-import java.util.Objects;
+import ai.vespa.validation.PatternedStringWrapper;
+
+import java.util.regex.Pattern;
/**
- * Represents an application's region, which may be any kind of string or default. This type is defined
- * in order to provide a type safe API for defining regions.
+ * A region in a hosted Vespa system.
+ * A region name must be all lowercase, start with a letter, and contain letters and digits, separated by dashes.
*
- * @author Ulf Lilleengen
- * @since 5.11
+ * @author jonmv
*/
-public class RegionName implements Comparable<RegionName> {
+public class RegionName extends PatternedStringWrapper<RegionName> {
- private final String region;
+ private static final Pattern pattern = Pattern.compile("[a-z]([a-z0-9-]*[a-z0-9])*");
+ private static final RegionName defaultName = from("default");
private RegionName(String region) {
- this.region = region;
- }
-
- @Override
- public int hashCode() {
- return region.hashCode();
- }
-
- @Override
- public boolean equals(Object obj) {
- if (!(obj instanceof RegionName)) return false;
- return Objects.equals(((RegionName) obj).region, region);
+ super(region, pattern, "region name");
}
- @Override
- public String toString() {
- return region;
- }
-
- // TODO: Add verification of region name.
public static RegionName from(String region) {
return new RegionName(region);
}
public static RegionName defaultName() {
- return new RegionName("default");
+ return defaultName;
}
public boolean isDefault() {
- return equals(RegionName.defaultName());
+ return equals(defaultName());
}
- public String value() { return region; }
-
- @Override
- public int compareTo(RegionName region) {
- return this.region.compareTo(region.region);
- }
}
diff --git a/config-provisioning/src/test/java/com/yahoo/config/provision/ApplicationIdTest.java b/config-provisioning/src/test/java/com/yahoo/config/provision/ApplicationIdTest.java
index 01904b5eece..622fc2527bf 100644
--- a/config-provisioning/src/test/java/com/yahoo/config/provision/ApplicationIdTest.java
+++ b/config-provisioning/src/test/java/com/yahoo/config/provision/ApplicationIdTest.java
@@ -1,12 +1,18 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.config.provision;
-import static org.junit.Assert.assertEquals;
-
import com.yahoo.cloud.config.ApplicationIdConfig;
import com.yahoo.test.TotalOrderTester;
import org.junit.Test;
-import com.google.common.testing.EqualsTester;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import static com.yahoo.config.provision.ApplicationId.from;
+import static com.yahoo.config.provision.ApplicationId.global;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
/**
* @author Ulf Lilleengen
@@ -15,19 +21,11 @@ import com.google.common.testing.EqualsTester;
*/
public class ApplicationIdTest {
- ApplicationId idFrom(String tenant, String name, String instance) {
- ApplicationId.Builder b = new ApplicationId.Builder();
- b.tenant(tenant);
- b.applicationName(name);
- b.instanceName(instance);
- return b.build();
- }
-
@Test
public void require_that_application_id_is_set() {
ApplicationId app = applicationId("application");
assertEquals("application", app.application().value());
- app = idFrom("tenant", "application", "instance");
+ app = from("tenant", "application", "instance");
assertEquals("tenant", app.tenant().value());
assertEquals("application", app.application().value());
assertEquals("instance", app.instance().value());
@@ -35,22 +33,25 @@ public class ApplicationIdTest {
@Test
public void require_that_equals_and_hashcode_behaves_correctly() {
- new EqualsTester()
- .addEqualityGroup(idFrom("tenant1", "name1", "instance1"),
- idFrom("tenant1", "name1", "instance1"))
- .addEqualityGroup(idFrom("tenant2", "name1", "instance1"))
- .addEqualityGroup(idFrom("tenant1", "name2", "instance1"))
- .addEqualityGroup(idFrom("tenant1", "name1", "instance2"))
- .addEqualityGroup(applicationId("onlyName1"))
- .addEqualityGroup(applicationId("onlyName2"))
- .testEquals();
+ assertEquals(Set.of(from("tenant1", "name1", "instance1"),
+ from("tenant2", "name1", "instance1"),
+ from("tenant1", "name2", "instance1"),
+ from("tenant1", "name1", "instance2"),
+ applicationId("name1"),
+ applicationId("name2")),
+ new HashSet<>(List.of(from("tenant1", "name1", "instance1"),
+ from("tenant2", "name1", "instance1"),
+ from("tenant1", "name2", "instance1"),
+ from("tenant1", "name1", "instance2"),
+ applicationId("name1"),
+ applicationId("name2"))));
}
@Test
public void require_that_value_format_is_correct() {
ApplicationId id1 = applicationId("foo");
ApplicationId id2 = applicationId("bar");
- ApplicationId id3 = idFrom("tenant", "baz", "bim");
+ ApplicationId id3 = from("tenant", "baz", "bim");
assertEquals("default:foo:default", id1.serializedForm());
assertEquals("default:bar:default", id2.serializedForm());
assertEquals("tenant:baz:bim", id3.serializedForm());
@@ -59,8 +60,8 @@ public class ApplicationIdTest {
@Test
public void require_string_formats_are_correct() {
ApplicationId id1 = applicationId("foo");
- ApplicationId id2 = idFrom("bar", "baz", "default");
- ApplicationId id3 = idFrom("tenant", "baz", "bim");
+ ApplicationId id2 = from("bar", "baz", "default");
+ ApplicationId id3 = from("tenant", "baz", "bim");
assertEquals("default.foo", id1.toShortString());
assertEquals("default.foo.default", id1.toFullString());
assertEquals("bar.baz", id2.toShortString());
@@ -92,11 +93,11 @@ public class ApplicationIdTest {
@Test
public void require_that_compare_to_is_correct() {
new TotalOrderTester<ApplicationId>()
- .theseObjects(idFrom("tenant1", "name1", "instance1"),
- idFrom("tenant1", "name1", "instance1"))
- .areLessThan(idFrom("tenant2", "name1", "instance1"))
- .areLessThan(idFrom("tenant2", "name2", "instance1"))
- .areLessThan(idFrom("tenant2", "name2", "instance2"))
+ .theseObjects(from("tenant1", "name1", "instance1"),
+ from("tenant1", "name1", "instance1"))
+ .areLessThan(from("tenant2", "name1", "instance1"))
+ .areLessThan(from("tenant2", "name2", "instance1"))
+ .areLessThan(from("tenant2", "name2", "instance2"))
.testOrdering();
}
@@ -106,15 +107,21 @@ public class ApplicationIdTest {
builder.tenant("a");
builder.application("b");
builder.instance("c");
- ApplicationId applicationId = ApplicationId.from(new ApplicationIdConfig(builder));
+ ApplicationId applicationId = from(new ApplicationIdConfig(builder));
assertEquals("a", applicationId.tenant().value());
assertEquals("b", applicationId.application().value());
assertEquals("c", applicationId.instance().value());
}
+ @Test
+ public void require_that_global_is_special() {
+ assertEquals(global(), global());
+ assertNotEquals(global(), from("hosted-vespa", "routing", "default"));
+ assertEquals(global().serializedForm(), from("hosted-vespa", "routing", "default").serializedForm());
+ }
+
private ApplicationId applicationId(String applicationName) {
- return ApplicationId.from(TenantName.defaultName(),
- ApplicationName.from(applicationName), InstanceName.defaultName());
+ return from(TenantName.defaultName(), ApplicationName.from(applicationName), InstanceName.defaultName());
}
}
diff --git a/config-provisioning/src/test/java/com/yahoo/config/provision/ClusterSpecTest.java b/config-provisioning/src/test/java/com/yahoo/config/provision/ClusterSpecTest.java
index 0fe123a774a..dc228ee7fd2 100644
--- a/config-provisioning/src/test/java/com/yahoo/config/provision/ClusterSpecTest.java
+++ b/config-provisioning/src/test/java/com/yahoo/config/provision/ClusterSpecTest.java
@@ -1,13 +1,16 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.config.provision;
-import com.google.common.testing.EqualsTester;
import com.yahoo.component.Version;
+import com.yahoo.config.provision.ClusterSpec.Group;
+import com.yahoo.config.provision.ClusterSpec.Id;
import org.junit.Test;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Optional;
+import java.util.Set;
import static org.junit.Assert.assertEquals;
@@ -18,20 +21,14 @@ public class ClusterSpecTest {
@Test
public void testIdEquals() {
- new EqualsTester()
- .addEqualityGroup(ClusterSpec.Id.from("id1"), ClusterSpec.Id.from("id1"))
- .addEqualityGroup(ClusterSpec.Id.from("id2"))
- .addEqualityGroup(ClusterSpec.Id.from("id3"))
- .testEquals();
+ assertEquals(Set.of(Id.from("id1"), Id.from("id2"), Id.from("id3")),
+ new HashSet<>(List.of(Id.from("id1"), Id.from("id1"), Id.from("id2"), Id.from("id3"))));
}
@Test
public void testGroupEquals() {
- new EqualsTester()
- .addEqualityGroup(ClusterSpec.Group.from(1), ClusterSpec.Group.from(1))
- .addEqualityGroup(ClusterSpec.Group.from(2))
- .addEqualityGroup(ClusterSpec.Group.from(3))
- .testEquals();
+ assertEquals(Set.of(Group.from(1), Group.from(2), Group.from(3)),
+ new HashSet<>(List.of(Group.from(1), Group.from(1), Group.from(2), Group.from(3))));
}
@Test
diff --git a/config-provisioning/src/test/java/com/yahoo/config/provision/IdentifierTestBase.java b/config-provisioning/src/test/java/com/yahoo/config/provision/IdentifierTestBase.java
index d4edb7a14eb..fd1a9401b81 100644
--- a/config-provisioning/src/test/java/com/yahoo/config/provision/IdentifierTestBase.java
+++ b/config-provisioning/src/test/java/com/yahoo/config/provision/IdentifierTestBase.java
@@ -1,9 +1,12 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.config.provision;
-import com.google.common.testing.EqualsTester;
import org.junit.Test;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotEquals;
@@ -12,7 +15,6 @@ import static org.junit.Assert.assertTrue;
/**
* Generic test for identifiers such as {@link Environment} and {@link RegionName}.
* @author Ulf Lilleengen
- * @since 5.23
*/
public abstract class IdentifierTestBase<ID_TYPE> {
@@ -34,10 +36,8 @@ public abstract class IdentifierTestBase<ID_TYPE> {
@Test
public void testEquals() {
- new EqualsTester()
- .addEqualityGroup(createInstance("foo"), createInstance("foo"))
- .addEqualityGroup(createInstance("bar"))
- .addEqualityGroup(createInstance("baz"))
- .testEquals();
+ assertEquals(Set.of(createInstance("foo"), createInstance("bar"), createInstance("baz")),
+ new HashSet<>(List.of(createInstance("foo"), createInstance("foo"), createInstance("bar"), createInstance("baz"))));
}
+
}
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/RpcServer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/RpcServer.java
index ebf1fb32141..e5dede9af8a 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/RpcServer.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/RpcServer.java
@@ -379,7 +379,7 @@ public class RpcServer implements Runnable, ReloadListener, TenantListener {
if (completionService == null) {
executorService.submit(task);
} else {
- completionService.submit(() -> { task.run();return true;});
+ completionService.submit(() -> { task.run(); return true; });
}
updateWorkQueueMetrics();
return true;
diff --git a/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/JobTypeTest.java b/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/JobTypeTest.java
index 990e8911e91..91edfff5b17 100644
--- a/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/JobTypeTest.java
+++ b/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/JobTypeTest.java
@@ -33,29 +33,29 @@ public class JobTypeTest {
assertEquals(JobType.testUsEast3, JobType.fromJobName("prod.us-east-3.test"));
assertEquals(JobType.devAwsUsEast1c, JobType.fromJobName("dev.aws-us-east-1c"));
- assertFalse(JobType.dev("snøhetta").isTest());
- assertTrue(JobType.dev("snøhetta").isDeployment());
- assertFalse(JobType.dev("snøhetta").isProduction());
+ assertFalse(JobType.dev("snohetta").isTest());
+ assertTrue(JobType.dev("snohetta").isDeployment());
+ assertFalse(JobType.dev("snohetta").isProduction());
- assertFalse(JobType.perf("snøhetta").isTest());
- assertTrue(JobType.perf("snøhetta").isDeployment());
- assertFalse(JobType.perf("snøhetta").isProduction());
+ assertFalse(JobType.perf("snohetta").isTest());
+ assertTrue(JobType.perf("snohetta").isDeployment());
+ assertFalse(JobType.perf("snohetta").isProduction());
- assertTrue(JobType.deploymentTo(ZoneId.from("test", "snøhetta")).isTest());
- assertTrue(JobType.deploymentTo(ZoneId.from("test", "snøhetta")).isDeployment());
- assertFalse(JobType.deploymentTo(ZoneId.from("test", "snøhetta")).isProduction());
+ assertTrue(JobType.deploymentTo(ZoneId.from("test", "snohetta")).isTest());
+ assertTrue(JobType.deploymentTo(ZoneId.from("test", "snohetta")).isDeployment());
+ assertFalse(JobType.deploymentTo(ZoneId.from("test", "snohetta")).isProduction());
- assertTrue(JobType.deploymentTo(ZoneId.from("staging", "snøhetta")).isTest());
- assertTrue(JobType.deploymentTo(ZoneId.from("staging", "snøhetta")).isDeployment());
- assertFalse(JobType.deploymentTo(ZoneId.from("staging", "snøhetta")).isProduction());
+ assertTrue(JobType.deploymentTo(ZoneId.from("staging", "snohetta")).isTest());
+ assertTrue(JobType.deploymentTo(ZoneId.from("staging", "snohetta")).isDeployment());
+ assertFalse(JobType.deploymentTo(ZoneId.from("staging", "snohetta")).isProduction());
- assertFalse(JobType.prod("snøhetta").isTest());
- assertTrue(JobType.prod("snøhetta").isDeployment());
- assertTrue(JobType.prod("snøhetta").isProduction());
+ assertFalse(JobType.prod("snohetta").isTest());
+ assertTrue(JobType.prod("snohetta").isDeployment());
+ assertTrue(JobType.prod("snohetta").isProduction());
- assertTrue(JobType.test("snøhetta").isTest());
- assertFalse(JobType.test("snøhetta").isDeployment());
- assertTrue(JobType.test("snøhetta").isProduction());
+ assertTrue(JobType.test("snohetta").isTest());
+ assertFalse(JobType.test("snohetta").isDeployment());
+ assertTrue(JobType.test("snohetta").isProduction());
}
}
diff --git a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/api/AthenzDomain.java b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/api/AthenzDomain.java
index 769e81d7732..155ba8ab66a 100644
--- a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/api/AthenzDomain.java
+++ b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/api/AthenzDomain.java
@@ -12,7 +12,7 @@ import java.util.regex.Pattern;
*/
public class AthenzDomain {
- private static final Pattern NAME_PATTERN = Pattern.compile("[a-zA-Z0-9_][a-zA-Z0-9_\\-.]*[a-zA-Z0-9_]");
+ private static final Pattern NAME_PATTERN = Pattern.compile("[a-zA-Z0-9_][a-zA-Z0-9_.-]*[a-zA-Z0-9_]");
private final String name;