summaryrefslogtreecommitdiffstats
path: root/controller-api
diff options
context:
space:
mode:
authorOla Aunronning <olaa@yahooinc.com>2023-06-26 15:47:52 +0200
committerOla Aunronning <olaa@yahooinc.com>2023-06-26 15:47:52 +0200
commita256c020150f4327dcc276f1c82cde09e0227c90 (patch)
tree5f442474cf73e8750474ad379d61f62f581cd2fa /controller-api
parent0c341f8ed39b3edcd1938d964cbdf9ce7c179411 (diff)
Store CMR categories and forward to node reports
Diffstat (limited to 'controller-api')
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/ChangeRequestSource.java87
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/VcmrReport.java7
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/VespaChangeRequest.java1
3 files changed, 18 insertions, 77 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/ChangeRequestSource.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/ChangeRequestSource.java
index e5b3422b79b..0c43a3704df 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/ChangeRequestSource.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/ChangeRequestSource.java
@@ -10,78 +10,13 @@ import static com.yahoo.vespa.hosted.controller.api.integration.vcmr.ChangeReque
/**
* @author olaa
*/
-public class ChangeRequestSource {
-
- private final String system;
- private final String id;
- private final Status status;
- private final String url;
- private final ZonedDateTime plannedStartTime;
- private final ZonedDateTime plannedEndTime;
-
-
- public ChangeRequestSource(String system, String id, String url, Status status, ZonedDateTime plannedStartTime, ZonedDateTime plannedEndTime) {
- this.system = Objects.requireNonNull(system);
- this.id = Objects.requireNonNull(id);
- this.url = Objects.requireNonNull(url);
- this.status = Objects.requireNonNull(status);
- this.plannedStartTime = Objects.requireNonNull(plannedStartTime);
- this.plannedEndTime = Objects.requireNonNull(plannedEndTime);
- }
-
- public String getSystem() {
- return system;
- }
-
- public String getId() {
- return id;
- }
-
- public Status getStatus() {
- return status;
- }
-
- public String getUrl() {
- return url;
- }
-
- public ZonedDateTime getPlannedStartTime() {
- return plannedStartTime;
- }
-
- public ZonedDateTime getPlannedEndTime() {
- return plannedEndTime;
- }
-
- @Override
- public String toString() {
- return "ChangeRequestSource{" +
- "system='" + system + '\'' +
- ", id='" + id + '\'' +
- ", status=" + status +
- ", url='" + url + '\'' +
- ", plannedStartTime=" + plannedStartTime +
- ", plannedEndTime=" + plannedEndTime +
- '}';
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- ChangeRequestSource that = (ChangeRequestSource) o;
- return Objects.equals(system, that.system) &&
- Objects.equals(id, that.id) &&
- status == that.status &&
- Objects.equals(url, that.url) &&
- Objects.equals(plannedStartTime, that.plannedStartTime) &&
- Objects.equals(plannedEndTime, that.plannedEndTime);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(system, id, status, url, plannedStartTime, plannedEndTime);
- }
+public record ChangeRequestSource(String system,
+ String id,
+ String url,
+ Status status,
+ ZonedDateTime plannedStartTime,
+ ZonedDateTime plannedEndTime,
+ String category) {
public boolean isClosed() {
return List.of(CLOSED, CANCELED, COMPLETE).contains(status);
@@ -105,6 +40,7 @@ public class ChangeRequestSource {
private Status status;
private ZonedDateTime plannedStartTime;
private ZonedDateTime plannedEndTime;
+ private String category;
public Builder system(String system) {
this.system = system;
@@ -136,8 +72,13 @@ public class ChangeRequestSource {
return this;
}
+ public Builder category(String category) {
+ this.category = category;
+ return this;
+ }
+
public ChangeRequestSource build() {
- return new ChangeRequestSource(system, id, url, status, plannedStartTime, plannedEndTime);
+ return new ChangeRequestSource(system, id, url, status, plannedStartTime, plannedEndTime, category);
}
}
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/VcmrReport.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/VcmrReport.java
index 660f3c50556..89cf6f4b28d 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/VcmrReport.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/VcmrReport.java
@@ -47,12 +47,12 @@ public class VcmrReport {
* @return true if list of VCMRs is changed
*/
public boolean addVcmr(ChangeRequestSource source) {
- var vcmr = new Vcmr(source.getId(), source.getStatus().name(), source.getPlannedStartTime(), source.getPlannedEndTime());
+ var vcmr = new Vcmr(source.id(), source.status().name(), source.plannedStartTime(), source.plannedEndTime(), source.category());
if (vcmrs.contains(vcmr))
return false;
// Remove to catch any changes in start/end time
- removeVcmr(source.getId());
+ removeVcmr(source.id());
return vcmrs.add(vcmr);
}
@@ -95,6 +95,7 @@ public class VcmrReport {
public record Vcmr (@JsonProperty("id") String id,
@JsonProperty("status") String status,
@JsonProperty("plannedStartTime") ZonedDateTime plannedStartTime,
- @JsonProperty("plannedEndTime") ZonedDateTime plannedEndTime) {}
+ @JsonProperty("plannedEndTime") ZonedDateTime plannedEndTime,
+ @JsonProperty("category") String category) {}
}
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/VespaChangeRequest.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/VespaChangeRequest.java
index e0f867b97be..2771520e7fc 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/VespaChangeRequest.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/VespaChangeRequest.java
@@ -3,7 +3,6 @@ package com.yahoo.vespa.hosted.controller.api.integration.vcmr;
import com.yahoo.config.provision.zone.ZoneId;
-import java.util.ArrayList;
import java.util.List;
import java.util.Objects;