diff options
author | jonmv <venstad@gmail.com> | 2022-04-09 14:51:56 +0200 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2022-04-09 14:51:56 +0200 |
commit | cb1eb57fa9707b1186f0aa10a0853780d7674742 (patch) | |
tree | 1c1ca993fdf96007ce4e2c98b2058809601d6fe5 /controller-api/src | |
parent | 87e5b33c003d07ca585d73e0166857fe22b4c16f (diff) |
Revert "Merge pull request #22072 from vespa-engine/jonmv/unify-hostname-classes"
This reverts commit 87e5b33c003d07ca585d73e0166857fe22b4c16f, reversing
changes made to 80b96d32550ae0df59572a58cd62f507e8068c2c.
Diffstat (limited to 'controller-api/src')
12 files changed, 36 insertions, 41 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..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()); |