nornir.core.task

class nornir.core.task.AggregatedResult(name: str, **kwargs: MultiResult)

Dict-like object that aggregates the results for all devices.

You can access each individual result by doing my_aggr_result["hostname_of_device"].

property failed: bool

If True at least a host failed.

property failed_hosts: dict[str, nornir.core.task.MultiResult]

Hosts that failed during the execution of the task.

raise_on_error() None

Raise an exception if at least a task failed.

Raises:

nornir.core.exceptions.NornirExecutionError – When at least a task failed

class nornir.core.task.MultiResult(name: str)

List-like object with the results of all the subtasks for a particular device/task.

property changed: bool

If True at least a task changed the system.

property failed: bool

If True at least a task failed.

raise_on_error() None

Raise an exception if at least a task failed.

Raises:

nornir.core.exceptions.NornirExecutionError – When at least a task failed

class nornir.core.task.Result(host: Host | None, result: Any = None, changed: bool = False, diff: str = '', failed: bool = False, exception: BaseException | None = None, severity_level: int = 20, **kwargs: Any)

Result of running individual tasks.

Parameters:
  • changed (bool) – True if the task is changing the system

  • diff (obj) – Diff between state of the system before/after running this task

  • result (obj) – Result of the task execution, see task’s documentation for details

  • host (nornir.core.inventory.Host) – Reference to the host that lead to this result

  • failed (bool) – Whether the execution failed or not

  • severity_level (logging.LEVEL) – Severity level associated to the result of the excecution

  • exception (Exception) – uncaught exception thrown during the exection of the task (if any)

changed

True if the task is changing the system

Type:

bool

diff

Diff between state of the system before/after running this task

Type:

obj

result

Result of the task execution, see task’s documentation for details

Type:

obj

host

Reference to the host that lead ot this result

Type:

nornir.core.inventory.Host

failed

Whether the execution failed or not

Type:

bool

severity_level

Severity level associated to the result of the excecution

Type:

logging.LEVEL

exception

uncaught exception thrown during the exection of the task (if any)

Type:

Exception

class nornir.core.task.Task(task: Callable[..., Any], nornir: Nornir, global_dry_run: bool, processors: Processors, name: str | None = None, severity_level: int = 20, parent_task: Task | None = None, **kwargs: str)

Wrapper around a function that has to be run against multiple devices.

You won’t probably have to deal with this class yourself as nornir.core.Nornir.run() will create it automatically.

Parameters:
  • task (callable) – function or callable we will be calling

  • name (string) – name of task, defaults to task.__name__

  • severity_level (logging.LEVEL) – Severity level associated to the task

  • **kwargs – Parameters that will be passed to the task

task

function or callable we will be calling

Type:

callable

name

name of task, defaults to task.__name__

Type:

string

params

Parameters that will be passed to the task.

self.results

Intermediate results

Type:

nornir.core.task.MultiResult

host

Host we are operating with. Populated right before calling the task

Type:

nornir.core.inventory.Host

nornir

Populated right before calling the task

Type:

nornir.core.Nornir

severity_level

Severity level associated to the task

Type:

logging.LEVEL

copy() Task

Return a copy of this task with no host and no results yet.

start() records the host it ran against and the results it produced on the task object itself, so the runners hand each host its own copy rather than sharing one task across hosts.

Returns:

A task with the same callable, parameters, processors and severity level as self.

Return type:

Task

is_dry_run(override: bool | None = None) bool

Return whether the current task is a dry run or not.

Returns:

True if the task is a dry run, False otherwise.

run(task: Callable[..., Any], **kwargs: Any) MultiResult

Call a task from within a task.

For instance:

def grouped_tasks(task):
    task.run(my_first_task)
    task.run(my_second_task)

nornir.run(grouped_tasks)

This method will ensure the subtask is run only for the host in the current thread.

Returns:

Results of the subtask and its own subtasks

Return type:

nornir.core.task.MultiResult

Raises:
start(host: Host) MultiResult

Run the task for the given host.

Parameters:

host (nornir.core.inventory.Host) – Host we are operating with. Populated right before calling the task

Returns:

Results of the task and its subtasks

Return type:

nornir.core.task.MultiResult