Skip to content

NRFU

Execute Network Readiness For Use (NRFU) Testing

ANTA provides a set of commands for performing NRFU tests on devices. These commands are under the anta nrfu namespace and offer multiple output format options:

NRFU Command overview

Usage: anta nrfu [OPTIONS] COMMAND [ARGS]...

  Run ANTA tests on selected inventory devices.

Options:
  -u, --username TEXT             Username to connect to EOS  [env var:
                                  ANTA_USERNAME; required]
  -p, --password TEXT             Password to connect to EOS that must be
                                  provided. It can be prompted using '--
                                  prompt' option.  [env var: ANTA_PASSWORD]
  --enable-password TEXT          Password to access EOS Privileged EXEC mode.
                                  It can be prompted using '--prompt' option.
                                  Requires '--enable' option.  [env var:
                                  ANTA_ENABLE_PASSWORD]
  --enable                        Some commands may require EOS Privileged
                                  EXEC mode. This option tries to access this
                                  mode before sending a command to the device.
                                  [env var: ANTA_ENABLE]
  -P, --prompt                    Prompt for passwords if they are not
                                  provided.  [env var: ANTA_PROMPT]
  --timeout FLOAT                 Global API timeout. This value will be used
                                  for all devices.  [env var: ANTA_TIMEOUT;
                                  default: 30.0]
  --insecure                      Disable SSH Host Key validation.  [env var:
                                  ANTA_INSECURE]
  --disable-cache                 Disable cache globally.  [env var:
                                  ANTA_DISABLE_CACHE]
  -i, --inventory FILE            Path to the inventory YAML file.  [env var:
                                  ANTA_INVENTORY; required]
  --tags TEXT                     List of tags using comma as separator:
                                  tag1,tag2,tag3.  [env var: ANTA_TAGS]
  -c, --catalog FILE              Path to the test catalog YAML file  [env
                                  var: ANTA_CATALOG; required]
  -d, --device TEXT               Run tests on a specific device. Can be
                                  provided multiple times.
  -t, --test TEXT                 Run a specific test. Can be provided
                                  multiple times.
  --ignore-status                 Exit code will always be 0.  [env var:
                                  ANTA_NRFU_IGNORE_STATUS]
  --ignore-error                  Exit code will be 0 if all tests succeeded
                                  or 1 if any test failed.  [env var:
                                  ANTA_NRFU_IGNORE_ERROR]
  --hide [success|failure|error|skipped]
                                  Group result by test or device.
  --help                          Show this message and exit.

Commands:
  json        ANTA command to check network state with JSON result.
  table       ANTA command to check network states with table result.
  text        ANTA command to check network states with text result.
  tpl-report  ANTA command to check network state with templated report.

username, password, enable-password, enable, timeout and insecure values are the same for all devices

All commands under the anta nrfu namespace require a catalog yaml file specified with the --catalog option and a device inventory file specified with the --inventory option.

Info

Issuing the command anta nrfu will run anta nrfu table without any option.

Tag management

The --tags option can be used to target specific devices in your inventory and run only tests configured with this specific tags from your catalog. The default tag is set to all and is implicit. Expected behaviour is provided below:

Command Description
none Run all tests on all devices according tag definition in your inventory and test catalog. And tests with no tag are executed on all devices
--tags leaf Run all tests marked with leaf tag on all devices configured with leaf tag.
All other tags are ignored
--tags leaf,spine Run all tests marked with leaf tag on all devices configured with leaf tag.
Run all tests marked with spine tag on all devices configured with spine tag.
All other tags are ignored

Info

More examples available on this dedicated page.

Device and test filtering

Options --device and --test can be used to target one or multiple devices and/or tests to run in your environment. The options can be repeated. Example: anta nrfu --device leaf1a --device leaf1b --test VerifyUptime --test VerifyReloadCause.

Hide results

Option --hide can be used to hide test results in the output based on their status. The option can be repeated. Example: anta nrfu --hide error --hide skipped.

Performing NRFU with text rendering

The text subcommand provides a straightforward text report for each test executed on all devices in your inventory.

Command overview
Usage: anta nrfu text [OPTIONS]

  ANTA command to check network states with text result.

Options:
  --help  Show this message and exit.
Example

anta nrfu --device DC1-LEAF1A text
anta nrfu text results

Performing NRFU with table rendering

The table command under the anta nrfu namespace offers a clear and organized table view of the test results, suitable for filtering. It also has its own set of options for better control over the output.

Command overview
Usage: anta nrfu table [OPTIONS]

  ANTA command to check network states with table result.

Options:
  --group-by [device|test]  Group result by test or device.
  --help                    Show this message and exit.

The --group-by option show a summarized view of the test results per host or per test.

Examples

anta nrfu --tags LEAF table
anta nrfu table results

For larger setups, you can also group the results by host or test to get a summarized view:

anta nrfu table --group-by device
anta nrfu table group_by_host_output

anta nrfu table --group-by test
anta nrfu table group_by_test_output

To get more specific information, it is possible to filter on a single device or a single test:

anta nrfu --device spine1 table
anta nrfu table filter_host_output

anta nrfu --test VerifyZeroTouch table
anta nrfu table filter_test_output

Performing NRFU with JSON rendering

The JSON rendering command in NRFU testing is useful in generating a JSON output that can subsequently be passed on to another tool for reporting purposes.

Command overview
anta nrfu json --help
Usage: anta nrfu json [OPTIONS]

  ANTA command to check network state with JSON result.

Options:
  -o, --output FILE  Path to save report as a file  [env var:
                     ANTA_NRFU_JSON_OUTPUT]
  --help             Show this message and exit.

The --output option allows you to save the JSON report as a file.

Example

anta nrfu --tags LEAF json
anta nrfu json results

Performing NRFU with custom reports

ANTA offers a CLI option for creating custom reports. This leverages the Jinja2 template system, allowing you to tailor reports to your specific needs.

Command overview

anta nrfu tpl-report --help
Usage: anta nrfu tpl-report [OPTIONS]

  ANTA command to check network state with templated report

Options:
  -tpl, --template FILE  Path to the template to use for the report  [env var:
                         ANTA_NRFU_TPL_REPORT_TEMPLATE; required]
  -o, --output FILE      Path to save report as a file  [env var:
                         ANTA_NRFU_TPL_REPORT_OUTPUT]
  --help                 Show this message and exit.
The --template option is used to specify the Jinja2 template file for generating the custom report.

The --output option allows you to choose the path where the final report will be saved.

Example

anta nrfu --tags LEAF tpl-report --template ./custom_template.j2
anta nrfu json results

The template ./custom_template.j2 is a simple Jinja2 template:

{% for d in data %}
* {{ d.test }} is [green]{{ d.result | upper}}[/green] for {{ d.name }}
{% endfor %}

The Jinja2 template has access to all TestResult elements and their values, as described in this documentation.

You can also save the report result to a file using the --output option:

anta nrfu --tags LEAF tpl-report --template ./custom_template.j2 --output nrfu-tpl-report.txt

The resulting output might look like this:

cat nrfu-tpl-report.txt
* VerifyMlagStatus is [green]SUCCESS[/green] for DC1-LEAF1A
* VerifyMlagInterfaces is [green]SUCCESS[/green] for DC1-LEAF1A
* VerifyMlagConfigSanity is [green]SUCCESS[/green] for DC1-LEAF1A
* VerifyMlagReloadDelay is [green]SUCCESS[/green] for DC1-LEAF1A