diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2019-11-28 13:01:34 +0100 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2019-11-28 13:06:03 +0100 |
commit | 40aa32608e141ae88b55e46a3023a0d0bc78b6f7 (patch) | |
tree | 8ed0fa8b4ef7a0fef45b87bbc0f0ddf141cf32f9 /controller-server | |
parent | 26936a299c9722527864fdfe018c8a694c711ea5 (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.java | 35 |
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<>(); |