aboutsummaryrefslogtreecommitdiffstats
path: root/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/ApplicationVersion.java
diff options
context:
space:
mode:
authorValerij Fredriksen <valerij92@gmail.com>2021-09-07 11:49:29 +0200
committerValerij Fredriksen <valerijf@verizonmedia.com>2021-09-09 21:41:10 +0200
commite0281141684789473e8f905ffd9a27fdbd6e9d1c (patch)
tree89318fb9971cf5c715d20b5b145ca8b0c88ee114 /controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/ApplicationVersion.java
parenta10158e45f95c7f286f3e926c1ed767adbb2c2e4 (diff)
Add deployedDirectly to ApplicationVersion
Diffstat (limited to 'controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/ApplicationVersion.java')
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/ApplicationVersion.java32
1 files changed, 17 insertions, 15 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/ApplicationVersion.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/ApplicationVersion.java
index 30fd8fad1bd..a9a3e080109 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/ApplicationVersion.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/ApplicationVersion.java
@@ -23,7 +23,7 @@ public class ApplicationVersion implements Comparable<ApplicationVersion> {
*/
public static final ApplicationVersion unknown = new ApplicationVersion(Optional.empty(), OptionalLong.empty(),
Optional.empty(), Optional.empty(), Optional.empty(),
- Optional.empty(), Optional.empty());
+ Optional.empty(), Optional.empty(), false);
// This never changes and is only used to create a valid semantic version number, as required by application bundles
private static final String majorVersion = "1.0";
@@ -35,11 +35,12 @@ public class ApplicationVersion implements Comparable<ApplicationVersion> {
private final Optional<Instant> buildTime;
private final Optional<String> sourceUrl;
private final Optional<String> commit;
+ private final boolean deployedDirectly;
/** Public for serialisation only. */
public ApplicationVersion(Optional<SourceRevision> source, OptionalLong buildNumber, Optional<String> authorEmail,
- Optional<Version> compileVersion, Optional<Instant> buildTime, Optional<String> sourceUrl,
- Optional<String> commit) {
+ Optional<Version> compileVersion, Optional<Instant> buildTime, Optional<String> sourceUrl,
+ Optional<String> commit, boolean deployedDirectly) {
if (buildNumber.isEmpty() && ( source.isPresent() || authorEmail.isPresent() || compileVersion.isPresent()
|| buildTime.isPresent() || sourceUrl.isPresent() || commit.isPresent()))
throw new IllegalArgumentException("Build number must be present if any other attribute is");
@@ -63,32 +64,27 @@ public class ApplicationVersion implements Comparable<ApplicationVersion> {
this.buildTime = buildTime;
this.sourceUrl = Objects.requireNonNull(sourceUrl, "sourceUrl cannot be null");
this.commit = Objects.requireNonNull(commit, "commit cannot be null");
+ this.deployedDirectly = deployedDirectly;
}
/** Create an application package version from a completed build, without an author email */
public static ApplicationVersion from(SourceRevision source, long buildNumber) {
return new ApplicationVersion(Optional.of(source), OptionalLong.of(buildNumber), Optional.empty(),
- Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty());
- }
-
- /** Creates an version from a completed build and an author email. */
- public static ApplicationVersion from(SourceRevision source, long buildNumber, String authorEmail) {
- return new ApplicationVersion(Optional.of(source), OptionalLong.of(buildNumber), Optional.of(authorEmail),
- Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty());
+ Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), false);
}
/** Creates an version from a completed build, an author email, and build meta data. */
public static ApplicationVersion from(SourceRevision source, long buildNumber, String authorEmail,
Version compileVersion, Instant buildTime) {
return new ApplicationVersion(Optional.of(source), OptionalLong.of(buildNumber), Optional.of(authorEmail),
- Optional.of(compileVersion), Optional.of(buildTime), Optional.empty(), Optional.empty());
+ Optional.of(compileVersion), Optional.of(buildTime), Optional.empty(), Optional.empty(), false);
}
/** Creates an version from a completed build, an author email, and build meta data. */
public static ApplicationVersion from(Optional<SourceRevision> source, long buildNumber, Optional<String> authorEmail,
Optional<Version> compileVersion, Optional<Instant> buildTime,
- Optional<String> sourceUrl, Optional<String> commit) {
- return new ApplicationVersion(source, OptionalLong.of(buildNumber), authorEmail, compileVersion, buildTime, sourceUrl, commit);
+ Optional<String> sourceUrl, Optional<String> commit, boolean deployedDirectly) {
+ return new ApplicationVersion(source, OptionalLong.of(buildNumber), authorEmail, compileVersion, buildTime, sourceUrl, commit, deployedDirectly);
}
/** Returns an unique identifier for this version or "unknown" if version is not known */
@@ -142,18 +138,24 @@ public class ApplicationVersion implements Comparable<ApplicationVersion> {
return this.equals(unknown);
}
+ /** Returns whether the application package for this version was deployed directly to zone */
+ public boolean isDeployedDirectly() {
+ return deployedDirectly;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
if ( ! (o instanceof ApplicationVersion)) return false;
ApplicationVersion that = (ApplicationVersion) o;
return Objects.equals(buildNumber, that.buildNumber)
- && Objects.equals(commit(), that.commit());
+ && Objects.equals(commit(), that.commit())
+ && deployedDirectly == that.deployedDirectly;
}
@Override
public int hashCode() {
- return Objects.hash(buildNumber, commit());
+ return Objects.hash(buildNumber, commit(), deployedDirectly);
}
@Override