aboutsummaryrefslogtreecommitdiffstats
path: root/controller-api
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2022-04-11 12:09:13 +0200
committerjonmv <venstad@gmail.com>2022-04-11 13:42:27 +0200
commit8887ca621decc0409b2fddef28752395d5c7acfa (patch)
tree79ff29284326768e351d2cf41090ffab16509daa /controller-api
parent684a20b8ae9b0b414fa8dc0bd3f45239f74759e2 (diff)
Fix static test controller version
Diffstat (limited to 'controller-api')
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/identifiers/ControllerVersion.java68
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/ServiceRegistry.java6
2 files changed, 74 insertions, 0 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/identifiers/ControllerVersion.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/identifiers/ControllerVersion.java
new file mode 100644
index 00000000000..ad88b8774ed
--- /dev/null
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/identifiers/ControllerVersion.java
@@ -0,0 +1,68 @@
+// 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;
+
+import com.yahoo.component.Version;
+import com.yahoo.component.Vtag;
+
+import java.time.Instant;
+import java.util.Objects;
+
+/**
+ * A controller's Vespa version and commit details.
+ *
+ * @author mpolden
+ */
+public class ControllerVersion implements Comparable<ControllerVersion> {
+
+ /** The current version of this controller */
+ public static final ControllerVersion CURRENT = new ControllerVersion(Vtag.currentVersion, Vtag.commitSha, Vtag.commitDate);
+
+ private final Version version;
+ private final String commitSha;
+ private final Instant commitDate;
+
+ public ControllerVersion(Version version, String commitSha, Instant commitDate) {
+ this.version = Objects.requireNonNull(version);
+ this.commitSha = Objects.requireNonNull(commitSha);
+ this.commitDate = Objects.requireNonNull(commitDate);
+ }
+
+ /** Vespa version */
+ public Version version() {
+ return version;
+ }
+
+ /** Commit SHA of this */
+ public String commitSha() {
+ return commitSha;
+ }
+
+ /** The time this was committed */
+ public Instant commitDate() {
+ return commitDate;
+ }
+
+ @Override
+ public String toString() {
+ return version + ", commit " + commitSha + " @ " + commitDate;
+ }
+
+ @Override
+ public int compareTo(ControllerVersion o) {
+ return version.compareTo(o.version);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ ControllerVersion that = (ControllerVersion) o;
+ return version.equals(that.version);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(version);
+ }
+
+}
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/ServiceRegistry.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/ServiceRegistry.java
index b36d7880506..be32b74591b 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/ServiceRegistry.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/ServiceRegistry.java
@@ -1,6 +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;
+import com.yahoo.config.provision.HostName;
+import com.yahoo.vespa.hosted.controller.api.identifiers.ControllerVersion;
import com.yahoo.vespa.hosted.controller.api.integration.archive.ArchiveService;
import com.yahoo.vespa.hosted.controller.api.integration.athenz.AccessControlService;
import com.yahoo.vespa.hosted.controller.api.integration.aws.CloudEventFetcher;
@@ -47,6 +49,10 @@ public interface ServiceRegistry {
default Clock clock() { return Clock.systemUTC(); }
+ default ControllerVersion controllerVersion() { return ControllerVersion.CURRENT; }
+
+ default HostName getHostname() { return HostName.of(com.yahoo.net.HostName.getLocalhost()); }
+
NameService nameService();
Mailer mailer();