private async Task DeleteServerWideTaskCommand(OngoingTaskType taskType) { var name = GetStringQueryString("name", required: true); using (ServerStore.ContextPool.AllocateOperationContext(out TransactionOperationContext context)) { var deleteConfiguration = new DeleteServerWideTaskCommand.DeleteConfiguration { TaskName = name, Type = taskType }; var(newIndex, _) = await ServerStore.DeleteServerWideTaskAsync(deleteConfiguration, GetRaftRequestIdFromQuery()); await ServerStore.WaitForCommitIndexChange(RachisConsensus.CommitIndexModification.GreaterOrEqual, newIndex); await using (var writer = new AsyncBlittableJsonTextWriter(context, ResponseBodyStream())) using (context.OpenReadTransaction()) { var deleteResponse = new ServerWideTaskResponse { Name = name, RaftCommandIndex = newIndex }; HttpContext.Response.StatusCode = (int)HttpStatusCode.OK; context.Write(writer, deleteResponse.ToJson()); } } }
public async Task ToggleServerWideTaskState() { var typeAsString = GetStringQueryString("type", required: true); var taskName = GetStringQueryString("name", required: true); var disable = GetBoolValueQueryString("disable") ?? true; if (Enum.TryParse(typeAsString, out OngoingTaskType type) == false) { throw new ArgumentException($"{typeAsString} is unknown task type."); } using (ServerStore.ContextPool.AllocateOperationContext(out TransactionOperationContext context)) using (context.OpenReadTransaction()) { var configuration = new ToggleServerWideTaskStateCommand.Parameters { Type = type, TaskName = taskName, Disable = disable }; var(newIndex, _) = await ServerStore.ToggleServerWideTaskStateAsync(configuration, GetRaftRequestIdFromQuery()); await ServerStore.WaitForCommitIndexChange(RachisConsensus.CommitIndexModification.GreaterOrEqual, newIndex); using (var writer = new BlittableJsonTextWriter(context, ResponseBodyStream())) { var toggleResponse = new ServerWideTaskResponse { Name = taskName, RaftCommandIndex = newIndex }; context.Write(writer, toggleResponse.ToJson()); writer.Flush(); } } }