summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Marius Venstad <jonmv@users.noreply.github.com>2022-09-14 17:25:18 +0200
committerGitHub <noreply@github.com>2022-09-14 17:25:18 +0200
commit4840ba81903a4f030c2541b805124cc0eb271e3a (patch)
tree6f22d4588bdd21b94a9bb93f04103e00f00e2de4
parentd3e8604a5ac5d0573e1406dad192954efe4d8886 (diff)
parentf49fd159f796121e866d74f477af37f80c2b1609 (diff)
Merge pull request #24043 from vespa-engine/mpolden/more-records
Use records in dns package
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/Record.java36
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/RecordData.java21
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/RecordName.java29
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/NameServiceDispatcher.java4
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/NodeVersion.java4
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/OsVersion.java2
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/VersionStatus.java8
7 files changed, 29 insertions, 75 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/Record.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/Record.java
index 8c6decd6158..2f9312b2f89 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/Record.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/Record.java
@@ -10,22 +10,20 @@ import java.util.Objects;
*
* @author mpolden
*/
-public class Record implements Comparable<Record> {
+public record Record(Type type,
+ Duration ttl,
+ RecordName name,
+ RecordData data) implements Comparable<Record> {
private static final Comparator<Record> comparator = Comparator.comparing(Record::type)
.thenComparing(Record::name)
.thenComparing(Record::data);
- private final Type type;
- private final Duration ttl;
- private final RecordName name;
- private final RecordData data;
-
- public Record(Type type, Duration ttl, RecordName name, RecordData data) {
- this.type = Objects.requireNonNull(type, "type cannot be null");
- this.ttl = Objects.requireNonNull(ttl, "ttl cannot be null");
- this.name = Objects.requireNonNull(name, "name cannot be null");
- this.data = Objects.requireNonNull(data, "data cannot be null");
+ public Record {
+ Objects.requireNonNull(type, "type cannot be null");
+ Objects.requireNonNull(ttl, "ttl cannot be null");
+ Objects.requireNonNull(name, "name cannot be null");
+ Objects.requireNonNull(data, "data cannot be null");
}
public Record(Type type, RecordName name, RecordData data) {
@@ -74,22 +72,6 @@ public class Record implements Comparable<Record> {
}
@Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- Record record = (Record) o;
- return type == record.type &&
- ttl.equals(record.ttl) &&
- name.equals(record.name) &&
- data.equals(record.data);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(type, ttl, name, data);
- }
-
- @Override
public int compareTo(Record that) {
return comparator.compare(this, that);
}
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/RecordData.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/RecordData.java
index 90759d911dd..e2d142b10f8 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/RecordData.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/RecordData.java
@@ -10,12 +10,10 @@ import java.util.Objects;
*
* @author mpolden
*/
-public class RecordData implements Comparable<RecordData> {
+public record RecordData(String data) implements Comparable<RecordData> {
- private final String data;
-
- private RecordData(String data) {
- this.data = Objects.requireNonNull(data, "data cannot be null");
+ public RecordData {
+ Objects.requireNonNull(data, "data cannot be null");
}
public String asString() {
@@ -23,19 +21,6 @@ public class RecordData implements Comparable<RecordData> {
}
@Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- RecordData that = (RecordData) o;
- return Objects.equals(data, that.data);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(data);
- }
-
- @Override
public String toString() {
return data;
}
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/RecordName.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/RecordName.java
index 72f0933896d..e2548a7f283 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/RecordName.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/RecordName.java
@@ -8,12 +8,10 @@ import java.util.Objects;
*
* @author mpolden
*/
-public class RecordName implements Comparable<RecordName> {
+public record RecordName(String name) implements Comparable<RecordName> {
- private final String name;
-
- private RecordName(String name) {
- this.name = Objects.requireNonNull(name, "name cannot be null");
+ public RecordName {
+ Objects.requireNonNull(name, "name cannot be null");
}
public String asString() {
@@ -31,21 +29,13 @@ public class RecordName implements Comparable<RecordName> {
}
@Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- RecordName that = (RecordName) o;
- return Objects.equals(name, that.name);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(name);
+ public String toString() {
+ return name;
}
@Override
- public String toString() {
- return name;
+ public int compareTo(RecordName that) {
+ return this.name.compareTo(that.name);
}
public static RecordName from(String name) {
@@ -56,9 +46,4 @@ public class RecordName implements Comparable<RecordName> {
return from(name).asFqdn();
}
- @Override
- public int compareTo(RecordName that) {
- return this.name.compareTo(that.name);
- }
-
}
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/NameServiceDispatcher.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/NameServiceDispatcher.java
index 078a0dfc685..19616f862ab 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/NameServiceDispatcher.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/NameServiceDispatcher.java
@@ -31,7 +31,9 @@ public class NameServiceDispatcher extends ControllerMaintainer {
@Override
protected double maintain() {
- int requestCount = trueIntervalInSeconds(); // Dispatch 1 request per second
+ // Dispatch 1 request per second on average. Note that this is not entirely accurate because a NameService
+ // implementation may need to perform multiple API-specific requests to execute a single NameServiceRequest
+ int requestCount = trueIntervalInSeconds();
try (var lock = db.lockNameServiceQueue()) {
var queue = db.readNameServiceQueue();
var instant = clock.instant();
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/NodeVersion.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/NodeVersion.java
index 04f5d9866f8..707fa85b6b6 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/NodeVersion.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/NodeVersion.java
@@ -38,7 +38,9 @@ public record NodeVersion(HostName hostname,
@Override
public String toString() {
- return hostname + ": " + currentVersion + " -> " + wantedVersion + " [zone=" + zone + ", suspendedAt=" + suspendedAt.map(Instant::toString).orElse("<not suspended>") + "]";
+ return hostname + ": " + currentVersion.toFullString() + " -> " + wantedVersion.toFullString() +
+ " [zone=" + zone + ", suspendedAt=" + suspendedAt.map(Instant::toString)
+ .orElse("<not suspended>") + "]";
}
/** Returns whether this is upgrading */
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/OsVersion.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/OsVersion.java
index 30a88733ed3..6ed716bb4bf 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/OsVersion.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/OsVersion.java
@@ -24,7 +24,7 @@ public record OsVersion(Version version, CloudName cloud) implements Comparable<
@Override
public String toString() {
- return "version " + version + " for " + cloud + " cloud";
+ return "version " + version.toFullString() + " for " + cloud + " cloud";
}
@Override
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 b0a37474af7..95cb7de3443 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
@@ -1,8 +1,6 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.controller.versions;
-import ai.vespa.validation.Validation;
-import com.yahoo.collections.Iterables;
import com.yahoo.component.Version;
import com.yahoo.config.provision.HostName;
import com.yahoo.vespa.hosted.controller.Controller;
@@ -122,10 +120,10 @@ public record VersionStatus(List<VespaVersion> versions) {
.orElse(newSystemVersion);
if (newSystemVersion.isBefore(systemVersion)) {
log.warning("Refusing to lower system version from " +
- systemVersion +
+ systemVersion.toFullString() +
" to " +
- newSystemVersion +
- ", nodes on " + newSystemVersion + ": " +
+ newSystemVersion.toFullString() +
+ ", nodes on " + newSystemVersion.toFullString() + ": " +
infrastructureVersions.get(newSystemVersion).stream()
.map(HostName::value)
.collect(Collectors.joining(", ")));