diff --git a/src/docs/content/docs/api.md b/src/docs/content/docs/api.md index d06e6ff91..cc994e1e0 100644 --- a/src/docs/content/docs/api.md +++ b/src/docs/content/docs/api.md @@ -96,7 +96,7 @@ This operation expects that a call was previously made to `/login` and that the * Returns the list of segments of the repair run. -* **GET /repair_run/{id}/segments/abort/{segment_id}** +* **POST /repair_run/{id}/segments/abort/{segment_id}** * Expected query parameters: *None* * Aborts a running segment and puts it back in NOT_STARTED state. The segment will be processed again later during the lifetime of the repair run. diff --git a/src/packaging/bin/spreaper b/src/packaging/bin/spreaper index 5b91be956..7198e055c 100755 --- a/src/packaging/bin/spreaper +++ b/src/packaging/bin/spreaper @@ -839,7 +839,7 @@ class ReaperCLI(object): extra_arguments=_arguments_for_abort_segment ) printq("# Aborting a segment with run id: {0} and segment id {1}".format(args.run_id, args.segment_id)) - reaper.get("repair_run/{0}/segments/abort/{1}".format(args.run_id, args.segment_id)) + reaper.post("repair_run/{0}/segments/abort/{1}".format(args.run_id, args.segment_id)) printq("# Segment '{0}' aborted".format(args.segment_id)) def start_schedule(self): diff --git a/src/server/src/main/java/io/cassandrareaper/resources/RepairRunResource.java b/src/server/src/main/java/io/cassandrareaper/resources/RepairRunResource.java index 9f3518c4b..dff507f42 100644 --- a/src/server/src/main/java/io/cassandrareaper/resources/RepairRunResource.java +++ b/src/server/src/main/java/io/cassandrareaper/resources/RepairRunResource.java @@ -580,7 +580,7 @@ public Response getRepairRunSegments(@PathParam("id") UUID repairRunId) { /** * @return Aborts a running segment. */ - @GET + @POST @Path("/{id}/segments/abort/{segment_id}") public Response getRepairRunSegments( @PathParam("id") UUID repairRunId, @PathParam("segment_id") UUID segmentId) { @@ -769,7 +769,7 @@ public Response deleteRepairRun( return Response.status(Response.Status.NOT_FOUND).entity("Repair run %s" + runId + " not found").build(); } - @GET + @POST @Path("/purge") public Response purgeRepairRuns() throws ReaperException { int purgedRepairs = PurgeService.create(context).purgeDatabase(); diff --git a/src/server/src/test/java/io/cassandrareaper/acceptance/BasicSteps.java b/src/server/src/test/java/io/cassandrareaper/acceptance/BasicSteps.java index bda4b3e78..a385eccb7 100644 --- a/src/server/src/test/java/io/cassandrareaper/acceptance/BasicSteps.java +++ b/src/server/src/test/java/io/cassandrareaper/acceptance/BasicSteps.java @@ -1381,7 +1381,7 @@ public void reseting_one_segment_sets_its_state_to_not_started() throws Throwabl await().with().pollInterval(1, SECONDS).atMost(2, MINUTES).until( () -> { Response abort = runner.callReaper( - "GET", // TODO – this should be a POST + "POST", "/repair_run/" + testContext.getCurrentRepairId() + "/segments/abort/" diff --git a/src/ui/app/jsx/segment-list.jsx b/src/ui/app/jsx/segment-list.jsx index 6f40116a0..52d62cb9d 100644 --- a/src/ui/app/jsx/segment-list.jsx +++ b/src/ui/app/jsx/segment-list.jsx @@ -345,7 +345,7 @@ const Segment = React.createClass({ this.props.notify("Aborting segment " + this.props.segment.id, "warning", this.props.segment.id); $.ajax({ url: this.props.urlPrefix + '/repair_run/' + encodeURIComponent(this.props.segment.runId) + '/segments/abort/' + encodeURIComponent(this.props.segment.id), - method: 'GET', + method: 'POST', component: this, success: function(data) { this.component.props.notify("Successfully aborted segment " + this.component.props.segment.id, "success", this.component.props.segment.id)