From a256c020150f4327dcc276f1c82cde09e0227c90 Mon Sep 17 00:00:00 2001 From: Ola Aunronning Date: Mon, 26 Jun 2023 15:47:52 +0200 Subject: Store CMR categories and forward to node reports --- .../api/integration/vcmr/ChangeRequestSource.java | 87 ++++------------------ .../api/integration/vcmr/VcmrReport.java | 7 +- .../api/integration/vcmr/VespaChangeRequest.java | 1 - 3 files changed, 18 insertions(+), 77 deletions(-) (limited to 'controller-api/src/main/java') 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; -- cgit v1.2.3