From 4eb44a665a523462201fa311fe3aaf28dcfce55e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Hegerfors?= Date: Fri, 12 Dec 2014 12:07:48 +0100 Subject: [PATCH] Increment RepairRun.completedSegments on finished segment --- src/main/java/com/spotify/reaper/core/RepairRun.java | 5 ++--- src/main/java/com/spotify/reaper/service/RepairRunner.java | 6 +++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/spotify/reaper/core/RepairRun.java b/src/main/java/com/spotify/reaper/core/RepairRun.java index c36ba8603..fd11dbcf3 100644 --- a/src/main/java/com/spotify/reaper/core/RepairRun.java +++ b/src/main/java/com/spotify/reaper/core/RepairRun.java @@ -74,11 +74,10 @@ public int getCompletedSegments() { } public static RepairRun getCopy(RepairRun repairRun, RunState newState, - DateTime startTime, DateTime endTime, - int totalSegments, int completedSegments) { + DateTime startTime, DateTime endTime, int completedSegments) { return new RepairRun.Builder(newState, repairRun.getCreationTime(), repairRun.getIntensity(), - totalSegments, completedSegments) + repairRun.getTotalSegments(), completedSegments) .cause(repairRun.getCause()) .owner(repairRun.getOwner()) .startTime(startTime) diff --git a/src/main/java/com/spotify/reaper/service/RepairRunner.java b/src/main/java/com/spotify/reaper/service/RepairRunner.java index 0fe6992ee..405708348 100644 --- a/src/main/java/com/spotify/reaper/service/RepairRunner.java +++ b/src/main/java/com/spotify/reaper/service/RepairRunner.java @@ -253,7 +253,7 @@ private void changeCurrentRepairRunState(RepairRun.RunState newRunState) { updatedRun = RepairRun .getCopy(repairRun, newRunState, newStartTime, newEndTime, - repairRun.getTotalSegments(), repairRun.getCompletedSegments()); + repairRun.getCompletedSegments()); if (!storage.updateRepairRun(updatedRun)) { LOG.error("failed updating repair run status: {}", repairRun.getId()); // TODO: what should we do if we fail to update storage? @@ -308,6 +308,10 @@ public void handle(int repairNumber, ActiveRepairService.Status status, String m currentSegment.getRepairCommandId(), currentSegment.getStartTime(), DateTime.now()); storage.updateRepairSegment(currentSegment); + repairRun = + RepairRun.getCopy(repairRun, repairRun.getState(), repairRun.getStartTime(), + repairRun.getEndTime(), repairRun.getCompletedSegments() + 1); + storage.updateRepairRun(repairRun); checkIfNeedToStartNextSegment(); break; }