/** * Cancels a task * <p> * Returns true if cancellation was started successful, null otherwise. * * After starting cancellation on the parent task, the task manager tries to cancel all children tasks * of the current task. Once cancellation of the children tasks is done, the listener is triggered. */ public boolean cancel(CancellableTask task, String reason, Runnable listener) { CancellableTaskHolder holder = cancellableTasks.get(task.getId()); if (holder != null) { logger.trace("cancelling task with id {}", task.getId()); return holder.cancel(reason, listener); } return false; }
/** * Returns the list of currently running tasks on the node that can be cancelled */ public Map<Long, CancellableTask> getCancellableTasks() { HashMap<Long, CancellableTask> taskHashMap = new HashMap<>(); for (CancellableTaskHolder holder : cancellableTasks.values()) { taskHashMap.put(holder.getTask().getId(), holder.getTask()); } return Collections.unmodifiableMap(taskHashMap); }
/** * Returns the list of currently running tasks on the node */ public Map<Long, Task> getTasks() { HashMap<Long, Task> taskHashMap = new HashMap<>(this.tasks); for (CancellableTaskHolder holder : cancellableTasks.values()) { taskHashMap.put(holder.getTask().getId(), holder.getTask()); } return Collections.unmodifiableMap(taskHashMap); }
private void processResponse() { banLock.onBanSet(); if (responses.decrementAndGet() == 0) { if (failures.isEmpty() == false) { IllegalStateException exception = new IllegalStateException("failed to cancel children of the task [" + cancellableTask.getId() + "]"); failures.forEach(exception::addSuppressed); listener.onFailure(exception); } else { listener.onResponse(cancellableTask.taskInfo(nodeId, false)); } } } });
private void setBanOnNodes(String reason, CancellableTask task, DiscoveryNodes nodes, ActionListener<Void> listener) { sendSetBanRequest(nodes, BanParentTaskRequest.createSetBanParentTaskRequest(new TaskId(clusterService.localNode().getId(), task.getId()), reason), listener); }
private void removeBanOnNodes(CancellableTask task, DiscoveryNodes nodes) { sendRemoveBanRequest(nodes, BanParentTaskRequest.createRemoveBanParentTaskRequest(new TaskId(clusterService.localNode().getId(), task.getId()))); }
if (canceled) { logger.trace("cancelling task {} on child nodes", cancellableTask.getId()); AtomicInteger responses = new AtomicInteger(childNodes.getSize()); List<Exception> failures = new ArrayList<>(); () -> listener.onResponse(cancellableTask.taskInfo(nodeId, false))); if (canceled) { logger.trace("task {} doesn't have any children that should be cancelled", cancellableTask.getId()); logger.trace("task {} is already cancelled", cancellableTask.getId()); throw new IllegalStateException("task with id " + cancellableTask.getId() + " is already cancelled");
/** * Returns the list of currently running tasks on the node */ public Map<Long, Task> getTasks() { HashMap<Long, Task> taskHashMap = new HashMap<>(this.tasks); for (CancellableTaskHolder holder : cancellableTasks.values()) { taskHashMap.put(holder.getTask().getId(), holder.getTask()); } return Collections.unmodifiableMap(taskHashMap); }
/** * Returns the list of currently running tasks on the node */ public Map<Long, Task> getTasks() { HashMap<Long, Task> taskHashMap = new HashMap<>(this.tasks); for (CancellableTaskHolder holder : cancellableTasks.values()) { taskHashMap.put(holder.getTask().getId(), holder.getTask()); } return Collections.unmodifiableMap(taskHashMap); }
/** * Returns the list of currently running tasks on the node that can be cancelled */ public Map<Long, CancellableTask> getCancellableTasks() { HashMap<Long, CancellableTask> taskHashMap = new HashMap<>(); for (CancellableTaskHolder holder : cancellableTasks.values()) { taskHashMap.put(holder.getTask().getId(), holder.getTask()); } return Collections.unmodifiableMap(taskHashMap); }
/** * Returns the list of currently running tasks on the node */ public Map<Long, Task> getTasks() { HashMap<Long, Task> taskHashMap = new HashMap<>(this.tasks); for (CancellableTaskHolder holder : cancellableTasks.values()) { taskHashMap.put(holder.getTask().getId(), holder.getTask()); } return Collections.unmodifiableMap(taskHashMap); }
/** * Returns the list of currently running tasks on the node that can be cancelled */ public Map<Long, CancellableTask> getCancellableTasks() { HashMap<Long, CancellableTask> taskHashMap = new HashMap<>(); for (CancellableTaskHolder holder : cancellableTasks.values()) { taskHashMap.put(holder.getTask().getId(), holder.getTask()); } return Collections.unmodifiableMap(taskHashMap); }
/** * Returns the list of currently running tasks on the node that can be cancelled */ public Map<Long, CancellableTask> getCancellableTasks() { HashMap<Long, CancellableTask> taskHashMap = new HashMap<>(); for (CancellableTaskHolder holder : cancellableTasks.values()) { taskHashMap.put(holder.getTask().getId(), holder.getTask()); } return Collections.unmodifiableMap(taskHashMap); }
/** * Returns the list of currently running tasks on the node */ public Map<Long, Task> getTasks() { HashMap<Long, Task> taskHashMap = new HashMap<>(this.tasks); for (CancellableTaskHolder holder : cancellableTasks.values()) { taskHashMap.put(holder.getTask().getId(), holder.getTask()); } return Collections.unmodifiableMap(taskHashMap); }
/** * Returns the list of currently running tasks on the node that can be cancelled */ public Map<Long, CancellableTask> getCancellableTasks() { HashMap<Long, CancellableTask> taskHashMap = new HashMap<>(); for (CancellableTaskHolder holder : cancellableTasks.values()) { taskHashMap.put(holder.getTask().getId(), holder.getTask()); } return Collections.unmodifiableMap(taskHashMap); }
private void setBanOnNodes(String reason, CancellableTask task, DiscoveryNodes nodes, ActionListener<Void> listener) { sendSetBanRequest(nodes, BanParentTaskRequest.createSetBanParentTaskRequest(new TaskId(clusterService.localNode().getId(), task.getId()), reason), listener); }
private void setBanOnNodes(String reason, CancellableTask task, DiscoveryNodes nodes, ActionListener<Void> listener) { sendSetBanRequest(nodes, BanParentTaskRequest.createSetBanParentTaskRequest(new TaskId(clusterService.localNode().getId(), task.getId()), reason), listener); }
private void setBanOnNodes(String reason, CancellableTask task, DiscoveryNodes nodes, ActionListener<Void> listener) { sendSetBanRequest(nodes, BanParentTaskRequest.createSetBanParentTaskRequest(new TaskId(clusterService.localNode().getId(), task.getId()), reason), listener); }
private void setBanOnNodes(String reason, CancellableTask task, Set<String> nodes, BanLock banLock) { sendSetBanRequest(nodes, BanParentTaskRequest.createSetBanParentTaskRequest(new TaskId(clusterService.localNode().getId(), task.getId()), reason), banLock); }
private void removeBanOnNodes(CancellableTask task, DiscoveryNodes nodes) { sendRemoveBanRequest(nodes, BanParentTaskRequest.createRemoveBanParentTaskRequest(new TaskId(clusterService.localNode().getId(), task.getId()))); }