diff options
author | jonmv <venstad@gmail.com> | 2022-04-08 17:27:39 +0200 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2022-04-08 17:27:39 +0200 |
commit | 0ee94a18e5420f7f77aec110c8ff0a67a661a7ef (patch) | |
tree | d1592c6ed5f01ad1c820c403b8a9590373944b66 /controller-api | |
parent | 4ffc54339186574491a32b3166223c3fc50ba8fe (diff) |
Revert "Merge pull request #22065 from vespa-engine/revert-22049-jonmv/unify-hostname-classes"
This reverts commit 4ffc54339186574491a32b3166223c3fc50ba8fe, reversing
changes made to db9e570a36decb24e6cb13f44bd0ff444ab762e3.
Diffstat (limited to 'controller-api')
16 files changed, 46 insertions, 48 deletions
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..8e22b079263 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.net.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..2c20ab904bc 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 @@ -2,13 +2,12 @@ package com.yahoo.vespa.hosted.controller.api.integration.aws; import com.yahoo.config.provision.ApplicationId; -import com.yahoo.config.provision.HostName; +import com.yahoo.net.HostName; import com.yahoo.config.provision.zone.ZoneApi; 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..073a6224ee8 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 @@ -2,11 +2,10 @@ package com.yahoo.vespa.hosted.controller.api.integration.aws; import com.yahoo.config.provision.ApplicationId; -import com.yahoo.config.provision.HostName; +import com.yahoo.net.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..74bcfbffb1a 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 @@ -3,7 +3,7 @@ package com.yahoo.vespa.hosted.controller.api.integration.configserver; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.ClusterSpec; -import com.yahoo.config.provision.HostName; +import com.yahoo.net.HostName; import java.util.Objects; import java.util.Optional; 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..2afe5e516ed 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 @@ -4,7 +4,7 @@ package com.yahoo.vespa.hosted.controller.api.integration.configserver; import com.yahoo.component.Version; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.DockerImage; -import com.yahoo.config.provision.HostName; +import com.yahoo.net.HostName; import com.yahoo.config.provision.NodeResources; import com.yahoo.config.provision.NodeType; import com.yahoo.config.provision.TenantName; @@ -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/configserver/NodeFilter.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeFilter.java index 7b209d231c4..a564037a676 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeFilter.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeFilter.java @@ -3,7 +3,7 @@ package com.yahoo.vespa.hosted.controller.api.integration.configserver; import com.google.common.collect.ImmutableSet; import com.yahoo.config.provision.ApplicationId; -import com.yahoo.config.provision.HostName; +import com.yahoo.net.HostName; import java.util.Objects; import java.util.Set; diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java index 395f0642965..56b176d529b 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java @@ -3,7 +3,7 @@ package com.yahoo.vespa.hosted.controller.api.integration.configserver; import com.yahoo.component.Version; import com.yahoo.config.provision.ApplicationId; -import com.yahoo.config.provision.HostName; +import com.yahoo.net.HostName; import com.yahoo.config.provision.NodeType; import com.yahoo.config.provision.TenantName; import com.yahoo.config.provision.zone.ZoneId; diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ServiceConvergence.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ServiceConvergence.java index f0ed73c2dc9..b8d827ac24e 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ServiceConvergence.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ServiceConvergence.java @@ -3,7 +3,7 @@ package com.yahoo.vespa.hosted.controller.api.integration.configserver; import com.google.common.collect.ImmutableList; import com.yahoo.config.provision.ApplicationId; -import com.yahoo.config.provision.HostName; +import com.yahoo.net.HostName; import com.yahoo.config.provision.zone.ZoneId; import java.util.List; 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..e429731ba52 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,12 @@ // 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.net.HostName; 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 +34,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..81d55c50d69 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,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.api.integration.dns; -import com.yahoo.config.provision.HostName; +import ai.vespa.http.DomainName; +import com.yahoo.net.HostName; import java.util.Objects; @@ -12,11 +13,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 +29,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..c898796f4ea 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,7 +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.api.integration.dns; -import com.yahoo.config.provision.HostName; +import ai.vespa.http.DomainName; +import com.yahoo.net.HostName; import com.yahoo.config.provision.zone.ZoneId; import java.util.Objects; @@ -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..c26c17cfc11 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,7 +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.api.integration.dns; -import com.yahoo.config.provision.HostName; +import ai.vespa.http.DomainName; +import com.yahoo.net.HostName; import com.yahoo.config.provision.zone.ZoneId; import java.util.Objects; @@ -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/noderepository/RestartFilter.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/RestartFilter.java index 72457a6a45e..0a58d10fdf6 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/RestartFilter.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/RestartFilter.java @@ -2,7 +2,7 @@ package com.yahoo.vespa.hosted.controller.api.integration.noderepository; import com.yahoo.config.provision.ClusterSpec; -import com.yahoo.config.provision.HostName; +import com.yahoo.net.HostName; import com.yahoo.vespa.hosted.controller.api.identifiers.DeploymentId; import com.yahoo.vespa.hosted.controller.api.integration.configserver.ConfigServer; 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..5496b6022fd 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,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.api.integration.stubs; -import com.yahoo.config.provision.HostName; +import ai.vespa.http.DomainName; +import com.yahoo.net.HostName; 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 +11,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 +60,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..ebeddf83169 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 @@ -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 com.yahoo.net.HostName; import com.yahoo.config.provision.zone.ZoneId; import org.junit.Test; @@ -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()); |