diff options
author | Ola Aunrønning <olaa@verizonmedia.com> | 2021-03-16 13:26:02 +0100 |
---|---|---|
committer | Ola Aunrønning <olaa@verizonmedia.com> | 2021-03-16 13:26:02 +0100 |
commit | aa8e6e177a5d418d90e9afec815b5087e2a3fd12 (patch) | |
tree | 3abbf1a45982e6c7ad2395ef856ab85bc3cd943a /controller-api | |
parent | 58b46f88e30d34c339d86f4954e77db56e9295e0 (diff) |
Only approve change requests pending approval. Replace noop change client with mock.
Diffstat (limited to 'controller-api')
3 files changed, 52 insertions, 31 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/ChangeRequest.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/ChangeRequest.java index a56f96955de..31665c8ae0a 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/ChangeRequest.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/ChangeRequest.java @@ -13,15 +13,15 @@ public class ChangeRequest { private final ChangeRequestSource changeRequestSource; private final List<String> impactedSwitches; private final List<String> impactedHosts; - private final boolean isApproved; + private final Approval approval; private final Impact impact; - private ChangeRequest(String id, ChangeRequestSource changeRequestSource, List<String> impactedSwitches, List<String> impactedHosts, boolean isApproved, Impact impact) { + private ChangeRequest(String id, ChangeRequestSource changeRequestSource, List<String> impactedSwitches, List<String> impactedHosts, Approval approval, Impact impact) { this.id = Objects.requireNonNull(id); this.changeRequestSource = Objects.requireNonNull(changeRequestSource); this.impactedSwitches = Objects.requireNonNull(impactedSwitches); this.impactedHosts = Objects.requireNonNull(impactedHosts); - this.isApproved = Objects.requireNonNull(isApproved); + this.approval = Objects.requireNonNull(approval); this.impact = Objects.requireNonNull(impact); } @@ -41,8 +41,8 @@ public class ChangeRequest { return impactedHosts; } - public boolean isApproved() { - return isApproved; + public Approval getApproval() { + return approval; } public Impact getImpact() { @@ -56,7 +56,7 @@ public class ChangeRequest { ", changeRequestSource=" + changeRequestSource + ", impactedSwitches=" + impactedSwitches + ", impactedHosts=" + impactedHosts + - ", isApproved=" + isApproved + + ", approval=" + approval + ", impact=" + impact + '}'; } @@ -66,7 +66,7 @@ public class ChangeRequest { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; ChangeRequest that = (ChangeRequest) o; - return isApproved == that.isApproved && + return approval == that.approval && Objects.equals(id, that.id) && Objects.equals(changeRequestSource, that.changeRequestSource) && Objects.equals(impactedSwitches, that.impactedSwitches) && @@ -76,7 +76,7 @@ public class ChangeRequest { @Override public int hashCode() { - return Objects.hash(id, changeRequestSource, impactedSwitches, impactedHosts, isApproved, impact); + return Objects.hash(id, changeRequestSource, impactedSwitches, impactedHosts, approval, impact); } public static class Builder { @@ -84,7 +84,7 @@ public class ChangeRequest { private ChangeRequestSource changeRequestSource; private List<String> impactedSwitches; private List<String> impactedHosts; - private boolean isApproved; + private Approval approval; private Impact impact; @@ -108,8 +108,8 @@ public class ChangeRequest { return this; } - public Builder isApproved(boolean isApproved) { - this.isApproved = isApproved; + public Builder approval(Approval approval) { + this.approval = approval; return this; } @@ -119,7 +119,7 @@ public class ChangeRequest { } public ChangeRequest build() { - return new ChangeRequest(id, changeRequestSource, impactedSwitches, impactedHosts, isApproved, impact); + return new ChangeRequest(id, changeRequestSource, impactedSwitches, impactedHosts, approval, impact); } public String getId() { @@ -136,4 +136,11 @@ public class ChangeRequest { UNKNOWN } + public enum Approval { + REQUESTED, + APPROVED, + REJECTED, + OTHER + } + } diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/MockChangeRequestClient.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/MockChangeRequestClient.java new file mode 100644 index 00000000000..e85c0afcb0e --- /dev/null +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/MockChangeRequestClient.java @@ -0,0 +1,33 @@ +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.hosted.controller.api.integration.vcmr; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author olaa + */ +public class MockChangeRequestClient implements ChangeRequestClient { + + private List<ChangeRequest> upcomingChangeRequests = new ArrayList<>(); + private List<ChangeRequest> approvedChangeRequests = new ArrayList<>(); + + @Override + public List<ChangeRequest> getUpcomingChangeRequests() { + return upcomingChangeRequests; + } + + @Override + public void approveChangeRequests(List<ChangeRequest> changeRequests) { + approvedChangeRequests.addAll(changeRequests); + } + + public void setUpcomingChangeRequests(List<ChangeRequest> changeRequests) { + upcomingChangeRequests = changeRequests; + } + + public List<ChangeRequest> getApprovedChangeRequests() { + return approvedChangeRequests; + } + +} diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/NoopChangeRequestClient.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/NoopChangeRequestClient.java deleted file mode 100644 index d548620b062..00000000000 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/vcmr/NoopChangeRequestClient.java +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.hosted.controller.api.integration.vcmr; - -import java.util.List; - -/** - * @author olaa - */ -public class NoopChangeRequestClient implements ChangeRequestClient { - - @Override - public List<ChangeRequest> getUpcomingChangeRequests() { - return List.of(); - } - - @Override - public void approveChangeRequests(List<ChangeRequest> changeRequests) {} - -} |