aboutsummaryrefslogtreecommitdiffstats
path: root/controller-api
diff options
context:
space:
mode:
authorOla Aunrønning <olaa@verizonmedia.com>2021-04-14 12:46:57 +0200
committerOla Aunrønning <olaa@verizonmedia.com>2021-04-16 11:34:44 +0200
commitdc8cf2848a7bd3e535b6296128cb28064e66bf6f (patch)
tree2a6870065f7a9ec21934411eab7d6b7e02b4ce0c /controller-api
parent3aef0ca8a0ffa0423b0e2299e5fa139770d21793 (diff)
Add VCMRMaintainer
Diffstat (limited to 'controller-api')
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/ChangeRequestSource.java7
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/HostAction.java14
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/VespaChangeRequest.java23
3 files changed, 42 insertions, 2 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 632999ed1c3..6cf0f6e0ebd 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
@@ -2,8 +2,11 @@
package com.yahoo.vespa.hosted.controller.api.integration.vcmr;
import java.time.ZonedDateTime;
+import java.util.List;
import java.util.Objects;
+import static com.yahoo.vespa.hosted.controller.api.integration.vcmr.ChangeRequestSource.Status.*;
+
/**
* @author olaa
*/
@@ -80,6 +83,10 @@ public class ChangeRequestSource {
return Objects.hash(system, id, status, url, plannedStartTime, plannedEndTime);
}
+ public boolean isClosed() {
+ return List.of(CLOSED, CANCELED, COMPLETE).contains(status);
+ }
+
public enum Status {
DRAFT,
WAITING_FOR_APPROVAL,
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/HostAction.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/HostAction.java
index eeb7d89cbe7..b92ea665d13 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/HostAction.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/HostAction.java
@@ -7,6 +7,7 @@ import java.util.Objects;
/**
* @author olaa
*
+ * Contains planned/current action for a host impacted by a change request
*/
public class HostAction {
@@ -32,6 +33,10 @@ public class HostAction {
return lastUpdated;
}
+ public HostAction withState(State state) {
+ return new HostAction(hostname, state, this.state == state ? lastUpdated : Instant.now());
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
@@ -47,6 +52,15 @@ public class HostAction {
return Objects.hash(hostname, state, lastUpdated);
}
+ @Override
+ public String toString() {
+ return "HostAction{" +
+ "hostname='" + hostname + '\'' +
+ ", state=" + state +
+ ", lastUpdated=" + lastUpdated +
+ '}';
+ }
+
public enum State {
REQUIRES_OPERATOR_ACTION,
PENDING_RETIREMENT,
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 1dda6bb099c..eec5684d522 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
@@ -40,12 +40,16 @@ public class VespaChangeRequest extends ChangeRequest {
return zoneId;
}
+ public VespaChangeRequest withStatus(Status status) {
+ return new VespaChangeRequest(getId(), getChangeRequestSource(), getImpactedSwitches(), getImpactedHosts(), getApproval(), getImpact(), status, hostActionPlan, zoneId);
+ }
+
public VespaChangeRequest withSource(ChangeRequestSource source) {
return new VespaChangeRequest(getId(), source, getImpactedSwitches(), getImpactedHosts(), getApproval(), getImpact(), status, hostActionPlan, zoneId);
}
- public VespaChangeRequest withImpactedHosts(List<String> hosts) {
- return new VespaChangeRequest(getId(), getChangeRequestSource(), getImpactedSwitches(), new ArrayList<>(hosts), getApproval(), getImpact(), status, hostActionPlan, zoneId);
+ public VespaChangeRequest withActionPlan(List<HostAction> hostActionPlan) {
+ return new VespaChangeRequest(getId(), getChangeRequestSource(), getImpactedSwitches(), getImpactedHosts(), getApproval(), getImpact(), status, hostActionPlan, zoneId);
}
@Override
@@ -64,6 +68,21 @@ public class VespaChangeRequest extends ChangeRequest {
return Objects.hash(super.hashCode(), status, hostActionPlan, zoneId);
}
+ @Override
+ public String toString() {
+ return "VespaChangeRequest{" +
+ "id='" + getId() + '\'' +
+ ", changeRequestSource=" + getChangeRequestSource() +
+ ", impactedSwitches=" + getImpactedSwitches() +
+ ", impactedHosts=" + getImpactedHosts() +
+ ", approval=" + getApproval() +
+ ", impact=" + getImpact() +
+ ", status=" + status +
+ ", zoneId=" + zoneId +
+ ", hostActionPlan=" + hostActionPlan +
+ '}';
+ }
+
public enum Status {
COMPLETED,
IN_PROGRESS,