Skip to content

Commit

Permalink
Fix Sonar complaints
Browse files Browse the repository at this point in the history
  • Loading branch information
adejanovski committed Jun 13, 2017
1 parent b043bbb commit 89463fc
Showing 1 changed file with 41 additions and 27 deletions.
68 changes: 41 additions & 27 deletions src/main/java/com/spotify/reaper/resources/RepairRunResource.java
Original file line number Diff line number Diff line change
Expand Up @@ -405,7 +405,7 @@ public Response getRepairRunsForCluster(@PathParam("cluster_name") String cluste
*/
private RepairRunStatus getRepairRunStatus(RepairRun repairRun) {
Optional<RepairUnit> repairUnit = context.storage.getRepairUnit(repairRun.getRepairUnitId());
Preconditions.checkState(repairUnit.isPresent(), "no repair unit found with id: " + repairRun.getRepairUnitId());
Preconditions.checkState(repairUnit.isPresent(), "no repair unit found with id: %s", repairRun.getRepairUnitId());
int segmentsRepaired =
context.storage.getSegmentAmountForRepairRunWithState(repairRun.getId(),
RepairSegment.State.DONE);
Expand Down Expand Up @@ -438,37 +438,51 @@ private URI buildRepairRunURI(UriInfo uriInfo, RepairRun repairRun) {
*/
@GET
public Response listRepairRuns(@QueryParam("state") Optional<String> state) {
Set desiredStates = splitStateParam(state);
if (desiredStates == null) {
return Response.status(Response.Status.BAD_REQUEST).build();
try {
List<RepairRunStatus> runStatuses = Lists.newArrayList();
Set desiredStates = splitStateParam(state);
if (desiredStates == null) {
return Response.status(Response.Status.BAD_REQUEST).build();
}
Collection<RepairRun> runs;

Collection<Cluster> clusters = context.storage.getClusters();
for (Cluster cluster : clusters) {
runs = context.storage.getRepairRunsForCluster(cluster.getName());
runStatuses.addAll(getRunStatuses(runs, desiredStates));
}

return Response.status(Response.Status.OK).entity(runStatuses).build();
} catch (Exception e) {
LOG.error("Failed listing cluster statuses", e);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
Collection<RepairRun> runs;
}

private List<RepairRunStatus> getRunStatuses(Collection<RepairRun> runs, Set desiredStates) throws ReaperException {
List<RepairRunStatus> runStatuses = Lists.newArrayList();
Collection<Cluster> clusters = context.storage.getClusters();
for (Cluster cluster : clusters) {
runs = context.storage.getRepairRunsForCluster(cluster.getName());
for (RepairRun run : runs) {
if (!desiredStates.isEmpty() && !desiredStates.contains(run.getRunState().name())) {
continue;
}
Optional<RepairUnit> runsUnit = context.storage.getRepairUnit(run.getRepairUnitId());
if (runsUnit.isPresent()) {
int segmentsRepaired = run.getSegmentCount();
if (!run.getRunState().equals(RepairRun.RunState.DONE)) {
segmentsRepaired = context.storage.getSegmentAmountForRepairRunWithState(run.getId(),
RepairSegment.State.DONE);
}

runStatuses.add(new RepairRunStatus(run, runsUnit.get(), segmentsRepaired));
} else {
String errMsg =
String.format("Found repair run %d with no associated repair unit", run.getId());
LOG.error(errMsg);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
for (RepairRun run : runs) {
if (!desiredStates.isEmpty() && !desiredStates.contains(run.getRunState().name())) {
continue;
}
Optional<RepairUnit> runsUnit = context.storage.getRepairUnit(run.getRepairUnitId());
if (runsUnit.isPresent()) {
int segmentsRepaired = run.getSegmentCount();
if (!run.getRunState().equals(RepairRun.RunState.DONE)) {
segmentsRepaired = context.storage.getSegmentAmountForRepairRunWithState(run.getId(),
RepairSegment.State.DONE);
}

runStatuses.add(new RepairRunStatus(run, runsUnit.get(), segmentsRepaired));
} else {
String errMsg =
String.format("Found repair run %d with no associated repair unit", run.getId());
LOG.error(errMsg);
throw new ReaperException("Internal server error : " + errMsg);
}
}
return Response.status(Response.Status.OK).entity(runStatuses).build();

return runStatuses;
}

@VisibleForTesting
Expand Down

0 comments on commit 89463fc

Please sign in to comment.