summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2022-04-09 14:51:56 +0200
committerjonmv <venstad@gmail.com>2022-04-09 14:51:56 +0200
commitcb1eb57fa9707b1186f0aa10a0853780d7674742 (patch)
tree1c1ca993fdf96007ce4e2c98b2058809601d6fe5
parent87e5b33c003d07ca585d73e0166857fe22b4c16f (diff)
Revert "Merge pull request #22072 from vespa-engine/jonmv/unify-hostname-classes"
This reverts commit 87e5b33c003d07ca585d73e0166857fe22b4c16f, reversing changes made to 80b96d32550ae0df59572a58cd62f507e8068c2c.
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/rpc/RpcServer.java1
-rw-r--r--config-lib/src/main/java/com/yahoo/config/PathNode.java2
-rw-r--r--config-lib/src/test/java/com/yahoo/config/FileNodeTest.java5
-rw-r--r--config-lib/src/test/java/com/yahoo/config/PathNodeTest.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java8
-rw-r--r--config-model/src/test/java/com/yahoo/config/model/deploy/SystemModelTestCase.java2
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/parser/IntermediateParserTestCase.java15
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/HostName.java44
-rw-r--r--config-provisioning/src/test/java/com/yahoo/config/provision/HostNameTest.java35
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java4
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/rpc/GetConfigProcessor.java2
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/rpc/security/MultiTenantRpcAuthorizerTest.java2
-rw-r--r--container-core/src/test/java/com/yahoo/restapi/PathTest.java6
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/application/v4/EnvironmentResource.java4
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/identifiers/Hostname.java13
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/aws/MockResourceTagger.java1
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/aws/ResourceTagger.java1
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/LoadBalancer.java8
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java4
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/TesterCloud.java7
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/AliasTarget.java8
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/LatencyAliasTarget.java5
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/WeightedAliasTarget.java5
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockTesterCloud.java17
-rw-r--r--controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/integration/dns/AliasTargetTest.java4
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Controller.java2
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java6
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/NodeVersionSerializer.java2
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/RoutingPolicySerializer.java4
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java5
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/changemanagement/ChangeManagementApiHandler.java2
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/routing/RoutingPolicies.java4
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/routing/RoutingPolicy.java8
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/VersionStatus.java2
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java6
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java2
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentContext.java2
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/dns/NameServiceQueueTest.java4
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ConfigServerMock.java8
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/NodeRepositoryMock.java14
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/CloudEventTrackerTest.java2
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/HostInfoUpdaterTest.java4
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainerTest.java4
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceTagMaintainerTest.java12
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/SystemRoutingPolicyMaintainerTest.java2
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/VcmrMaintainerTest.java6
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/NameServiceQueueSerializerTest.java4
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/OsVersionStatusSerializerTest.java8
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/RoutingPolicySerializerTest.java4
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/VersionStatusSerializerTest.java2
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/proxy/ProxyRequestTest.java6
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java4
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-nodes.json2
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/dev-us-east-1-log-first-part.json2
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/staging-test-log.json12
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/system-test-details.json24
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/system-test-log.json24
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java4
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/routing/RoutingPoliciesTest.java14
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/versions/VersionStatusTest.java12
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContext.java2
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integration/ContainerTester.java2
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdaterTest.java2
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerInstance.java8
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerServiceMock.java4
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/Real.java10
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/SharedLoadBalancerService.java4
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabase.java2
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/LoadBalancerSerializer.java6
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/InfraDeployerImpl.java2
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/lb/SharedLoadBalancerServiceTest.java6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/LoadBalancerSerializerTest.java8
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/InfraDeployerImplTest.java3
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisionerTest.java4
-rw-r--r--orchestrator/src/test/java/com/yahoo/vespa/orchestrator/OrchestratorTest.java6
-rw-r--r--service-monitor/src/main/java/com/yahoo/vespa/service/duper/DuperModel.java2
-rw-r--r--service-monitor/src/main/java/com/yahoo/vespa/service/health/StateV1HealthModel.java2
-rw-r--r--service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceMonitorImpl.java2
-rw-r--r--service-monitor/src/test/java/com/yahoo/vespa/service/duper/DuperModelManagerTest.java8
-rw-r--r--service-monitor/src/test/java/com/yahoo/vespa/service/duper/DuperModelTest.java10
-rw-r--r--service-monitor/src/test/java/com/yahoo/vespa/service/health/ApplicationHealthMonitorTest.java4
-rw-r--r--service-monitor/src/test/java/com/yahoo/vespa/service/health/HealthMonitorManagerTest.java6
-rw-r--r--service-monitor/src/test/java/com/yahoo/vespa/service/health/StateV1HealthModelTest.java2
-rw-r--r--service-monitor/src/test/java/com/yahoo/vespa/service/model/ApplicationInstanceGeneratorTest.java2
-rw-r--r--service-monitor/src/test/java/com/yahoo/vespa/service/model/ServiceHostListenerAdapterTest.java2
-rw-r--r--service-monitor/src/test/java/com/yahoo/vespa/service/monitor/ConfigserverUtil.java2
-rw-r--r--vespajlib/abi-spec.json4
-rw-r--r--vespajlib/src/main/java/ai/vespa/http/DomainName.java6
-rw-r--r--vespajlib/src/main/java/ai/vespa/validation/StringWrapper.java2
-rw-r--r--vespajlib/src/main/java/com/yahoo/net/HostName.java37
-rw-r--r--vespajlib/src/test/java/com/yahoo/net/HostNameTest.java25
92 files changed, 287 insertions, 331 deletions
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/rpc/RpcServer.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/rpc/RpcServer.java
index 4bd9b2fc9b8..65c8a9df28e 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/rpc/RpcServer.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/rpc/RpcServer.java
@@ -16,6 +16,7 @@ import com.yahoo.jrt.slobrok.api.BackOffPolicy;
import com.yahoo.jrt.slobrok.api.Register;
import com.yahoo.jrt.slobrok.api.SlobrokList;
import java.util.logging.Level;
+
import com.yahoo.net.HostName;
import com.yahoo.vdslib.state.ClusterState;
import com.yahoo.vdslib.state.Node;
diff --git a/config-lib/src/main/java/com/yahoo/config/PathNode.java b/config-lib/src/main/java/com/yahoo/config/PathNode.java
index 03e6fb51086..ea4c657af8c 100644
--- a/config-lib/src/main/java/com/yahoo/config/PathNode.java
+++ b/config-lib/src/main/java/com/yahoo/config/PathNode.java
@@ -25,7 +25,7 @@ public class PathNode extends LeafNode<Path> {
super(true);
this.value = Path.of(fileReference.value());
if (value.normalize().toString().startsWith(".."))
- throw new IllegalArgumentException("path may not start with '..', but got :" + value);
+ throw new IllegalArgumentException("path may not start with '..', but got: " + value);
this.fileReference = fileReference;
}
diff --git a/config-lib/src/test/java/com/yahoo/config/FileNodeTest.java b/config-lib/src/test/java/com/yahoo/config/FileNodeTest.java
index 1ad9f722eca..42e4978091d 100644
--- a/config-lib/src/test/java/com/yahoo/config/FileNodeTest.java
+++ b/config-lib/src/test/java/com/yahoo/config/FileNodeTest.java
@@ -23,9 +23,8 @@ public class FileNodeTest {
assertEquals("foo.txt", n.value().value());
assertEquals("\"foo.txt\"", n.toString());
- assertThrows("path may not start with '..', but got: foo/../../boo",
- IllegalArgumentException.class,
- () -> new FileNode("foo/../../boo"));
+ assertEquals("path may not start with '..', but got: foo/../../boo",
+ assertThrows(IllegalArgumentException.class, () -> new FileNode("foo/../../boo")).getMessage());
}
}
diff --git a/config-lib/src/test/java/com/yahoo/config/PathNodeTest.java b/config-lib/src/test/java/com/yahoo/config/PathNodeTest.java
index 2240f647726..016c53b42e3 100644
--- a/config-lib/src/test/java/com/yahoo/config/PathNodeTest.java
+++ b/config-lib/src/test/java/com/yahoo/config/PathNodeTest.java
@@ -22,9 +22,8 @@ public class PathNodeTest {
n = new PathNode(new FileReference("foo.txt"));
assertEquals(new File("foo.txt").toPath(), n.value());
- assertThrows("path may not start with '..', but got: foo/../../boo",
- IllegalArgumentException.class,
- () -> new PathNode(new FileReference("foo/../../boo")));
+ assertEquals("path may not start with '..', but got: foo/../../boo",
+ assertThrows(IllegalArgumentException.class, () -> new PathNode(new FileReference("foo/../../boo"))).getMessage());
}
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
index 17690c6ecab..47519853ed0 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
@@ -1066,10 +1066,10 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
// TODO: Remove this method and use the loadbalancerName directly
return Optional.ofNullable(loadbalancerName)
.orElseGet(
- () -> HostName.from(configServerSpecs.stream()
- .findFirst()
- .map(ConfigServerSpec::getHostName)
- .orElse("unknown") // Currently unable to test this, hence the unknown
+ () -> HostName.of(configServerSpecs.stream()
+ .findFirst()
+ .map(ConfigServerSpec::getHostName)
+ .orElse("unknown") // Currently unable to test this, hence the unknown
));
}
diff --git a/config-model/src/test/java/com/yahoo/config/model/deploy/SystemModelTestCase.java b/config-model/src/test/java/com/yahoo/config/model/deploy/SystemModelTestCase.java
index 66cbfbd537f..70b9fc54882 100644
--- a/config-model/src/test/java/com/yahoo/config/model/deploy/SystemModelTestCase.java
+++ b/config-model/src/test/java/com/yahoo/config/model/deploy/SystemModelTestCase.java
@@ -2,12 +2,12 @@
package com.yahoo.config.model.deploy;
import com.yahoo.cloud.config.SentinelConfig;
+import com.yahoo.net.HostName;
import com.yahoo.test.StandardConfig;
import com.yahoo.config.model.ConfigModel;
import com.yahoo.config.model.ConfigModelRegistry;
import com.yahoo.config.model.MapConfigModelRegistry;
import com.yahoo.config.model.ApplicationConfigProducerRoot;
-import com.yahoo.net.HostName;
import com.yahoo.vespa.model.ConfigProducer;
import com.yahoo.vespa.model.HostResource;
import com.yahoo.vespa.model.HostSystem;
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/parser/IntermediateParserTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/parser/IntermediateParserTestCase.java
index c686a813c9f..1e0c554af81 100644
--- a/config-model/src/test/java/com/yahoo/searchdefinition/parser/IntermediateParserTestCase.java
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/parser/IntermediateParserTestCase.java
@@ -74,13 +74,14 @@ public class IntermediateParserTestCase {
@Test
public void backwards_path_is_disallowed() {
- assertThrows("'..' is not allowed in path", IllegalArgumentException.class,
- () -> parseString("schema foo {\n" +
- " constant my_constant_tensor {\n" +
- " file: foo/../bar\n" +
- " type: tensor<float>(x{},y{})\n" +
- " }\n" +
- "}\n"));
+ assertEquals("'..' is not allowed in path",
+ assertThrows(IllegalArgumentException.class,
+ () -> parseString("schema foo {\n" +
+ " constant my_constant_tensor {\n" +
+ " file: foo/../bar\n" +
+ " type: tensor<float>(x{},y{})\n" +
+ " }\n" +
+ "}\n")).getMessage());
}
void checkFileParses(String fileName) throws Exception {
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/HostName.java b/config-provisioning/src/main/java/com/yahoo/config/provision/HostName.java
index 04b15af51f2..e55737da18d 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/HostName.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/HostName.java
@@ -1,47 +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 java.util.Objects;
+import ai.vespa.http.DomainName;
+
+import static ai.vespa.validation.Validation.requireLength;
/**
- * A host name
+ * Hostnames match {@link #domainNamePattern}, and are restricted to 64 characters in length.
*
- * @author mortent
+ * @author jonmv
*/
-public class HostName implements Comparable<HostName> {
-
- private final String name;
-
- private HostName(String name) {
- this.name = name;
- }
-
- public String value() { return name; }
-
- /** Create a {@link HostName} with a given name */
- public static HostName from(String name) {
- return new HostName(name);
- }
-
- @Override
- public int hashCode() {
- return name.hashCode();
- }
-
- @Override
- public boolean equals(Object obj) {
- if (!(obj instanceof HostName)) return false;
- return Objects.equals(((HostName)obj).value(), value());
- }
+public class HostName extends DomainName {
- @Override
- public String toString() {
- return name;
+ private HostName(String value) {
+ super(requireLength(value, "hostname length", 1, 64));
}
- @Override
- public int compareTo(HostName that) {
- return this.name.compareTo(that.name);
+ public static HostName of(String value) {
+ return new HostName(value);
}
}
diff --git a/config-provisioning/src/test/java/com/yahoo/config/provision/HostNameTest.java b/config-provisioning/src/test/java/com/yahoo/config/provision/HostNameTest.java
new file mode 100644
index 00000000000..da01920cc57
--- /dev/null
+++ b/config-provisioning/src/test/java/com/yahoo/config/provision/HostNameTest.java
@@ -0,0 +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 org.junit.Test;
+
+import static org.junit.Assert.assertThrows;
+
+/**
+ * @author jonmv
+ */
+public class HostNameTest {
+
+ @Test
+ public void testNames() {
+ HostName.of("name-123.0.321-eman");
+ HostName.of(("." + "a".repeat(32)).repeat(2).substring(1, 65));
+ HostName.of("123");
+
+ assertThrows(IllegalArgumentException.class, () -> HostName.of("_"));
+ assertThrows(IllegalArgumentException.class, () -> HostName.of("-"));
+ assertThrows(IllegalArgumentException.class, () -> HostName.of("."));
+ assertThrows(IllegalArgumentException.class, () -> HostName.of("-foo"));
+ assertThrows(IllegalArgumentException.class, () -> HostName.of("foo-"));
+ assertThrows(IllegalArgumentException.class, () -> HostName.of(".foo"));
+ assertThrows(IllegalArgumentException.class, () -> HostName.of("foo."));
+ assertThrows(IllegalArgumentException.class, () -> HostName.of("foo..bar"));
+ assertThrows(IllegalArgumentException.class, () -> HostName.of("foo.-.bar"));
+ assertThrows(IllegalArgumentException.class, () -> HostName.of("foo/"));
+ assertThrows(IllegalArgumentException.class, () -> HostName.of("foo%"));
+ assertThrows(IllegalArgumentException.class, () -> HostName.of(("." + "a".repeat(32)).repeat(2).substring(1, 66)));
+ assertThrows(IllegalArgumentException.class, () -> HostName.of("a".repeat(64)));
+ }
+
+}
+
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java
index fe9ab82637f..b59dbda3174 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java
@@ -21,10 +21,10 @@ import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.AthenzDomain;
import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.config.provision.DockerImage;
-import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.TenantName;
import com.yahoo.config.provision.Zone;
import com.yahoo.container.jdisc.secretstore.SecretStore;
+import com.yahoo.config.provision.HostName;
import com.yahoo.vespa.config.server.tenant.SecretStoreExternalIdRetriever;
import com.yahoo.vespa.flags.FetchVector;
import com.yahoo.vespa.flags.FlagSource;
@@ -398,7 +398,7 @@ public class ModelContextImpl implements ModelContext {
this.applicationId = applicationId;
this.multitenant = configserverConfig.multitenant() || configserverConfig.hostedVespa() || Boolean.getBoolean("multitenant");
this.configServerSpecs = fromConfig(configserverConfig);
- this.loadBalancerName = HostName.from(configserverConfig.loadBalancerAddress());
+ this.loadBalancerName = configserverConfig.loadBalancerAddress().isEmpty() ? null : HostName.of(configserverConfig.loadBalancerAddress());
this.ztsUrl = configserverConfig.ztsUrl() != null ? URI.create(configserverConfig.ztsUrl()) : null;
this.athenzDnsSuffix = configserverConfig.athenzDnsSuffix();
this.hostedVespa = configserverConfig.hostedVespa();
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/GetConfigProcessor.java b/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/GetConfigProcessor.java
index 55645d83b3c..1946a9bf76c 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/GetConfigProcessor.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/GetConfigProcessor.java
@@ -5,9 +5,9 @@ import com.yahoo.cloud.config.SentinelConfig;
import com.yahoo.collections.Pair;
import com.yahoo.component.Version;
import com.yahoo.config.provision.TenantName;
+import com.yahoo.net.HostName;
import com.yahoo.vespa.config.PayloadChecksums;
import com.yahoo.jrt.Request;
-import com.yahoo.net.HostName;
import com.yahoo.vespa.config.ConfigPayload;
import com.yahoo.vespa.config.ErrorCode;
import com.yahoo.vespa.config.UnknownConfigIdException;
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/security/MultiTenantRpcAuthorizerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/security/MultiTenantRpcAuthorizerTest.java
index 30d3dcffc30..2650b23a38e 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/security/MultiTenantRpcAuthorizerTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/security/MultiTenantRpcAuthorizerTest.java
@@ -56,7 +56,7 @@ public class MultiTenantRpcAuthorizerTest {
private static final List<X509Certificate> PEER_CERTIFICATE_CHAIN = List.of(createDummyCertificate());
private static final ApplicationId APPLICATION_ID = ApplicationId.from("mytenant", "myapplication", "default");
private static final ApplicationId EVIL_APP_ID = ApplicationId.from("malice", "malice-app", "default");
- private static final HostName HOSTNAME = HostName.from("myhostname");
+ private static final HostName HOSTNAME = HostName.of("myhostname");
private static final FileReference FILE_REFERENCE = new FileReference("myfilereference");
@SuppressWarnings("deprecation")
diff --git a/container-core/src/test/java/com/yahoo/restapi/PathTest.java b/container-core/src/test/java/com/yahoo/restapi/PathTest.java
index 17b35a6343c..b0392c16e2e 100644
--- a/container-core/src/test/java/com/yahoo/restapi/PathTest.java
+++ b/container-core/src/test/java/com/yahoo/restapi/PathTest.java
@@ -68,9 +68,9 @@ public class PathTest {
public void testUrlEncodedPath() {
assertTrue(new Path(URI.create("/a/%62/c")).matches("/a/b/c"));
assertFalse(new Path(URI.create("/a/b%2fc"), __ -> { }).matches("/a/b/c"));
- assertThrows("path segments cannot be \"\", \".\", or \"..\", but got: '..'",
- IllegalArgumentException.class,
- () -> new Path(URI.create("/foo")).matches("/foo/bar/%2e%2e"));
+ assertEquals("path segments cannot be \"\", \".\", or \"..\", but got: '..'",
+ assertThrows(IllegalArgumentException.class,
+ () -> new Path(URI.create("/foo")).matches("/foo/bar/%2e%2e")).getMessage());
Path path = new Path(URI.create("/%61/%2f/%63"), __ -> { });
assertTrue(path.matches("/a/{slash}/{c}"));
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/application/v4/EnvironmentResource.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/application/v4/EnvironmentResource.java
index 77b8118784a..389cda605af 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/application/v4/EnvironmentResource.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/application/v4/EnvironmentResource.java
@@ -2,10 +2,10 @@
package com.yahoo.vespa.hosted.controller.api.application.v4;
import com.fasterxml.jackson.databind.JsonNode;
+import com.yahoo.config.provision.HostName;
import com.yahoo.vespa.hosted.controller.api.application.v4.model.InstanceInformation;
import com.yahoo.vespa.hosted.controller.api.identifiers.ApplicationId;
import com.yahoo.vespa.hosted.controller.api.identifiers.EnvironmentId;
-import com.yahoo.vespa.hosted.controller.api.identifiers.Hostname;
import com.yahoo.vespa.hosted.controller.api.identifiers.InstanceId;
import com.yahoo.vespa.hosted.controller.api.identifiers.RegionId;
import com.yahoo.vespa.hosted.controller.api.identifiers.TenantId;
@@ -51,7 +51,7 @@ public interface EnvironmentResource {
@PathParam("environmentId") EnvironmentId environmentId,
@PathParam("regionId") RegionId regionId,
@PathParam("instanceId") InstanceId instanceId,
- @QueryParam("hostname") Hostname hostname);
+ @QueryParam("hostname") HostName hostname);
@GET
@Path("{environmentId}/region/{regionId}/instance/{instanceId}")
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/identifiers/Hostname.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/identifiers/Hostname.java
deleted file mode 100644
index fc46c92189d..00000000000
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/identifiers/Hostname.java
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.vespa.hosted.controller.api.identifiers;
-
-/**
- * @author smorgrav
- */
-public class Hostname extends Identifier {
-
- public Hostname(String hostname) {
- super(hostname);
- }
-
-}
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/aws/MockResourceTagger.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/aws/MockResourceTagger.java
index ecd58bc292c..3ac289a06b1 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/aws/MockResourceTagger.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/aws/MockResourceTagger.java
@@ -8,7 +8,6 @@ import com.yahoo.config.provision.zone.ZoneId;
import java.util.HashMap;
import java.util.Map;
-import java.util.Optional;
/**
* @author olaa
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/aws/ResourceTagger.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/aws/ResourceTagger.java
index 18be3a414a5..de40344c1c9 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/aws/ResourceTagger.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/aws/ResourceTagger.java
@@ -6,7 +6,6 @@ import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.zone.ZoneApi;
import java.util.Map;
-import java.util.Optional;
/**
* @author olaa
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/LoadBalancer.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/LoadBalancer.java
index 015d7dce33b..6199c8c28b9 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/LoadBalancer.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/LoadBalancer.java
@@ -1,9 +1,9 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.controller.api.integration.configserver;
+import ai.vespa.http.DomainName;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ClusterSpec;
-import com.yahoo.config.provision.HostName;
import java.util.Objects;
import java.util.Optional;
@@ -18,11 +18,11 @@ public class LoadBalancer {
private final String id;
private final ApplicationId application;
private final ClusterSpec.Id cluster;
- private final Optional<HostName> hostname;
+ private final Optional<DomainName> hostname;
private final State state;
private final Optional<String> dnsZone;
- public LoadBalancer(String id, ApplicationId application, ClusterSpec.Id cluster, Optional<HostName> hostname, State state,
+ public LoadBalancer(String id, ApplicationId application, ClusterSpec.Id cluster, Optional<DomainName> hostname, State state,
Optional<String> dnsZone) {
this.id = Objects.requireNonNull(id, "id must be non-null");
this.application = Objects.requireNonNull(application, "application must be non-null");
@@ -44,7 +44,7 @@ public class LoadBalancer {
return cluster;
}
- public Optional<HostName> hostname() {
+ public Optional<DomainName> hostname() {
return hostname;
}
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java
index d82b9c97187..c5d3fd1374f 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java
@@ -530,7 +530,7 @@ public class Node {
}
public Builder hostname(String hostname) {
- return hostname(HostName.from(hostname));
+ return hostname(HostName.of(hostname));
}
public Builder hostname(HostName hostname) {
@@ -539,7 +539,7 @@ public class Node {
}
public Builder parentHostname(String parentHostname) {
- return parentHostname(HostName.from(parentHostname));
+ return parentHostname(HostName.of(parentHostname));
}
public Builder parentHostname(HostName parentHostname) {
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/TesterCloud.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/TesterCloud.java
index 0f410ede864..9d6fe07e91c 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/TesterCloud.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/TesterCloud.java
@@ -1,10 +1,11 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.controller.api.integration.deployment;
-import com.yahoo.config.provision.HostName;
+import ai.vespa.http.DomainName;
import com.yahoo.vespa.hosted.controller.api.identifiers.DeploymentId;
import com.yahoo.vespa.hosted.controller.api.integration.LogEntry;
+import java.net.InetAddress;
import java.net.URI;
import java.util.List;
import java.util.Optional;
@@ -32,10 +33,10 @@ public interface TesterCloud {
boolean testerReady(DeploymentId deploymentId);
/** Returns the IP address of the given host name, if any. */
- Optional<String> resolveHostName(HostName hostname);
+ Optional<InetAddress> resolveHostName(DomainName hostname);
/** Returns the host name of the given CNAME, if any. */
- Optional<HostName> resolveCname(HostName hostName);
+ Optional<DomainName> resolveCname(DomainName hostName);
/** Returns the test report as JSON if available */
Optional<TestReport> getTestReport(DeploymentId deploymentId);
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/AliasTarget.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/AliasTarget.java
index eeac395e8e1..04e264651a6 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/AliasTarget.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/AliasTarget.java
@@ -1,7 +1,7 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.controller.api.integration.dns;
-import com.yahoo.config.provision.HostName;
+import ai.vespa.http.DomainName;
import java.util.Objects;
@@ -12,11 +12,11 @@ import java.util.Objects;
*/
public abstract class AliasTarget {
- private final HostName name;
+ private final DomainName name;
private final String dnsZone;
private final String id;
- public AliasTarget(HostName name, String dnsZone, String id) {
+ public AliasTarget(DomainName name, String dnsZone, String id) {
this.name = Objects.requireNonNull(name, "name must be non-null");
this.dnsZone = Objects.requireNonNull(dnsZone, "dnsZone must be non-null");
this.id = Objects.requireNonNull(id, "id must be non-null");
@@ -28,7 +28,7 @@ public abstract class AliasTarget {
}
/** DNS name this points to */
- public final HostName name() {
+ public final DomainName name() {
return name;
}
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/LatencyAliasTarget.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/LatencyAliasTarget.java
index 170cad8cd5b..b8cd1e89cdc 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/LatencyAliasTarget.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/LatencyAliasTarget.java
@@ -1,6 +1,7 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.controller.api.integration.dns;
+import ai.vespa.http.DomainName;
import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.zone.ZoneId;
@@ -15,7 +16,7 @@ public class LatencyAliasTarget extends AliasTarget {
private final ZoneId zone;
- public LatencyAliasTarget(HostName name, String dnsZone, ZoneId zone) {
+ public LatencyAliasTarget(DomainName name, String dnsZone, ZoneId zone) {
super(name, dnsZone, zone.value());
this.zone = Objects.requireNonNull(zone);
}
@@ -59,7 +60,7 @@ public class LatencyAliasTarget extends AliasTarget {
if (!"latency".equals(parts[0])) {
throw new IllegalArgumentException("Unexpected type '" + parts[0] + "'");
}
- return new LatencyAliasTarget(HostName.from(parts[1]), parts[2], ZoneId.from(parts[3]));
+ return new LatencyAliasTarget(HostName.of(parts[1]), parts[2], ZoneId.from(parts[3]));
}
}
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/WeightedAliasTarget.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/WeightedAliasTarget.java
index 963cf74b948..e7a46de75bc 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/WeightedAliasTarget.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/WeightedAliasTarget.java
@@ -1,6 +1,7 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.controller.api.integration.dns;
+import ai.vespa.http.DomainName;
import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.zone.ZoneId;
@@ -18,7 +19,7 @@ public class WeightedAliasTarget extends AliasTarget {
private final long weight;
- public WeightedAliasTarget(HostName name, String dnsZone, ZoneId zone, long weight) {
+ public WeightedAliasTarget(DomainName name, String dnsZone, ZoneId zone, long weight) {
super(name, dnsZone, zone.value());
this.weight = weight;
if (weight < 0) throw new IllegalArgumentException("Weight cannot be negative");
@@ -63,7 +64,7 @@ public class WeightedAliasTarget extends AliasTarget {
if (!"weighted".equals(parts[0])) {
throw new IllegalArgumentException("Unexpected type '" + parts[0] + "'");
}
- return new WeightedAliasTarget(HostName.from(parts[1]), parts[2], ZoneId.from(parts[3]),
+ return new WeightedAliasTarget(HostName.of(parts[1]), parts[2], ZoneId.from(parts[3]),
Long.parseLong(parts[4]));
}
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockTesterCloud.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockTesterCloud.java
index cf6b592b7a5..63c2388b461 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockTesterCloud.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockTesterCloud.java
@@ -1,7 +1,7 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.controller.api.integration.stubs;
-import com.yahoo.config.provision.HostName;
+import ai.vespa.http.DomainName;
import com.yahoo.vespa.hosted.controller.api.identifiers.DeploymentId;
import com.yahoo.vespa.hosted.controller.api.integration.LogEntry;
import com.yahoo.vespa.hosted.controller.api.integration.deployment.TestReport;
@@ -10,7 +10,9 @@ import com.yahoo.vespa.hosted.controller.api.integration.dns.NameService;
import com.yahoo.vespa.hosted.controller.api.integration.dns.Record;
import com.yahoo.vespa.hosted.controller.api.integration.dns.RecordName;
+import java.net.InetAddress;
import java.net.URI;
+import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
@@ -57,15 +59,20 @@ public class MockTesterCloud implements TesterCloud {
}
@Override
- public Optional<String> resolveHostName(HostName hostname) {
- return Optional.of("1.2.3.4");
+ public Optional<InetAddress> resolveHostName(DomainName hostname) {
+ try {
+ return Optional.of(InetAddress.getByAddress(new byte[]{ 1, 2, 3, 4 }));
+ }
+ catch (UnknownHostException e) {
+ throw new IllegalStateException("should not happen");
+ }
}
@Override
- public Optional<HostName> resolveCname(HostName hostName) {
+ public Optional<DomainName> resolveCname(DomainName hostName) {
return nameService.findRecords(Record.Type.CNAME, RecordName.from(hostName.value())).stream()
.findFirst()
- .map(record -> HostName.from(record.data().asString().substring(0, record.data().asString().length() - 1)));
+ .map(record -> DomainName.of(record.data().asString().substring(0, record.data().asString().length() - 1)));
}
@Override
diff --git a/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/integration/dns/AliasTargetTest.java b/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/integration/dns/AliasTargetTest.java
index ff0fd9e460f..35d2ad1ffca 100644
--- a/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/integration/dns/AliasTargetTest.java
+++ b/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/integration/dns/AliasTargetTest.java
@@ -18,8 +18,8 @@ public class AliasTargetTest {
@Test
public void packing() {
List<AliasTarget> tests = List.of(
- new LatencyAliasTarget(HostName.from("foo.example.com"), "dns-zone-1", ZoneId.from("prod.us-north-1")),
- new WeightedAliasTarget(HostName.from("bar.example.com"), "dns-zone-2", ZoneId.from("prod.us-north-2"), 50)
+ new LatencyAliasTarget(HostName.of("foo.example.com"), "dns-zone-1", ZoneId.from("prod.us-north-1")),
+ new WeightedAliasTarget(HostName.of("bar.example.com"), "dns-zone-2", ZoneId.from("prod.us-north-2"), 50)
);
for (var target : tests) {
AliasTarget unpacked = AliasTarget.unpack(target.pack());
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Controller.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Controller.java
index c35e8c5a7ac..d9664fd0475 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Controller.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Controller.java
@@ -283,7 +283,7 @@ public class Controller extends AbstractComponent {
/** Returns the hostname of this controller */
public com.yahoo.config.provision.HostName hostname() {
- return com.yahoo.config.provision.HostName.from(hostnameSupplier.get());
+ return com.yahoo.config.provision.HostName.of(hostnameSupplier.get());
}
public SystemName system() {
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java
index beef090d214..ae61c98cffb 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java
@@ -1,6 +1,7 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.controller.deployment;
+import ai.vespa.http.DomainName;
import com.yahoo.component.Version;
import com.yahoo.config.application.api.DeploymentInstanceSpec;
import com.yahoo.config.application.api.DeploymentSpec;
@@ -23,7 +24,6 @@ import com.yahoo.security.X509CertificateBuilder;
import com.yahoo.security.X509CertificateUtils;
import com.yahoo.text.Text;
import com.yahoo.vespa.flags.FetchVector;
-import com.yahoo.vespa.flags.FlagSource;
import com.yahoo.vespa.flags.Flags;
import com.yahoo.vespa.hosted.controller.Application;
import com.yahoo.vespa.hosted.controller.Controller;
@@ -512,7 +512,7 @@ public class InternalStepRunner implements StepRunner {
return false;
}
for (var endpoint : endpoints.get(zone)) {
- HostName endpointName = HostName.from(endpoint.dnsName());
+ DomainName endpointName = DomainName.of(endpoint.dnsName());
var ipAddress = controller.jobController().cloud().resolveHostName(endpointName);
if (ipAddress.isEmpty()) {
logger.log(INFO, "DNS lookup yielded no IP address for '" + endpointName + "'.");
@@ -533,7 +533,7 @@ public class InternalStepRunner implements StepRunner {
var loadBalancerAddress = controller.jobController().cloud().resolveHostName(policy.canonicalName());
if ( ! loadBalancerAddress.equals(ipAddress)) {
logger.log(INFO, "IP address of CNAME '" + endpointName + "' (" + ipAddress.get() + ") and load balancer '" +
- policy.canonicalName() + "' (" + loadBalancerAddress.orElse("empty") + ") are not equal");
+ policy.canonicalName() + "' (" + loadBalancerAddress.orElse(null) + ") are not equal");
return false;
}
}
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/NodeVersionSerializer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/NodeVersionSerializer.java
index 10ec9dce5f7..0f1f531d589 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/NodeVersionSerializer.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/NodeVersionSerializer.java
@@ -46,7 +46,7 @@ public class NodeVersionSerializer {
public List<NodeVersion> nodeVersionsFromSlime(Inspector array, Version version) {
List<NodeVersion> nodeVersions = new ArrayList<>();
array.traverse((ArrayTraverser) (i, entry) -> {
- var hostname = HostName.from(entry.field(hostnameField).asString());
+ var hostname = HostName.of(entry.field(hostnameField).asString());
var zone = ZoneId.from(entry.field(zoneField).asString());
var wantedVersion = Version.fromString(entry.field(wantedVersionField).asString());
var suspendedAt = SlimeUtils.optionalInstant(entry.field(suspendedAtField));
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/RoutingPolicySerializer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/RoutingPolicySerializer.java
index 17337f823c0..72c16ae0110 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/RoutingPolicySerializer.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/RoutingPolicySerializer.java
@@ -1,9 +1,9 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.controller.persistence;
+import ai.vespa.http.DomainName;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ClusterSpec;
-import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.zone.ZoneId;
import com.yahoo.slime.ArrayTraverser;
import com.yahoo.slime.Cursor;
@@ -83,7 +83,7 @@ public class RoutingPolicySerializer {
ClusterSpec.Id.from(inspect.field(clusterField).asString()),
ZoneId.from(inspect.field(zoneField).asString()));
policies.add(new RoutingPolicy(id,
- HostName.from(inspect.field(canonicalNameField).asString()),
+ DomainName.of(inspect.field(canonicalNameField).asString()),
SlimeUtils.optionalString(inspect.field(dnsZoneField)),
instanceEndpoints,
applicationEndpoints,
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
index 924f7c0b0a5..dcc916cc5a3 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
@@ -53,7 +53,6 @@ import com.yahoo.vespa.hosted.controller.api.application.v4.model.configserverbi
import com.yahoo.vespa.hosted.controller.api.application.v4.model.configserverbindings.RestartAction;
import com.yahoo.vespa.hosted.controller.api.application.v4.model.configserverbindings.ServiceInfo;
import com.yahoo.vespa.hosted.controller.api.identifiers.DeploymentId;
-import com.yahoo.vespa.hosted.controller.api.identifiers.Hostname;
import com.yahoo.vespa.hosted.controller.api.identifiers.TenantId;
import com.yahoo.vespa.hosted.controller.api.integration.aws.TenantRoles;
import com.yahoo.vespa.hosted.controller.api.integration.billing.Quota;
@@ -2053,7 +2052,7 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler {
DeploymentId deploymentId = new DeploymentId(ApplicationId.from(tenantName, applicationName, instanceName),
requireZone(environment, region));
RestartFilter restartFilter = new RestartFilter()
- .withHostName(Optional.ofNullable(request.getProperty("hostname")).map(HostName::from))
+ .withHostName(Optional.ofNullable(request.getProperty("hostname")).map(HostName::of))
.withClusterType(Optional.ofNullable(request.getProperty("clusterType")).map(ClusterSpec.Type::from))
.withClusterId(Optional.ofNullable(request.getProperty("clusterId")).map(ClusterSpec.Id::from));
@@ -2295,7 +2294,7 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler {
try {
node = nodeRepository.getNode(zone, hostname);
} catch (IllegalArgumentException e) {
- throw new NotExistsException(new Hostname(hostname));
+ throw new NotExistsException(hostname);
}
ApplicationId app = ApplicationId.from(tenant, application, instance);
ApplicationId owner = node.owner().orElseThrow(() -> new IllegalArgumentException("Node has no owner"));
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/changemanagement/ChangeManagementApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/changemanagement/ChangeManagementApiHandler.java
index e1fc68974cc..c72d8ceb089 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/changemanagement/ChangeManagementApiHandler.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/changemanagement/ChangeManagementApiHandler.java
@@ -280,7 +280,7 @@ public class ChangeManagementApiHandler extends AuditLoggingRequestHandler {
private Optional<ZoneId> affectedZone(List<String> hosts) {
NodeFilter affectedHosts = NodeFilter.all().hostnames(hosts.stream()
- .map(HostName::from)
+ .map(HostName::of)
.collect(Collectors.toSet()));
for (var zone : getProdZones()) {
var affectedHostsInZone = controller.serviceRegistry().configServer().nodeRepository().list(zone, affectedHosts);
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/routing/RoutingPolicies.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/routing/RoutingPolicies.java
index b98ef717dd3..850a8cab123 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/routing/RoutingPolicies.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/routing/RoutingPolicies.java
@@ -1,9 +1,9 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.controller.routing;
+import ai.vespa.http.DomainName;
import com.yahoo.config.application.api.DeploymentSpec;
import com.yahoo.config.provision.ApplicationId;
-import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.zone.RoutingMethod;
import com.yahoo.config.provision.zone.ZoneId;
import com.yahoo.vespa.curator.Lock;
@@ -215,7 +215,7 @@ public class RoutingPolicies {
}
var weightedTarget = new WeightedAliasTarget(policy.canonicalName(), policy.dnsZone().get(),
policy.id().zone(), weight);
- endpoints.computeIfAbsent(regionEndpoint, (k) -> new RegionEndpoint(new LatencyAliasTarget(HostName.from(regionEndpoint.dnsName()),
+ endpoints.computeIfAbsent(regionEndpoint, (k) -> new RegionEndpoint(new LatencyAliasTarget(DomainName.of(regionEndpoint.dnsName()),
policy.dnsZone().get(),
policy.id().zone())))
.zoneTargets()
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/routing/RoutingPolicy.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/routing/RoutingPolicy.java
index 34736c16a6b..1ccb3205816 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/routing/RoutingPolicy.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/routing/RoutingPolicy.java
@@ -1,8 +1,8 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.controller.routing;
+import ai.vespa.http.DomainName;
import com.google.common.collect.ImmutableSortedSet;
-import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.SystemName;
import com.yahoo.config.provision.zone.RoutingMethod;
import com.yahoo.text.Text;
@@ -27,14 +27,14 @@ import java.util.Set;
public class RoutingPolicy {
private final RoutingPolicyId id;
- private final HostName canonicalName;
+ private final DomainName canonicalName;
private final Optional<String> dnsZone;
private final Set<EndpointId> instanceEndpoints;
private final Set<EndpointId> applicationEndpoints;
private final Status status;
/** DO NOT USE. Public for serialization purposes */
- public RoutingPolicy(RoutingPolicyId id, HostName canonicalName, Optional<String> dnsZone,
+ public RoutingPolicy(RoutingPolicyId id, DomainName canonicalName, Optional<String> dnsZone,
Set<EndpointId> instanceEndpoints, Set<EndpointId> applicationEndpoints, Status status) {
this.id = Objects.requireNonNull(id, "id must be non-null");
this.canonicalName = Objects.requireNonNull(canonicalName, "canonicalName must be non-null");
@@ -50,7 +50,7 @@ public class RoutingPolicy {
}
/** The canonical name for the load balancer this applies to (rhs of a CNAME or ALIAS record) */
- public HostName canonicalName() {
+ public DomainName canonicalName() {
return canonicalName;
}
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/VersionStatus.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/VersionStatus.java
index 3fa440e694e..a2f0948193c 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/VersionStatus.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/VersionStatus.java
@@ -197,7 +197,7 @@ public class VersionStatus {
.add(controller.hostname());
} else {
for (String host : controller.curator().cluster()) {
- HostName hostname = HostName.from(host);
+ HostName hostname = HostName.of(host);
versions.computeIfAbsent(controller.curator().readControllerVersion(hostname), (k) -> new ArrayList<>())
.add(hostname);
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java
index 5ababdd8250..816a7370bcd 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java
@@ -940,19 +940,19 @@ public class ControllerTest {
// The weighted record for zone 2's region
new Record(Record.Type.ALIAS,
RecordName.from("application.tenant.us-east-3-w.vespa.oath.cloud"),
- new WeightedAliasTarget(HostName.from("lb-0--tenant:application:default--prod.us-east-3"),
+ new WeightedAliasTarget(HostName.of("lb-0--tenant.application.default--prod.us-east-3"),
"dns-zone-1", ZoneId.from("prod.us-east-3"), 1).pack()),
// The 'east' global endpoint, pointing to the weighted record for zone 2's region
new Record(Record.Type.ALIAS,
RecordName.from("east.application.tenant.global.vespa.oath.cloud"),
- new LatencyAliasTarget(HostName.from("application.tenant.us-east-3-w.vespa.oath.cloud"),
+ new LatencyAliasTarget(HostName.of("application.tenant.us-east-3-w.vespa.oath.cloud"),
"dns-zone-1", ZoneId.from("prod.us-east-3")).pack()),
// The zone-scoped endpoint pointing to zone 2 with exclusive routing
new Record(Record.Type.CNAME,
RecordName.from("application.tenant.us-east-3.vespa.oath.cloud"),
- RecordData.from("lb-0--tenant:application:default--prod.us-east-3.")));
+ RecordData.from("lb-0--tenant.application.default--prod.us-east-3.")));
assertEquals(expectedRecords, List.copyOf(tester.controllerTester().nameService().records()));
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java
index 75c33952754..b39e59d4420 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java
@@ -239,7 +239,7 @@ public final class ControllerTester {
/** Upgrade controller to given version */
public void upgradeController(Version version, String commitSha, Instant commitDate) {
for (var hostname : controller().curator().cluster()) {
- upgradeController(HostName.from(hostname), version, commitSha, commitDate);
+ upgradeController(HostName.of(hostname), version, commitSha, commitDate);
}
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentContext.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentContext.java
index 86c21839c96..896f5355129 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentContext.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentContext.java
@@ -247,7 +247,7 @@ public class DeploymentContext {
var clusterId = "default-inactive";
var id = new RoutingPolicyId(instanceId, ClusterSpec.Id.from(clusterId), zone);
var policies = new LinkedHashMap<>(tester.controller().routing().policies().read(instanceId).asMap());
- policies.put(id, new RoutingPolicy(id, HostName.from("lb-host"),
+ policies.put(id, new RoutingPolicy(id, HostName.of("lb-host"),
Optional.empty(),
Set.of(EndpointId.of("default")),
Set.of(),
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/dns/NameServiceQueueTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/dns/NameServiceQueueTest.java
index 44bcbcfb4fa..b5fd3d750ef 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/dns/NameServiceQueueTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/dns/NameServiceQueueTest.java
@@ -28,11 +28,11 @@ public class NameServiceQueueTest {
var r1 = new Record(Record.Type.CNAME, RecordName.from("cname.vespa.oath.cloud"), RecordData.from("example.com"));
var r2 = new Record(Record.Type.TXT, RecordName.from("txt.example.com"), RecordData.from("text"));
var r3 = List.of(new Record(Record.Type.ALIAS, RecordName.from("alias.example.com"),
- new LatencyAliasTarget(HostName.from("alias1"),
+ new LatencyAliasTarget(HostName.of("alias1"),
"dns-zone-01",
ZoneId.from("prod", "us-north-1")).pack()),
new Record(Record.Type.ALIAS, RecordName.from("alias.example.com"),
- new LatencyAliasTarget(HostName.from("alias2"),
+ new LatencyAliasTarget(HostName.of("alias2"),
"dns-zone-02",
ZoneId.from("prod", "us-north-2")).pack()));
var req1 = new CreateRecord(r1);
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ConfigServerMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ConfigServerMock.java
index e98ff71884d..fc87f3f8be6 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ConfigServerMock.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ConfigServerMock.java
@@ -159,7 +159,7 @@ public class ConfigServerMock extends AbstractComponent implements ConfigServer
}
public HostName hostFor(ApplicationId application, ZoneId zone) {
- return HostName.from("host-" + application.serializedForm() + "-" + zone.value());
+ return HostName.of("host-" + application.toFullString() + "-" + zone.value());
}
public void bootstrap(List<ZoneId> zones, SystemApplication... applications) {
@@ -176,8 +176,8 @@ public class ConfigServerMock extends AbstractComponent implements ConfigServer
for (SystemApplication application : applications) {
for (int i = 1; i <= 3; i++) {
Node node = Node.builder()
- .hostname(HostName.from("node-" + i + "-" + application.id().application()
- .value() + "-" + zone.value()))
+ .hostname(HostName.of("node-" + i + "-" + application.id().application()
+ .value() + "-" + zone.value()))
.state(Node.State.active)
.type(application.nodeType())
.owner(application.id())
@@ -402,7 +402,7 @@ public class ConfigServerMock extends AbstractComponent implements ConfigServer
putLoadBalancers(id.zoneId(), List.of(new LoadBalancer(UUID.randomUUID().toString(),
id.applicationId(),
cluster,
- Optional.of(HostName.from("lb-0--" + id.applicationId().serializedForm() + "--" + id.zoneId().toString())),
+ Optional.of(HostName.of("lb-0--" + id.applicationId().toFullString() + "--" + id.zoneId().toString())),
LoadBalancer.State.active,
Optional.of("dns-zone-1"))));
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/NodeRepositoryMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/NodeRepositoryMock.java
index 7b67db39350..3f1ca3f9706 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/NodeRepositoryMock.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/NodeRepositoryMock.java
@@ -60,7 +60,7 @@ public class NodeRepositoryMock implements NodeRepository {
@Override
public void deleteNode(ZoneId zone, String hostname) {
require(zone, hostname);
- nodeRepository.get(zone).remove(HostName.from(hostname));
+ nodeRepository.get(zone).remove(HostName.of(hostname));
}
@Override
@@ -246,8 +246,8 @@ public class NodeRepositoryMock implements NodeRepository {
/** Add a fixed set of nodes to given zone */
public void addFixedNodes(ZoneId zone) {
var nodeA = Node.builder()
- .hostname(HostName.from("hostA"))
- .parentHostname(HostName.from("parentHostA"))
+ .hostname(HostName.of("hostA"))
+ .parentHostname(HostName.of("parentHostA"))
.state(Node.State.active)
.type(NodeType.tenant)
.owner(ApplicationId.from("tenant1", "app1", "default"))
@@ -262,8 +262,8 @@ public class NodeRepositoryMock implements NodeRepository {
.exclusiveTo(ApplicationId.from("t1", "a1", "i1"))
.build();
var nodeB = Node.builder()
- .hostname(HostName.from("hostB"))
- .parentHostname(HostName.from("parentHostB"))
+ .hostname(HostName.of("hostB"))
+ .parentHostname(HostName.of("parentHostB"))
.state(Node.State.active)
.type(NodeType.tenant)
.owner(ApplicationId.from("tenant2", "app2", "default"))
@@ -319,7 +319,7 @@ public class NodeRepositoryMock implements NodeRepository {
}
private Node require(ZoneId zone, String hostname) {
- return require(zone, HostName.from(hostname));
+ return require(zone, HostName.of(hostname));
}
private Node require(ZoneId zone, HostName hostname) {
@@ -329,7 +329,7 @@ public class NodeRepositoryMock implements NodeRepository {
}
private void patchNodes(ZoneId zone, String hostname, UnaryOperator<Node> patcher) {
- patchNodes(zone, Optional.of(HostName.from(hostname)), patcher);
+ patchNodes(zone, Optional.of(HostName.of(hostname)), patcher);
}
private void patchNodes(DeploymentId deployment, Optional<HostName> hostname, UnaryOperator<Node> patcher) {
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/CloudEventTrackerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/CloudEventTrackerTest.java
index 8daedc05e96..6ccd307f0d9 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/CloudEventTrackerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/CloudEventTrackerTest.java
@@ -122,7 +122,7 @@ public class CloudEventTrackerTest {
private Node createNode(String hostname, NodeType nodeType) {
return Node.builder()
- .hostname(HostName.from(hostname))
+ .hostname(HostName.of(hostname))
.type(nodeType)
.build();
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/HostInfoUpdaterTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/HostInfoUpdaterTest.java
index a06e15de3c7..890f0b41098 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/HostInfoUpdaterTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/HostInfoUpdaterTest.java
@@ -84,10 +84,10 @@ public class HostInfoUpdaterTest {
// Updates node registered under a different hostname
ZoneId zone = tester.zoneRegistry().zones().controllerUpgraded().all().ids().get(0);
String hostnameSuffix = ".prod." + zone.value();
- Node configNode = Node.builder().hostname(HostName.from("cfg3" + hostnameSuffix))
+ Node configNode = Node.builder().hostname(HostName.of("cfg3" + hostnameSuffix))
.type(NodeType.config)
.build();
- Node configHost = Node.builder().hostname(HostName.from("cfghost3" + hostnameSuffix))
+ Node configHost = Node.builder().hostname(HostName.of("cfghost3" + hostnameSuffix))
.type(NodeType.confighost)
.build();
tester.serviceRegistry().configServer().nodeRepository().putNodes(zone, List.of(configNode, configHost));
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainerTest.java
index 6109890bae3..4d3f94eaa3d 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainerTest.java
@@ -135,8 +135,8 @@ public class ResourceMeterMaintainerTest {
Node.State.parked,
Node.State.active)
.map(state -> Node.builder()
- .hostname(HostName.from("host" + state))
- .parentHostname(HostName.from("parenthost" + state))
+ .hostname(HostName.of("host" + state))
+ .parentHostname(HostName.of("parenthost" + state))
.state(state)
.type(NodeType.tenant)
.owner(ApplicationId.from("tenant1", "app1", "default"))
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceTagMaintainerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceTagMaintainerTest.java
index f58911a6114..1a6976034c5 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceTagMaintainerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceTagMaintainerTest.java
@@ -36,8 +36,8 @@ public class ResourceTagMaintainerTest {
resourceTagMaintainer.maintain();
assertEquals(2, mockResourceTagger.getValues().size());
Map<HostName, ApplicationId> applicationForHost = mockResourceTagger.getValues().get(ZoneId.from("prod.region-2"));
- assertEquals(ApplicationId.from("t1", "a1", "i1"), applicationForHost.get(HostName.from("parentHostA.prod.region-2")));
- assertEquals(SHARED_HOST_APPLICATION, applicationForHost.get(HostName.from("parentHostB.prod.region-2")));
+ assertEquals(ApplicationId.from("t1", "a1", "i1"), applicationForHost.get(HostName.of("parentHostA.prod.region-2")));
+ assertEquals(SHARED_HOST_APPLICATION, applicationForHost.get(HostName.of("parentHostB.prod.region-2")));
}
private void setUpZones() {
@@ -51,19 +51,19 @@ public class ResourceTagMaintainerTest {
public void setNodes(ZoneId zone) {
var hostA = Node.builder()
- .hostname(HostName.from("parentHostA." + zone.value()))
+ .hostname(HostName.of("parentHostA." + zone.value()))
.type(NodeType.host)
.owner(ApplicationId.from(SystemApplication.TENANT.value(), "tenant-host", "default"))
.exclusiveTo(ApplicationId.from("t1", "a1", "i1"))
.build();
var nodeA = Node.builder()
- .hostname(HostName.from("hostA." + zone.value()))
+ .hostname(HostName.of("hostA." + zone.value()))
.type(NodeType.tenant)
- .parentHostname(HostName.from("parentHostA." + zone.value()))
+ .parentHostname(HostName.of("parentHostA." + zone.value()))
.owner(ApplicationId.from("tenant1", "app1", "default"))
.build();
var hostB = Node.builder()
- .hostname(HostName.from("parentHostB." + zone.value()))
+ .hostname(HostName.of("parentHostB." + zone.value()))
.type(NodeType.host)
.owner(ApplicationId.from(SystemApplication.TENANT.value(), "tenant-host", "default"))
.build();
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/SystemRoutingPolicyMaintainerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/SystemRoutingPolicyMaintainerTest.java
index 0dbe31d921b..8b2bfe8ee95 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/SystemRoutingPolicyMaintainerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/SystemRoutingPolicyMaintainerTest.java
@@ -35,7 +35,7 @@ public class SystemRoutingPolicyMaintainerTest {
tester.configServer().putLoadBalancers(zone, List.of(new LoadBalancer("lb1",
SystemApplication.configServer.id(),
ClusterSpec.Id.from("config"),
- Optional.of(HostName.from("lb1.example.com")),
+ Optional.of(HostName.of("lb1.example.com")),
LoadBalancer.State.active,
Optional.of("dns-zone-1"))));
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/VcmrMaintainerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/VcmrMaintainerTest.java
index 7f369d21d3a..e7a6c3ea3c3 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/VcmrMaintainerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/VcmrMaintainerTest.java
@@ -37,9 +37,9 @@ public class VcmrMaintainerTest {
private NodeRepositoryMock nodeRepo;
private final ZoneId zoneId = ZoneId.from("prod.us-east-3");
private final ZoneId zone2 = ZoneId.from("prod.us-west-1");
- private final HostName host1 = HostName.from("host1");
- private final HostName host2 = HostName.from("host2");
- private final HostName host3 = HostName.from("host3");
+ private final HostName host1 = HostName.of("host1");
+ private final HostName host2 = HostName.of("host2");
+ private final HostName host3 = HostName.of("host3");
private final String changeRequestId = "id123";
@Before
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/NameServiceQueueSerializerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/NameServiceQueueSerializerTest.java
index 4ef09bbfce0..5ecc22ffc5e 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/NameServiceQueueSerializerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/NameServiceQueueSerializerTest.java
@@ -32,11 +32,11 @@ public class NameServiceQueueSerializerTest {
new CreateRecord(record1),
new CreateRecords(List.of(record2)),
new CreateRecords(List.of(new Record(Record.Type.ALIAS, RecordName.from("alias.example.com"),
- new LatencyAliasTarget(HostName.from("alias1"),
+ new LatencyAliasTarget(HostName.of("alias1"),
"dns-zone-01",
ZoneId.from("prod", "us-north-1")).pack()),
new Record(Record.Type.ALIAS, RecordName.from("alias.example.com"),
- new LatencyAliasTarget(HostName.from("alias2"),
+ new LatencyAliasTarget(HostName.of("alias2"),
"dns-zone-02",
ZoneId.from("prod", "us-north-2")).pack()))
),
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/OsVersionStatusSerializerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/OsVersionStatusSerializerTest.java
index 482303a0e49..d50c071d98e 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/OsVersionStatusSerializerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/OsVersionStatusSerializerTest.java
@@ -30,12 +30,12 @@ public class OsVersionStatusSerializerTest {
Map<OsVersion, List<NodeVersion>> versions = new LinkedHashMap<>();
versions.put(new OsVersion(version1, CloudName.defaultName()), List.of(
- new NodeVersion(HostName.from("node1"), ZoneId.from("prod", "us-west"), version1, version2, Optional.of(Instant.ofEpochMilli(11))),
- new NodeVersion(HostName.from("node2"), ZoneId.from("prod", "us-east"), version1, version2, Optional.of(Instant.ofEpochMilli(22)))
+ new NodeVersion(HostName.of("node1"), ZoneId.from("prod", "us-west"), version1, version2, Optional.of(Instant.ofEpochMilli(11))),
+ new NodeVersion(HostName.of("node2"), ZoneId.from("prod", "us-east"), version1, version2, Optional.of(Instant.ofEpochMilli(22)))
));
versions.put(new OsVersion(version2, CloudName.defaultName()), List.of(
- new NodeVersion(HostName.from("node3"), ZoneId.from("prod", "us-west"), version2, version2, Optional.of(Instant.ofEpochMilli(33))),
- new NodeVersion(HostName.from("node4"), ZoneId.from("prod", "us-east"), version2, version2, Optional.of(Instant.ofEpochMilli(44)))
+ new NodeVersion(HostName.of("node3"), ZoneId.from("prod", "us-west"), version2, version2, Optional.of(Instant.ofEpochMilli(33))),
+ new NodeVersion(HostName.of("node4"), ZoneId.from("prod", "us-east"), version2, version2, Optional.of(Instant.ofEpochMilli(44)))
));
OsVersionStatusSerializer serializer = new OsVersionStatusSerializer(new OsVersionSerializer(), new NodeVersionSerializer());
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/RoutingPolicySerializerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/RoutingPolicySerializerTest.java
index 422188420bd..2e8ba84d4ff 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/RoutingPolicySerializerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/RoutingPolicySerializerTest.java
@@ -38,13 +38,13 @@ public class RoutingPolicySerializerTest {
ClusterSpec.Id.from("my-cluster2"),
ZoneId.from("prod", "us-north-2"));
var policies = List.of(new RoutingPolicy(id1,
- HostName.from("long-and-ugly-name"),
+ HostName.of("long-and-ugly-name"),
Optional.of("zone1"),
instanceEndpoints,
applicationEndpoints,
new RoutingPolicy.Status(true, RoutingStatus.DEFAULT)),
new RoutingPolicy(id2,
- HostName.from("long-and-ugly-name-2"),
+ HostName.of("long-and-ugly-name-2"),
Optional.empty(),
instanceEndpoints,
Set.of(),
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/VersionStatusSerializerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/VersionStatusSerializerTest.java
index e202d4a687d..73cfc6ad2f3 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/VersionStatusSerializerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/VersionStatusSerializerTest.java
@@ -55,7 +55,7 @@ public class VersionStatusSerializerTest {
private static List<NodeVersion> nodeVersions(Version version, Version wantedVersion, String... hostnames) {
var nodeVersions = new ArrayList<NodeVersion>();
for (var hostname : hostnames) {
- nodeVersions.add(new NodeVersion(HostName.from(hostname), ZoneId.from("prod", "us-north-1"), version, wantedVersion, Optional.empty()));
+ nodeVersions.add(new NodeVersion(HostName.of(hostname), ZoneId.from("prod", "us-north-1"), version, wantedVersion, Optional.empty()));
}
return nodeVersions;
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/proxy/ProxyRequestTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/proxy/ProxyRequestTest.java
index 5827ef676d7..6b07fea0187 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/proxy/ProxyRequestTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/proxy/ProxyRequestTest.java
@@ -19,9 +19,9 @@ public class ProxyRequestTest {
@Test
public void testBadUri() {
- assertThrows("Request path '/path' does not end with proxy path '/zone/v2/'",
- IllegalArgumentException.class,
- () -> testRequest("http://domain.tld/path", "/zone/v2/"));
+ assertEquals("Request path '/path' does not end with proxy path '/zone/v2/'",
+ assertThrows(IllegalArgumentException.class,
+ () -> testRequest("http://domain.tld/path", "/zone/v2/")).getMessage());
}
@Test
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java
index 67b201bdc9d..52da2fadf0c 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java
@@ -634,13 +634,13 @@ public class ApplicationApiTest extends ControllerContainerTest {
"{\"enabled\":true,\"clusters\":[{\"name\":\"cluster\",\"pending\":[{\"type\":\"type\",\"requiredGeneration\":100}],\"ready\":[{\"type\":\"type\",\"readyAtMillis\":345,\"startedAtMillis\":456,\"endedAtMillis\":567,\"state\":\"failed\",\"message\":\"(#`д´)ノ\",\"progress\":0.1,\"speed\":1.0}]}]}");
// POST to request a service dump
- tester.assertResponse(request("/application/v4/tenant/tenant1/application/application1/instance/instance1/environment/prod/region/us-central-1/node/host-tenant1:application1:instance1-prod.us-central-1/service-dump", POST)
+ tester.assertResponse(request("/application/v4/tenant/tenant1/application/application1/instance/instance1/environment/prod/region/us-central-1/node/host-tenant1.application1.instance1-prod.us-central-1/service-dump", POST)
.userIdentity(HOSTED_VESPA_OPERATOR)
.data("{\"configId\":\"default/container.1\",\"artifacts\":[\"jvm-dump\"],\"dumpOptions\":{\"duration\":30}}"),
"{\"message\":\"Request created\"}");
// GET to get status of service dump
- tester.assertResponse(request("/application/v4/tenant/tenant1/application/application1/instance/instance1/environment/prod/region/us-central-1/node/host-tenant1:application1:instance1-prod.us-central-1/service-dump", GET)
+ tester.assertResponse(request("/application/v4/tenant/tenant1/application/application1/instance/instance1/environment/prod/region/us-central-1/node/host-tenant1.application1.instance1-prod.us-central-1/service-dump", GET)
.userIdentity(HOSTED_VESPA_OPERATOR),
"{\"createdMillis\":" + tester.controller().clock().millis() + ",\"configId\":\"default/container.1\"" +
",\"artifacts\":[\"jvm-dump\"],\"dumpOptions\":{\"duration\":30}}");
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-nodes.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-nodes.json
index 422c8c122fa..88a92bf7810 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-nodes.json
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-nodes.json
@@ -1,7 +1,7 @@
{
"nodes": [
{
- "hostname": "host-tenant1:application1:instance1-prod.us-central-1",
+ "hostname": "host-tenant1.application1.instance1-prod.us-central-1",
"state": "active",
"orchestration": "unorchestrated",
"version": "6.1",
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/dev-us-east-1-log-first-part.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/dev-us-east-1-log-first-part.json
index 3ef993c6589..bfaa4d5c813 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/dev-us-east-1-log-first-part.json
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/dev-us-east-1-log-first-part.json
@@ -28,7 +28,7 @@
{
"at": 0,
"type": "info",
- "message": "host-tenant:application:default-dev.us-east-1: unorchestrated"
+ "message": "host-tenant.application.default-dev.us-east-1: unorchestrated"
},
{
"at": 0,
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/staging-test-log.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/staging-test-log.json
index 6b1d48f4a08..7c1f7223e9e 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/staging-test-log.json
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/staging-test-log.json
@@ -18,7 +18,7 @@
{
"at": 14503000,
"type": "info",
- "message": "host-tenant:application:default-t-staging.us-east-3: unorchestrated"
+ "message": "host-tenant.application.default-t-staging.us-east-3: unorchestrated"
},
{
"at": 14503000,
@@ -33,7 +33,7 @@
{
"at": 14503000,
"type": "info",
- "message": "host-tenant:application:default-t-staging.us-east-3: unorchestrated"
+ "message": "host-tenant.application.default-t-staging.us-east-3: unorchestrated"
},
{
"at": 14503000,
@@ -48,7 +48,7 @@
{
"at": 14503000,
"type": "info",
- "message": "host-tenant:application:default-t-staging.us-east-3: unorchestrated"
+ "message": "host-tenant.application.default-t-staging.us-east-3: unorchestrated"
},
{
"at": 14503000,
@@ -63,7 +63,7 @@
{
"at": 14503000,
"type": "info",
- "message": "host-tenant:application:default-t-staging.us-east-3: unorchestrated"
+ "message": "host-tenant.application.default-t-staging.us-east-3: unorchestrated"
},
{
"at": 14503000,
@@ -102,7 +102,7 @@
{
"at": 14503000,
"type": "info",
- "message": "host-tenant:application:default-staging.us-east-3: unorchestrated"
+ "message": "host-tenant.application.default-staging.us-east-3: unorchestrated"
},
{
"at": 14503000,
@@ -127,7 +127,7 @@
{
"at": 14503000,
"type": "debug",
- "message": "host-tenant:application:default-staging.us-east-3: unorchestrated"
+ "message": "host-tenant.application.default-staging.us-east-3: unorchestrated"
},
{
"at": 14503000,
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/system-test-details.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/system-test-details.json
index 377b8c6ed69..e830f96bbba 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/system-test-details.json
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/system-test-details.json
@@ -23,7 +23,7 @@
{
"at": "(ignore)",
"type": "info",
- "message": "host-tenant1:application1:instance1-t-test.us-east-1: unorchestrated"
+ "message": "host-tenant1.application1.instance1-t-test.us-east-1: unorchestrated"
},
{
"at": "(ignore)",
@@ -38,7 +38,7 @@
{
"at": "(ignore)",
"type": "info",
- "message": "host-tenant1:application1:instance1-t-test.us-east-1: unorchestrated"
+ "message": "host-tenant1.application1.instance1-t-test.us-east-1: unorchestrated"
},
{
"at": "(ignore)",
@@ -53,7 +53,7 @@
{
"at": "(ignore)",
"type": "info",
- "message": "host-tenant1:application1:instance1-t-test.us-east-1: unorchestrated"
+ "message": "host-tenant1.application1.instance1-t-test.us-east-1: unorchestrated"
},
{
"at": "(ignore)",
@@ -68,7 +68,7 @@
{
"at": "(ignore)",
"type": "info",
- "message": "host-tenant1:application1:instance1-t-test.us-east-1: unorchestrated"
+ "message": "host-tenant1.application1.instance1-t-test.us-east-1: unorchestrated"
},
{
"at": "(ignore)",
@@ -83,7 +83,7 @@
{
"at": "(ignore)",
"type": "info",
- "message": "host-tenant1:application1:instance1-t-test.us-east-1: unorchestrated"
+ "message": "host-tenant1.application1.instance1-t-test.us-east-1: unorchestrated"
},
{
"at": "(ignore)",
@@ -122,7 +122,7 @@
{
"at": "(ignore)",
"type": "info",
- "message": "host-tenant1:application1:instance1-test.us-east-1: unorchestrated"
+ "message": "host-tenant1.application1.instance1-test.us-east-1: unorchestrated"
},
{
"at": "(ignore)",
@@ -147,7 +147,7 @@
{
"at": "(ignore)",
"type": "debug",
- "message": "host-tenant1:application1:instance1-test.us-east-1: unorchestrated"
+ "message": "host-tenant1.application1.instance1-test.us-east-1: unorchestrated"
},
{
"at": "(ignore)",
@@ -172,7 +172,7 @@
{
"at": "(ignore)",
"type": "debug",
- "message": "host-tenant1:application1:instance1-test.us-east-1: unorchestrated"
+ "message": "host-tenant1.application1.instance1-test.us-east-1: unorchestrated"
},
{
"at": "(ignore)",
@@ -197,7 +197,7 @@
{
"at": "(ignore)",
"type": "debug",
- "message": "host-tenant1:application1:instance1-test.us-east-1: unorchestrated"
+ "message": "host-tenant1.application1.instance1-test.us-east-1: unorchestrated"
},
{
"at": "(ignore)",
@@ -222,7 +222,7 @@
{
"at": "(ignore)",
"type": "debug",
- "message": "host-tenant1:application1:instance1-test.us-east-1: unorchestrated"
+ "message": "host-tenant1.application1.instance1-test.us-east-1: unorchestrated"
},
{
"at": "(ignore)",
@@ -247,7 +247,7 @@
{
"at": "(ignore)",
"type": "debug",
- "message": "host-tenant1:application1:instance1-test.us-east-1: unorchestrated"
+ "message": "host-tenant1.application1.instance1-test.us-east-1: unorchestrated"
},
{
"at": "(ignore)",
@@ -272,7 +272,7 @@
{
"at": "(ignore)",
"type": "debug",
- "message": "host-tenant1:application1:instance1-test.us-east-1: unorchestrated"
+ "message": "host-tenant1.application1.instance1-test.us-east-1: unorchestrated"
},
{
"at": "(ignore)",
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/system-test-log.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/system-test-log.json
index f675825c3b6..bfb5d8e6cbc 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/system-test-log.json
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/system-test-log.json
@@ -18,7 +18,7 @@
{
"at": 0,
"type": "info",
- "message": "host-tenant:application:default-t-test.us-east-1: unorchestrated"
+ "message": "host-tenant.application.default-t-test.us-east-1: unorchestrated"
},
{
"at": 0,
@@ -33,7 +33,7 @@
{
"at": 0,
"type": "info",
- "message": "host-tenant:application:default-t-test.us-east-1: unorchestrated"
+ "message": "host-tenant.application.default-t-test.us-east-1: unorchestrated"
},
{
"at": 0,
@@ -48,7 +48,7 @@
{
"at": 0,
"type": "info",
- "message": "host-tenant:application:default-t-test.us-east-1: unorchestrated"
+ "message": "host-tenant.application.default-t-test.us-east-1: unorchestrated"
},
{
"at": 0,
@@ -63,7 +63,7 @@
{
"at": 0,
"type": "info",
- "message": "host-tenant:application:default-t-test.us-east-1: unorchestrated"
+ "message": "host-tenant.application.default-t-test.us-east-1: unorchestrated"
},
{
"at": 0,
@@ -78,7 +78,7 @@
{
"at": 0,
"type": "info",
- "message": "host-tenant:application:default-t-test.us-east-1: unorchestrated"
+ "message": "host-tenant.application.default-t-test.us-east-1: unorchestrated"
},
{
"at": 0,
@@ -117,7 +117,7 @@
{
"at": 0,
"type": "info",
- "message": "host-tenant:application:default-test.us-east-1: unorchestrated"
+ "message": "host-tenant.application.default-test.us-east-1: unorchestrated"
},
{
"at": 0,
@@ -142,7 +142,7 @@
{
"at": 0,
"type": "debug",
- "message": "host-tenant:application:default-test.us-east-1: unorchestrated"
+ "message": "host-tenant.application.default-test.us-east-1: unorchestrated"
},
{
"at": 0,
@@ -167,7 +167,7 @@
{
"at": 0,
"type": "debug",
- "message": "host-tenant:application:default-test.us-east-1: unorchestrated"
+ "message": "host-tenant.application.default-test.us-east-1: unorchestrated"
},
{
"at": 0,
@@ -192,7 +192,7 @@
{
"at": 0,
"type": "debug",
- "message": "host-tenant:application:default-test.us-east-1: unorchestrated"
+ "message": "host-tenant.application.default-test.us-east-1: unorchestrated"
},
{
"at": 0,
@@ -217,7 +217,7 @@
{
"at": 0,
"type": "debug",
- "message": "host-tenant:application:default-test.us-east-1: unorchestrated"
+ "message": "host-tenant.application.default-test.us-east-1: unorchestrated"
},
{
"at": 0,
@@ -242,7 +242,7 @@
{
"at": 0,
"type": "debug",
- "message": "host-tenant:application:default-test.us-east-1: unorchestrated"
+ "message": "host-tenant.application.default-test.us-east-1: unorchestrated"
},
{
"at": 0,
@@ -267,7 +267,7 @@
{
"at": 0,
"type": "debug",
- "message": "host-tenant:application:default-test.us-east-1: unorchestrated"
+ "message": "host-tenant.application.default-test.us-east-1: unorchestrated"
},
{
"at": 0,
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java
index ca0db13b3d1..53da8c515a7 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java
@@ -97,8 +97,8 @@ public class DeploymentApiTest extends ControllerContainerTest {
version.isControllerVersion(),
version.isSystemVersion(),
version.isReleased(),
- List.of(new NodeVersion(HostName.from("config1.test"), ZoneId.defaultId(), version.versionNumber(), version.versionNumber(), Optional.empty()),
- new NodeVersion(HostName.from("config2.test"), ZoneId.defaultId(), version.versionNumber(), version.versionNumber(), Optional.empty())),
+ List.of(new NodeVersion(HostName.of("config1.test"), ZoneId.defaultId(), version.versionNumber(), version.versionNumber(), Optional.empty()),
+ new NodeVersion(HostName.of("config2.test"), ZoneId.defaultId(), version.versionNumber(), version.versionNumber(), Optional.empty())),
version.confidence()
);
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/routing/RoutingPoliciesTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/routing/RoutingPoliciesTest.java
index 1919de33e8b..83b6f05c0b0 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/routing/RoutingPoliciesTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/routing/RoutingPoliciesTest.java
@@ -453,7 +453,7 @@ public class RoutingPoliciesTest {
tester.controllerTester().configServer().removeLoadBalancers(context.instanceId(), zone1);
// Load balancer for the same application is provisioned again, but with a different hostname
- var newHostname = HostName.from("new-hostname");
+ var newHostname = HostName.of("new-hostname");
var loadBalancer = new LoadBalancer("LB-0-Z-" + zone1.value(),
context.instanceId(),
ClusterSpec.Id.from("c0"),
@@ -708,7 +708,7 @@ public class RoutingPoliciesTest {
List<Record> records = tester.controllerTester().nameService().findRecords(Record.Type.CNAME, name);
assertEquals(1, records.size());
- assertEquals(RecordData.from("lb-0--hosted-vespa:zone-config-servers:default--prod.us-west-1."),
+ assertEquals(RecordData.from("lb-0--hosted-vespa.zone-config-servers.default--prod.us-west-1."),
records.get(0).data());
}
@@ -859,10 +859,10 @@ public class RoutingPoliciesTest {
for (int i = 0; i < count; i++) {
HostName lbHostname;
if (shared) {
- lbHostname = HostName.from("shared-lb--" + zone.value());
+ lbHostname = HostName.of("shared-lb--" + zone.value());
} else {
- lbHostname = HostName.from("lb-" + i + "--" + application.serializedForm() +
- "--" + zone.value());
+ lbHostname = HostName.of("lb-" + i + "--" + application.toFullString() +
+ "--" + zone.value());
}
loadBalancers.add(
new LoadBalancer("LB-" + i + "-Z-" + zone.value(),
@@ -985,7 +985,7 @@ public class RoutingPoliciesTest {
deploymentsByDnsName.forEach((dnsName, deployments) -> {
Set<String> weightedTargets = deployments.stream()
.map(d -> "weighted/lb-" + loadBalancerId + "--" +
- d.applicationId().serializedForm() + "--" + d.zoneId().value() +
+ d.applicationId().toFullString() + "--" + d.zoneId().value() +
"/dns-zone-1/" + d.zoneId().value() + "/" + deploymentWeights.get(d))
.collect(Collectors.toSet());
assertEquals(dnsName + " has expected targets", weightedTargets, aliasDataOf(dnsName));
@@ -1009,7 +1009,7 @@ public class RoutingPoliciesTest {
zonesByRegionEndpoint.forEach((regionEndpoint, zonesInRegion) -> {
Set<String> weightedTargets = zonesInRegion.stream()
.map(z -> "weighted/lb-" + loadBalancerId + "--" +
- instance.serializedForm() + "--" + z.value() +
+ instance.toFullString() + "--" + z.value() +
"/dns-zone-1/" + z.value() + "/" + zoneWeights.get(z))
.collect(Collectors.toSet());
assertEquals("Region endpoint " + regionEndpoint + " points to load balancer",
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/versions/VersionStatusTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/versions/VersionStatusTest.java
index ec8d5c35049..7ba69438816 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/versions/VersionStatusTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/versions/VersionStatusTest.java
@@ -82,9 +82,9 @@ public class VersionStatusTest {
@Test
public void testControllerVersionIsVersionOfOldestController() {
- HostName controller1 = HostName.from("controller-1");
- HostName controller2 = HostName.from("controller-2");
- HostName controller3 = HostName.from("controller-3");
+ HostName controller1 = HostName.of("controller-1");
+ HostName controller2 = HostName.of("controller-2");
+ HostName controller3 = HostName.of("controller-3");
MockCuratorDb db = new MockCuratorDb(Stream.of(controller1, controller2, controller3)
.map(hostName -> hostName.value() + ":2222")
.collect(Collectors.joining(",")));
@@ -491,9 +491,9 @@ public class VersionStatusTest {
@Test
public void testCommitDetailsPreservation() {
- HostName controller1 = HostName.from("controller-1");
- HostName controller2 = HostName.from("controller-2");
- HostName controller3 = HostName.from("controller-3");
+ HostName controller1 = HostName.of("controller-1");
+ HostName controller2 = HostName.of("controller-2");
+ HostName controller3 = HostName.of("controller-3");
MockCuratorDb db = new MockCuratorDb(Stream.of(controller1, controller2, controller3)
.map(hostName -> hostName.value() + ":2222")
.collect(Collectors.joining(",")));
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContext.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContext.java
index 2713ff45ae8..d884c608ead 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContext.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContext.java
@@ -27,7 +27,7 @@ public interface NodeAgentContext extends TaskContext {
/** @return hostname of the linux container this context applies to */
default HostName hostname() {
- return HostName.from(node().hostname());
+ return HostName.of(node().hostname());
}
default NodeType nodeType() {
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integration/ContainerTester.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integration/ContainerTester.java
index fd93252f3b5..415a8b6f438 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integration/ContainerTester.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integration/ContainerTester.java
@@ -51,7 +51,7 @@ import static org.mockito.Mockito.when;
public class ContainerTester implements AutoCloseable {
private static final Logger log = Logger.getLogger(ContainerTester.class.getName());
- static final HostName HOST_HOSTNAME = HostName.from("host.test.yahoo.com");
+ static final HostName HOST_HOSTNAME = HostName.of("host.test.yahoo.com");
private final Thread loopThread;
private final Phaser phaser = new Phaser(1);
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdaterTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdaterTest.java
index 5436f84f467..995712c6dda 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdaterTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdaterTest.java
@@ -47,7 +47,7 @@ public class NodeAdminStateUpdaterTest {
private final NodeRepoMock nodeRepository = spy(new NodeRepoMock());
private final Orchestrator orchestrator = mock(Orchestrator.class);
private final NodeAdmin nodeAdmin = mock(NodeAdmin.class);
- private final HostName hostHostname = HostName.from("basehost1.test.yahoo.com");
+ private final HostName hostHostname = HostName.of("basehost1.test.yahoo.com");
private final NodeAdminStateUpdater updater = spy(new NodeAdminStateUpdater(
nodeAgentContextFactory, nodeRepository, orchestrator, nodeAdmin, hostHostname));
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerInstance.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerInstance.java
index 4c6a46f013e..1548038e19d 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerInstance.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerInstance.java
@@ -1,8 +1,8 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.provision.lb;
+import ai.vespa.http.DomainName;
import com.google.common.collect.ImmutableSortedSet;
-import com.yahoo.config.provision.HostName;
import java.util.Objects;
import java.util.Optional;
@@ -16,13 +16,13 @@ import java.util.Set;
*/
public class LoadBalancerInstance {
- private final HostName hostname;
+ private final DomainName hostname;
private final Optional<DnsZone> dnsZone;
private final Set<Integer> ports;
private final Set<String> networks;
private final Set<Real> reals;
- public LoadBalancerInstance(HostName hostname, Optional<DnsZone> dnsZone, Set<Integer> ports, Set<String> networks,
+ public LoadBalancerInstance(DomainName hostname, Optional<DnsZone> dnsZone, Set<Integer> ports, Set<String> networks,
Set<Real> reals) {
this.hostname = Objects.requireNonNull(hostname, "hostname must be non-null");
this.dnsZone = Objects.requireNonNull(dnsZone, "dnsZone must be non-null");
@@ -32,7 +32,7 @@ public class LoadBalancerInstance {
}
/** Fully-qualified domain name of this load balancer. This hostname can be used for query and feed */
- public HostName hostname() {
+ public DomainName hostname() {
return hostname;
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerServiceMock.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerServiceMock.java
index 51f59bc3ea0..7da28bff930 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerServiceMock.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerServiceMock.java
@@ -1,10 +1,10 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.provision.lb;
+import ai.vespa.http.DomainName;
import com.google.common.collect.ImmutableSet;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ClusterSpec;
-import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.NodeType;
import java.util.Collections;
@@ -56,7 +56,7 @@ public class LoadBalancerServiceMock implements LoadBalancerService {
throw new IllegalArgumentException("Refusing to remove all reals from load balancer " + id);
}
var instance = new LoadBalancerInstance(
- HostName.from("lb-" + spec.application().toShortString() + "-" + spec.cluster().value()),
+ DomainName.of("lb-" + spec.application().toShortString() + "-" + spec.cluster().value()),
Optional.of(new DnsZone("zone-id-1")),
Collections.singleton(4443),
ImmutableSet.of("10.2.3.0/24", "10.4.5.0/24"),
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/Real.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/Real.java
index b8ebf808ae7..fc8f665c8b4 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/Real.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/Real.java
@@ -1,8 +1,8 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.provision.lb;
+import ai.vespa.http.DomainName;
import com.google.common.net.InetAddresses;
-import com.yahoo.config.provision.HostName;
import java.util.Objects;
@@ -15,15 +15,15 @@ public class Real implements Comparable<Real> {
public static final int defaultPort = 4443;
- private final HostName hostname;
+ private final DomainName hostname;
private final String ipAddress;
private final int port;
- public Real(HostName hostname, String ipAddress) {
+ public Real(DomainName hostname, String ipAddress) {
this(hostname, ipAddress, defaultPort);
}
- public Real(HostName hostname, String ipAddress, int port) {
+ public Real(DomainName hostname, String ipAddress, int port) {
this.hostname = hostname;
this.ipAddress = requireIpAddress(ipAddress);
if (port < 1 || port > 65535) {
@@ -33,7 +33,7 @@ public class Real implements Comparable<Real> {
}
/** The hostname of this real */
- public HostName hostname() {
+ public DomainName hostname() {
return hostname;
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/SharedLoadBalancerService.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/SharedLoadBalancerService.java
index 1345dfb8e65..fa9db9cd800 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/SharedLoadBalancerService.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/SharedLoadBalancerService.java
@@ -1,9 +1,9 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.provision.lb;
+import ai.vespa.http.DomainName;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ClusterSpec;
-import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.NodeType;
import java.util.Objects;
@@ -29,7 +29,7 @@ public class SharedLoadBalancerService implements LoadBalancerService {
@Override
public LoadBalancerInstance create(LoadBalancerSpec spec, boolean force) {
- return new LoadBalancerInstance(HostName.from(vipHostname),
+ return new LoadBalancerInstance(DomainName.of(vipHostname),
Optional.empty(),
Set.of(4443),
Set.of(),
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabase.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabase.java
index 659636de581..1e745b61eaa 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabase.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabase.java
@@ -63,7 +63,7 @@ public class CuratorDatabase {
return Arrays.stream(curator.zooKeeperEnsembleConnectionSpec().split(","))
.filter(hostAndPort -> !hostAndPort.isEmpty())
.map(hostAndPort -> hostAndPort.split(":")[0])
- .map(HostName::from)
+ .map(HostName::of)
.collect(Collectors.toList());
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/LoadBalancerSerializer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/LoadBalancerSerializer.java
index c361c9183d2..d953ab5b543 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/LoadBalancerSerializer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/LoadBalancerSerializer.java
@@ -1,7 +1,7 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.provision.persistence;
-import com.yahoo.config.provision.HostName;
+import ai.vespa.http.DomainName;
import com.yahoo.slime.ArrayTraverser;
import com.yahoo.slime.Cursor;
import com.yahoo.slime.Inspector;
@@ -78,7 +78,7 @@ public class LoadBalancerSerializer {
Set<Real> reals = new LinkedHashSet<>();
object.field(realsField).traverse((ArrayTraverser) (i, realObject) -> {
- reals.add(new Real(HostName.from(realObject.field(hostnameField).asString()),
+ reals.add(new Real(DomainName.of(realObject.field(hostnameField).asString()),
realObject.field(ipAddressField).asString(),
(int) realObject.field(portField).asLong()));
@@ -90,7 +90,7 @@ public class LoadBalancerSerializer {
Set<String> networks = new LinkedHashSet<>();
object.field(networksField).traverse((ArrayTraverser) (i, network) -> networks.add(network.asString()));
- Optional<HostName> hostname = optionalString(object.field(hostnameField), Function.identity()).filter(s -> !s.isEmpty()).map(HostName::from);
+ Optional<DomainName> hostname = optionalString(object.field(hostnameField), Function.identity()).filter(s -> !s.isEmpty()).map(DomainName::of);
Optional<DnsZone> dnsZone = optionalString(object.field(dnsZoneField), DnsZone::new);
Optional<LoadBalancerInstance> instance = hostname.map(h -> new LoadBalancerInstance(h, dnsZone, ports,
networks, reals));
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/InfraDeployerImpl.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/InfraDeployerImpl.java
index b90851dd639..9a53370faf5 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/InfraDeployerImpl.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/InfraDeployerImpl.java
@@ -116,7 +116,7 @@ public class InfraDeployerImpl implements InfraDeployer {
duperModel.infraApplicationActivated(
application.getApplicationId(),
- hostSpecs.stream().map(HostSpec::hostname).map(HostName::from).collect(Collectors.toList()));
+ hostSpecs.stream().map(HostSpec::hostname).map(HostName::of).collect(Collectors.toList()));
logger.log(Level.FINE, () -> generateActivationLogMessage(hostSpecs, application.getApplicationId()));
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java
index 04f084dd079..f76968d67fd 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java
@@ -254,7 +254,7 @@ public class LoadBalancerProvisioner {
Set<Real> reals = new LinkedHashSet<>();
for (var node : nodes) {
for (var ip : reachableIpAddresses(node)) {
- reals.add(new Real(HostName.from(node.hostname()), ip));
+ reals.add(new Real(HostName.of(node.hostname()), ip));
}
}
return reals;
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/lb/SharedLoadBalancerServiceTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/lb/SharedLoadBalancerServiceTest.java
index 4975e670e86..d54b41bfcdd 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/lb/SharedLoadBalancerServiceTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/lb/SharedLoadBalancerServiceTest.java
@@ -20,15 +20,15 @@ public class SharedLoadBalancerServiceTest {
private final ApplicationId applicationId = ApplicationId.from("tenant1", "application1", "default");
private final ClusterSpec.Id clusterId = ClusterSpec.Id.from("qrs1");
private final Set<Real> reals = Set.of(
- new Real(HostName.from("some.nice.host"), "10.23.56.102"),
- new Real(HostName.from("some.awful.host"), "10.23.56.103")
+ new Real(HostName.of("some.nice.host"), "10.23.56.102"),
+ new Real(HostName.of("some.awful.host"), "10.23.56.103")
);
@Test
public void test_create_lb() {
var lb = loadBalancerService.create(new LoadBalancerSpec(applicationId, clusterId, reals), false);
- assertEquals(HostName.from("vip.example.com"), lb.hostname());
+ assertEquals(HostName.of("vip.example.com"), lb.hostname());
assertEquals(Optional.empty(), lb.dnsZone());
assertEquals(Set.of(), lb.networks());
assertEquals(Set.of(4443), lb.ports());
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/LoadBalancerSerializerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/LoadBalancerSerializerTest.java
index 38724175c90..1eecb442dc0 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/LoadBalancerSerializerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/LoadBalancerSerializerTest.java
@@ -1,10 +1,10 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.provision.persistence;
+import ai.vespa.http.DomainName;
import com.google.common.collect.ImmutableSet;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ClusterSpec;
-import com.yahoo.config.provision.HostName;
import com.yahoo.vespa.hosted.provision.lb.DnsZone;
import com.yahoo.vespa.hosted.provision.lb.LoadBalancer;
import com.yahoo.vespa.hosted.provision.lb.LoadBalancerId;
@@ -31,14 +31,14 @@ public class LoadBalancerSerializerTest {
"default"),
ClusterSpec.Id.from("qrs")),
Optional.of(new LoadBalancerInstance(
- HostName.from("lb-host"),
+ DomainName.of("lb-host"),
Optional.of(new DnsZone("zone-id-1")),
ImmutableSet.of(4080, 4443),
ImmutableSet.of("10.2.3.4/24"),
- ImmutableSet.of(new Real(HostName.from("real-1"),
+ ImmutableSet.of(new Real(DomainName.of("real-1"),
"127.0.0.1",
4080),
- new Real(HostName.from("real-2"),
+ new Real(DomainName.of("real-2"),
"127.0.0.2",
4080)))),
LoadBalancer.State.active,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/InfraDeployerImplTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/InfraDeployerImplTest.java
index 224ff51ff40..4f2360590c4 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/InfraDeployerImplTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/InfraDeployerImplTest.java
@@ -14,7 +14,6 @@ import com.yahoo.vespa.flags.InMemoryFlagSource;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeRepository;
import com.yahoo.vespa.hosted.provision.NodeRepositoryTester;
-import com.yahoo.vespa.hosted.provision.autoscale.MemoryMetricsDb;
import com.yahoo.vespa.hosted.provision.maintenance.InfrastructureVersions;
import com.yahoo.vespa.hosted.provision.node.Agent;
import com.yahoo.vespa.hosted.provision.node.Allocation;
@@ -137,7 +136,7 @@ public class InfraDeployerImplTest {
@SuppressWarnings("unchecked")
private void verifyActivated(String... hostnames) {
verify(duperModelInfraApi).infraApplicationActivated(
- eq(application.getApplicationId()), eq(Stream.of(hostnames).map(HostName::from).collect(Collectors.toList())));
+ eq(application.getApplicationId()), eq(Stream.of(hostnames).map(HostName::of).collect(Collectors.toList())));
ArgumentMatcher<ApplicationTransaction> transactionMatcher = t -> {
assertEquals(application.getApplicationId(), t.application());
return true;
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisionerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisionerTest.java
index b1ee156f8e8..08058ef7b04 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisionerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisionerTest.java
@@ -1,12 +1,12 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.provision.provisioning;
+import ai.vespa.http.DomainName;
import com.google.common.collect.Iterators;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.Capacity;
import com.yahoo.config.provision.ClusterResources;
import com.yahoo.config.provision.ClusterSpec;
-import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.HostSpec;
import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.NodeType;
@@ -91,7 +91,7 @@ public class LoadBalancerProvisionerTest {
assertEquals(2, loadBalancer.instance().get().reals().size());
assertTrue("Failed node is removed", loadBalancer.instance().get().reals().stream()
.map(Real::hostname)
- .map(HostName::value)
+ .map(DomainName::value)
.noneMatch(hostname -> hostname.equals(toFail.hostname())));
assertEquals(containers.get().get(0).hostname(), get(loadBalancer.instance().get().reals(), 0).hostname().value());
assertEquals(containers.get().get(1).hostname(), get(loadBalancer.instance().get().reals(), 1).hostname().value());
diff --git a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/OrchestratorTest.java b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/OrchestratorTest.java
index a88e6766050..29d6463a7d7 100644
--- a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/OrchestratorTest.java
+++ b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/OrchestratorTest.java
@@ -86,9 +86,9 @@ public class OrchestratorTest {
// There is one config server application with 3 nodes
ApplicationId applicationId = new ConfigServerApplication().getApplicationId();
- var cfg1 = com.yahoo.config.provision.HostName.from("cfg1");
- var cfg2 = com.yahoo.config.provision.HostName.from("cfg2");
- var cfg3 = com.yahoo.config.provision.HostName.from("cfg3");
+ var cfg1 = com.yahoo.config.provision.HostName.of("cfg1");
+ var cfg2 = com.yahoo.config.provision.HostName.of("cfg2");
+ var cfg3 = com.yahoo.config.provision.HostName.of("cfg3");
duperModelManager.infraApplicationActivated(applicationId, List.of(cfg1, cfg2, cfg3));
duperModelManager.infraApplicationsIsNowComplete();
diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/duper/DuperModel.java b/service-monitor/src/main/java/com/yahoo/vespa/service/duper/DuperModel.java
index a5f124540e7..3a9c2b1f1e7 100644
--- a/service-monitor/src/main/java/com/yahoo/vespa/service/duper/DuperModel.java
+++ b/service-monitor/src/main/java/com/yahoo/vespa/service/duper/DuperModel.java
@@ -121,7 +121,7 @@ public class DuperModel {
applicationInfo.getModel().getHosts().stream()
.map(HostInfo::getHostname)
- .map(HostName::from)
+ .map(HostName::of)
.forEach(hostname -> {
if (!removedHosts.remove(hostname)) {
// hostname has been added
diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/health/StateV1HealthModel.java b/service-monitor/src/main/java/com/yahoo/vespa/service/health/StateV1HealthModel.java
index 2712b510040..3391bbcf82a 100644
--- a/service-monitor/src/main/java/com/yahoo/vespa/service/health/StateV1HealthModel.java
+++ b/service-monitor/src/main/java/com/yahoo/vespa/service/health/StateV1HealthModel.java
@@ -45,7 +45,7 @@ public class StateV1HealthModel implements AutoCloseable {
Map<ServiceId, HealthEndpoint> endpoints = new HashMap<>();
for (HostInfo hostInfo : application.getModel().getHosts()) {
- HostName hostname = HostName.from(hostInfo.getHostname());
+ HostName hostname = HostName.of(hostInfo.getHostname());
for (ServiceInfo serviceInfo : hostInfo.getServices()) {
ServiceId serviceId = ApplicationInstanceGenerator.getServiceId(application, serviceInfo);
for (PortInfo portInfo : serviceInfo.getPorts()) {
diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceMonitorImpl.java b/service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceMonitorImpl.java
index 6e3f407bb9c..bc0db1500b8 100644
--- a/service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceMonitorImpl.java
+++ b/service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceMonitorImpl.java
@@ -118,6 +118,6 @@ public class ServiceMonitorImpl implements ServiceMonitor, AntiServiceMonitor {
/** The duper model uses HostName from config.provision. */
private static com.yahoo.config.provision.HostName toConfigProvisionHostName(HostName hostname) {
- return com.yahoo.config.provision.HostName.from(hostname.s());
+ return com.yahoo.config.provision.HostName.of(hostname.s());
}
}
diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/duper/DuperModelManagerTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/duper/DuperModelManagerTest.java
index a3af44ec911..d02cad1c068 100644
--- a/service-monitor/src/test/java/com/yahoo/vespa/service/duper/DuperModelManagerTest.java
+++ b/service-monitor/src/test/java/com/yahoo/vespa/service/duper/DuperModelManagerTest.java
@@ -7,8 +7,6 @@ import com.yahoo.config.model.api.SuperModelListener;
import com.yahoo.config.model.api.SuperModelProvider;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.HostName;
-import com.yahoo.config.provision.SystemName;
-import com.yahoo.vespa.flags.InMemoryFlagSource;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
@@ -66,7 +64,7 @@ public class DuperModelManagerTest {
makeManager(false);
ApplicationId id = proxyHostApplication.getApplicationId();
- List<HostName> proxyHostHosts = Stream.of("proxyhost1", "proxyhost2").map(HostName::from).collect(Collectors.toList());
+ List<HostName> proxyHostHosts = Stream.of("proxyhost1", "proxyhost2").map(HostName::of).collect(Collectors.toList());
verify(duperModel, times(0)).add(any());
manager.infraApplicationActivated(id, proxyHostHosts);
verify(duperModel, times(1)).add(any());
@@ -93,12 +91,12 @@ public class DuperModelManagerTest {
}
private void testEnabledConfigServerLikeInfraApplication(ApplicationId firstId, ApplicationId secondId) {
- List<HostName> hostnames1 = Stream.of("node11", "node12").map(HostName::from).collect(Collectors.toList());
+ List<HostName> hostnames1 = Stream.of("node11", "node12").map(HostName::of).collect(Collectors.toList());
manager.infraApplicationActivated(firstId, hostnames1);
verify(duperModel, times(1)).add(any());
// Adding the second config server like application will be ignored
- List<HostName> hostnames2 = Stream.of("node21", "node22").map(HostName::from).collect(Collectors.toList());
+ List<HostName> hostnames2 = Stream.of("node21", "node22").map(HostName::of).collect(Collectors.toList());
assertThrows(IllegalArgumentException.class, () -> manager.infraApplicationActivated(secondId, hostnames2));
verify(duperModel, times(1)).add(any());
diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/duper/DuperModelTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/duper/DuperModelTest.java
index 3fa9baa5d60..69d3ef4d498 100644
--- a/service-monitor/src/test/java/com/yahoo/vespa/service/duper/DuperModelTest.java
+++ b/service-monitor/src/test/java/com/yahoo/vespa/service/duper/DuperModelTest.java
@@ -34,12 +34,12 @@ public class DuperModelTest {
private final ApplicationId id1 = ApplicationId.fromSerializedForm("tenant:app1:default");
private final ApplicationInfo application1 = mock(ApplicationInfo.class);
- private final HostName hostname1_1 = HostName.from("hostname1-1");
- private final HostName hostname1_2 = HostName.from("hostname1-2");
+ private final HostName hostname1_1 = HostName.of("hostname1-1");
+ private final HostName hostname1_2 = HostName.of("hostname1-2");
private final ApplicationId id2 = ApplicationId.fromSerializedForm("tenant:app2:default");
private final ApplicationInfo application2 = mock(ApplicationInfo.class);
- private final HostName hostname2_1 = HostName.from("hostname2-1");
+ private final HostName hostname2_1 = HostName.of("hostname2-1");
private final DuperModelListener listener1 = mock(DuperModelListener.class);
@@ -129,7 +129,7 @@ public class DuperModelTest {
addAndVerifyApplication1("host1");
addAndVerifyApplication1("host1", "host2");
addAndVerifyApplication1("host2", "host3");
- assertEquals(Optional.empty(), duperModel.getApplicationId(HostName.from("host1")));
+ assertEquals(Optional.empty(), duperModel.getApplicationId(HostName.of("host1")));
duperModel.remove(id1);
assertEquals(0, duperModel.numberOfApplications());
@@ -138,7 +138,7 @@ public class DuperModelTest {
}
private void addAndVerifyApplication1(String... hostnameStrings) {
- HostName[] hostnameArray = Stream.of(hostnameStrings).map(HostName::from).toArray(HostName[]::new);
+ HostName[] hostnameArray = Stream.of(hostnameStrings).map(HostName::of).toArray(HostName[]::new);
setUpApplication(id1, application1, hostnameArray);
duperModel.add(application1);
diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/health/ApplicationHealthMonitorTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/health/ApplicationHealthMonitorTest.java
index 569ad899331..d99e882985f 100644
--- a/service-monitor/src/test/java/com/yahoo/vespa/service/health/ApplicationHealthMonitorTest.java
+++ b/service-monitor/src/test/java/com/yahoo/vespa/service/health/ApplicationHealthMonitorTest.java
@@ -87,7 +87,7 @@ public class ApplicationHealthMonitorTest {
return new ServiceId(configServerApplication.getApplicationId(),
configServerApplication.getClusterId(),
configServerApplication.getServiceType(),
- configServerApplication.configIdFor(HostName.from(hostname)));
+ configServerApplication.configIdFor(HostName.of(hostname)));
}
private ServiceStatus getStatus(ApplicationHealthMonitor monitor, String hostname) {
@@ -95,7 +95,7 @@ public class ApplicationHealthMonitorTest {
configServerApplication.getApplicationId(),
configServerApplication.getClusterId(),
configServerApplication.getServiceType(),
- configServerApplication.configIdFor(HostName.from(hostname)))
+ configServerApplication.configIdFor(HostName.of(hostname)))
.serviceStatus();
}
} \ No newline at end of file
diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/health/HealthMonitorManagerTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/health/HealthMonitorManagerTest.java
index d191d914bd0..c77ff519abd 100644
--- a/service-monitor/src/test/java/com/yahoo/vespa/service/health/HealthMonitorManagerTest.java
+++ b/service-monitor/src/test/java/com/yahoo/vespa/service/health/HealthMonitorManagerTest.java
@@ -48,7 +48,7 @@ public class HealthMonitorManagerTest {
public void infrastructureApplication() {
ProxyHostApplication proxyHostApplication = new ProxyHostApplication();
when(duperModel.isSupportedInfraApplication(proxyHostApplication.getApplicationId())).thenReturn(true);
- List<HostName> hostnames = Stream.of("proxyhost1", "proxyhost2").map(HostName::from).collect(Collectors.toList());
+ List<HostName> hostnames = Stream.of("proxyhost1", "proxyhost2").map(HostName::of).collect(Collectors.toList());
ApplicationInfo proxyHostApplicationInfo = proxyHostApplication.makeApplicationInfo(hostnames);
manager.applicationActivated(proxyHostApplicationInfo);
@@ -77,7 +77,7 @@ public class HealthMonitorManagerTest {
infraApplication.getApplicationId(),
infraApplication.getClusterId(),
infraApplication.getServiceType(),
- infraApplication.configIdFor(HostName.from(hostname))).serviceStatus();
+ infraApplication.configIdFor(HostName.of(hostname))).serviceStatus();
assertEquals(expected, actual);
@@ -85,7 +85,7 @@ public class HealthMonitorManagerTest {
infraApplication.getApplicationId(),
infraApplication.getClusterId(),
infraApplication.getServiceType(),
- infraApplication.configIdFor(HostName.from(hostname)));
+ infraApplication.configIdFor(HostName.of(hostname)));
}
} \ No newline at end of file
diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/health/StateV1HealthModelTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/health/StateV1HealthModelTest.java
index 4fdf6288bd8..8ae0e55fe41 100644
--- a/service-monitor/src/test/java/com/yahoo/vespa/service/health/StateV1HealthModelTest.java
+++ b/service-monitor/src/test/java/com/yahoo/vespa/service/health/StateV1HealthModelTest.java
@@ -38,7 +38,7 @@ public class StateV1HealthModelTest {
private final Duration requestTimeout = Duration.ofSeconds(2);
private final Duration keepAlive = Duration.ofSeconds(3);
private final ProxyHostApplication proxyHostApplication = new ProxyHostApplication();
- private final List<HostName> hostnames = Stream.of("host1", "host2").map(HostName::from).collect(Collectors.toList());
+ private final List<HostName> hostnames = Stream.of("host1", "host2").map(HostName::of).collect(Collectors.toList());
private final ApplicationInfo proxyHostApplicationInfo = proxyHostApplication.makeApplicationInfo(hostnames);
private final StateV1HealthModel model = new StateV1HealthModel(healthStaleness, requestTimeout, keepAlive, executor);
diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/model/ApplicationInstanceGeneratorTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/model/ApplicationInstanceGeneratorTest.java
index 8ca46941366..8f87a7bad68 100644
--- a/service-monitor/src/test/java/com/yahoo/vespa/service/model/ApplicationInstanceGeneratorTest.java
+++ b/service-monitor/src/test/java/com/yahoo/vespa/service/model/ApplicationInstanceGeneratorTest.java
@@ -34,7 +34,7 @@ public class ApplicationInstanceGeneratorTest {
when(statusProvider.getStatus(any(), any(), any(), any())).thenReturn(new ServiceStatusInfo(ServiceStatus.NOT_CHECKED));
Zone zone = mock(Zone.class);
ApplicationInfo configServer = configServerApplication.makeApplicationInfo(
- configServerList.stream().map(HostName::from).collect(Collectors.toList()));
+ configServerList.stream().map(HostName::of).collect(Collectors.toList()));
ApplicationInstance applicationInstance = new ApplicationInstanceGenerator(configServer, zone)
.makeApplicationInstance(statusProvider);
diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/model/ServiceHostListenerAdapterTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/model/ServiceHostListenerAdapterTest.java
index cfc24ecbaec..97b6ff0c3e2 100644
--- a/service-monitor/src/test/java/com/yahoo/vespa/service/model/ServiceHostListenerAdapterTest.java
+++ b/service-monitor/src/test/java/com/yahoo/vespa/service/model/ServiceHostListenerAdapterTest.java
@@ -100,7 +100,7 @@ public class ServiceHostListenerAdapterTest {
}
private Optional<ApplicationInfo> getDuperModelApplicationInfo(String hostname) {
- return duperModel.getApplicationInfo(com.yahoo.config.provision.HostName.from(hostname));
+ return duperModel.getApplicationInfo(com.yahoo.config.provision.HostName.of(hostname));
}
private void removeAndVerify(ApplicationId id, boolean listenerInvoked) {
diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/ConfigserverUtil.java b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/ConfigserverUtil.java
index 40cc679b69b..df489a8c336 100644
--- a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/ConfigserverUtil.java
+++ b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/ConfigserverUtil.java
@@ -37,7 +37,7 @@ public class ConfigserverUtil {
String configServerHostname3) {
return new ConfigServerApplication().makeApplicationInfo(
Stream.of(configServerHostname1, configServerHostname2, configServerHostname3)
- .map(HostName::from).collect(Collectors.toList()));
+ .map(HostName::of).collect(Collectors.toList()));
}
public static ApplicationInfo makeExampleConfigServer() {
diff --git a/vespajlib/abi-spec.json b/vespajlib/abi-spec.json
index ae69564b671..6044666ebf8 100644
--- a/vespajlib/abi-spec.json
+++ b/vespajlib/abi-spec.json
@@ -350,13 +350,13 @@
"fields": []
},
"com.yahoo.net.HostName": {
- "superClass": "ai.vespa.validation.PatternedStringWrapper",
+ "superClass": "java.lang.Object",
"interfaces": [],
"attributes": [
"public"
],
"methods": [
- "public static com.yahoo.net.HostName of(java.lang.String)",
+ "public void <init>()",
"public static synchronized java.lang.String getLocalhost()",
"public static void setHostNameForTestingOnly(java.lang.String)"
],
diff --git a/vespajlib/src/main/java/ai/vespa/http/DomainName.java b/vespajlib/src/main/java/ai/vespa/http/DomainName.java
index a566f5b95be..737f6b6d863 100644
--- a/vespajlib/src/main/java/ai/vespa/http/DomainName.java
+++ b/vespajlib/src/main/java/ai/vespa/http/DomainName.java
@@ -15,12 +15,12 @@ import static ai.vespa.validation.Validation.requireMatch;
*/
public class DomainName extends PatternedStringWrapper<DomainName> {
- static final Pattern labelPattern = Pattern.compile("([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])");
- static final Pattern domainNamePattern = Pattern.compile("(" + labelPattern + "\\.)*" + labelPattern);
+ protected static final Pattern labelPattern = Pattern.compile("([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])");
+ protected static final Pattern domainNamePattern = Pattern.compile("(" + labelPattern + "\\.)*" + labelPattern);
public static final DomainName localhost = DomainName.of("localhost");
- private DomainName(String value) {
+ protected DomainName(String value) {
super(requireLength(value, "domain name length", 1, 255), domainNamePattern, "domain name");
}
diff --git a/vespajlib/src/main/java/ai/vespa/validation/StringWrapper.java b/vespajlib/src/main/java/ai/vespa/validation/StringWrapper.java
index 0937627b57e..12be0002f6f 100644
--- a/vespajlib/src/main/java/ai/vespa/validation/StringWrapper.java
+++ b/vespajlib/src/main/java/ai/vespa/validation/StringWrapper.java
@@ -40,7 +40,7 @@ public abstract class StringWrapper<T extends StringWrapper<T>> implements Compa
@Override
public final boolean equals(Object o) {
if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
+ if ( ! (o instanceof StringWrapper<?>)) return false;
return value.equals(((StringWrapper<?>) o).value);
}
diff --git a/vespajlib/src/main/java/com/yahoo/net/HostName.java b/vespajlib/src/main/java/com/yahoo/net/HostName.java
index 20f1008055e..7446771f57c 100644
--- a/vespajlib/src/main/java/com/yahoo/net/HostName.java
+++ b/vespajlib/src/main/java/com/yahoo/net/HostName.java
@@ -1,39 +1,18 @@
-// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.net;
-import ai.vespa.http.DomainName;
-import ai.vespa.validation.PatternedStringWrapper;
-
import java.util.Optional;
-import java.util.regex.Pattern;
-
-import static ai.vespa.validation.Validation.requireLength;
/**
- * Hostnames match {@link #hostNamePattern}, and are restricted to 64 characters in length.
- *
- * This class also has utilities for getting the hostname of the system running the JVM.
+ * This class has utilities for getting the hostname of the system running the JVM.
* Detection of the hostname is now done before starting any Vespa
* programs and provided in the environment variable VESPA_HOSTNAME;
* if that variable isn't set a default of "localhost" is always returned.
*
* @author arnej
- * @author jonmv
*/
-public class HostName extends PatternedStringWrapper<HostName> {
-
- static final Pattern labelPattern = Pattern.compile("([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])");
- static final Pattern hostNamePattern = Pattern.compile("(" + labelPattern + "\\.)*" + labelPattern);
+public class HostName {
- private static HostName preferredHostName = null;
-
- private HostName(String value) {
- super(requireLength(value, "hostname length", 1, 64), hostNamePattern, "hostname");
- }
-
- public static HostName of(String value) {
- return new HostName(value);
- }
+ private static String preferredHostName = null;
/**
* Return a public and fully qualified hostname for localhost that
@@ -45,19 +24,19 @@ public class HostName extends PatternedStringWrapper<HostName> {
if (preferredHostName == null) {
preferredHostName = getPreferredHostName();
}
- return preferredHostName.value();
+ return preferredHostName;
}
- static private HostName getPreferredHostName() {
+ static private String getPreferredHostName() {
Optional<String> vespaHostEnv = Optional.ofNullable(System.getenv("VESPA_HOSTNAME"));
if (vespaHostEnv.isPresent() && ! vespaHostEnv.get().trim().isEmpty()) {
- return of(vespaHostEnv.get().trim());
+ return vespaHostEnv.get().trim();
}
- return of("localhost");
+ return "localhost";
}
public static void setHostNameForTestingOnly(String hostName) {
- preferredHostName = HostName.of(hostName);
+ preferredHostName = hostName;
}
}
diff --git a/vespajlib/src/test/java/com/yahoo/net/HostNameTest.java b/vespajlib/src/test/java/com/yahoo/net/HostNameTest.java
index fa756b31616..2548c3cea60 100644
--- a/vespajlib/src/test/java/com/yahoo/net/HostNameTest.java
+++ b/vespajlib/src/test/java/com/yahoo/net/HostNameTest.java
@@ -1,39 +1,14 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.net;
-import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertThrows;
-/**
- * @author jonmv
- */
public class HostNameTest {
@Test
- void testNames() {
- HostName.of("name-123.0.321-eman");
- HostName.of(("." + "a".repeat(32)).repeat(2).substring(1, 65));
- HostName.of("123");
-
- assertThrows(IllegalArgumentException.class, () -> HostName.of("_"));
- assertThrows(IllegalArgumentException.class, () -> HostName.of("-"));
- assertThrows(IllegalArgumentException.class, () -> HostName.of("."));
- assertThrows(IllegalArgumentException.class, () -> HostName.of("-foo"));
- assertThrows(IllegalArgumentException.class, () -> HostName.of("foo-"));
- assertThrows(IllegalArgumentException.class, () -> HostName.of(".foo"));
- assertThrows(IllegalArgumentException.class, () -> HostName.of("foo."));
- assertThrows(IllegalArgumentException.class, () -> HostName.of("foo..bar"));
- assertThrows(IllegalArgumentException.class, () -> HostName.of("foo.-.bar"));
- assertThrows(IllegalArgumentException.class, () -> HostName.of("foo/"));
- assertThrows(IllegalArgumentException.class, () -> HostName.of("foo%"));
- assertThrows(IllegalArgumentException.class, () -> HostName.of(("." + "a".repeat(32)).repeat(2).substring(1, 66)));
- assertThrows(IllegalArgumentException.class, () -> HostName.of("a".repeat(64)));
- }
-
- @Test
void testHostnameIsFound() {
assertFalse(HostName.getLocalhost().isEmpty());
}