diff options
author | jonmv <venstad@gmail.com> | 2022-04-11 12:09:13 +0200 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2022-04-11 13:42:27 +0200 |
commit | 8887ca621decc0409b2fddef28752395d5c7acfa (patch) | |
tree | 79ff29284326768e351d2cf41090ffab16509daa /controller-api | |
parent | 684a20b8ae9b0b414fa8dc0bd3f45239f74759e2 (diff) |
Fix static test controller version
Diffstat (limited to 'controller-api')
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(); |