summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2019-11-28 13:01:34 +0100
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2019-11-28 13:06:03 +0100
commit40aa32608e141ae88b55e46a3023a0d0bc78b6f7 (patch)
tree8ed0fa8b4ef7a0fef45b87bbc0f0ddf141cf32f9 /controller-server
parent26936a299c9722527864fdfe018c8a694c711ea5 (diff)
Split deduplication logic into separate methods
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/SystemFlagsDeployResult.java35
1 files changed, 22 insertions, 13 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/SystemFlagsDeployResult.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/SystemFlagsDeployResult.java
index 0d7d8f76162..2994c4a83be 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/SystemFlagsDeployResult.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/SystemFlagsDeployResult.java
@@ -46,33 +46,42 @@ class SystemFlagsDeployResult {
}
static SystemFlagsDeployResult merge(List<SystemFlagsDeployResult> results) {
- Map<FlagDataChangeWithoutTarget, Set<FlagsTarget>> targetsForChange = new HashMap<>();
- Map<OperationErrorWithoutTarget, Set<FlagsTarget>> targetsForError = new HashMap<>();
+ List<FlagDataChange> mergedChanges = mergeChanges(results);
+ List<OperationError> mergedErrors = mergeErrors(results);
+ return new SystemFlagsDeployResult(mergedChanges, mergedErrors);
+ }
+ private static List<OperationError> mergeErrors(List<SystemFlagsDeployResult> results) {
+ Map<OperationErrorWithoutTarget, Set<FlagsTarget>> targetsForError = new HashMap<>();
for (SystemFlagsDeployResult result : results) {
- for (FlagDataChange change : result.flagChanges()) {
- var changeWithoutTarget = new FlagDataChangeWithoutTarget(change);
- targetsForChange.computeIfAbsent(changeWithoutTarget, k -> new HashSet<>())
- .addAll(change.targets());
- }
-
for (OperationError error : result.errors()) {
var errorWithoutTarget = new OperationErrorWithoutTarget(error);
targetsForError.computeIfAbsent(errorWithoutTarget, k -> new HashSet<>())
.addAll(error.targets());
}
}
+ List<OperationError> mergedErrors = new ArrayList<>();
+ targetsForError.forEach(
+ (error, targets) -> mergedErrors.add(error.toOperationError(targets)));
+ return mergedErrors;
+ }
+ private static List<FlagDataChange> mergeChanges(List<SystemFlagsDeployResult> results) {
+ Map<FlagDataChangeWithoutTarget, Set<FlagsTarget>> targetsForChange = new HashMap<>();
+ for (SystemFlagsDeployResult result : results) {
+ for (FlagDataChange change : result.flagChanges()) {
+ var changeWithoutTarget = new FlagDataChangeWithoutTarget(change);
+ targetsForChange.computeIfAbsent(changeWithoutTarget, k -> new HashSet<>())
+ .addAll(change.targets());
+ }
+ }
List<FlagDataChange> mergedChanges = new ArrayList<>();
targetsForChange.forEach(
(change, targets) -> mergedChanges.add(change.toFlagDataChange(targets)));
-
- List<OperationError> mergedErrors = new ArrayList<>();
- targetsForError.forEach(
- (error, targets) -> mergedErrors.add(error.toOperationError(targets)));
- return new SystemFlagsDeployResult(mergedChanges, mergedErrors);
+ return mergedChanges;
}
+
WireSystemFlagsDeployResult toWire() {
var wireResult = new WireSystemFlagsDeployResult();
wireResult.changes = new ArrayList<>();