diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-17 09:01:56 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-17 09:01:56 +0000 |
commit | 89c4287dc1d423987b3ed83c28335bb3dcb0f06e (patch) | |
tree | b2406a87652796c5a1622815061870d1c45322d5 /docs | |
parent | Adding upstream version 0.15.0. (diff) | |
download | anta-upstream/1.0.0.tar.xz anta-upstream/1.0.0.zip |
Adding upstream version 1.0.0.upstream/1.0.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'docs')
-rwxr-xr-x | docs/README.md | 20 | ||||
-rw-r--r-- | docs/advanced_usages/custom-tests.md | 4 | ||||
-rw-r--r-- | docs/cli/inv-from-cvp.md | 27 | ||||
-rw-r--r-- | docs/cli/nrfu.md | 18 | ||||
-rw-r--r-- | docs/contribution.md | 8 | ||||
-rw-r--r-- | docs/faq.md | 2 | ||||
-rw-r--r-- | docs/getting-started.md | 12 | ||||
-rw-r--r-- | docs/overrides/main.html | 4 | ||||
-rw-r--r-- | docs/requirements-and-installation.md | 20 | ||||
-rw-r--r-- | docs/scripts/generate_svg.py | 3 | ||||
-rw-r--r-- | docs/stylesheets/extra.material.css | 12 | ||||
-rw-r--r-- | docs/troubleshooting.md | 8 | ||||
-rw-r--r-- | docs/usage-inventory-catalog.md | 8 |
13 files changed, 82 insertions, 64 deletions
diff --git a/docs/README.md b/docs/README.md index 378867f..44b4455 100755 --- a/docs/README.md +++ b/docs/README.md @@ -6,23 +6,23 @@ # Arista Network Test Automation (ANTA) Framework -| **Code** | [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) [![Numpy](https://img.shields.io/badge/Docstring_format-numpy-blue)](https://numpydoc.readthedocs.io/en/latest/format.html) | +| **Code** | [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) [![Numpy](https://img.shields.io/badge/Docstring_format-numpy-blue)](https://numpydoc.readthedocs.io/en/latest/format.html) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=aristanetworks_anta&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=aristanetworks_anta) | | :------------: | :-------| -| **License** | [![License](https://img.shields.io/badge/license-Apache%202.0-brightgreen.svg)](https://github.com/arista-netdevops-community/anta/blob/main/LICENSE) | -| **GitHub** | [![CI](https://github.com/arista-netdevops-community/anta/actions/workflows/code-testing.yml/badge.svg)](https://github.com/arista-netdevops-community/anta/actions/workflows/code-testing.yml) ![Coverage](https://raw.githubusercontent.com/arista-netdevops-community/anta/coverage-badge/latest-release-coverage.svg) ![Commit](https://img.shields.io/github/last-commit/arista-netdevops-community/anta) ![GitHub commit activity (branch)](https://img.shields.io/github/commit-activity/m/arista-netdevops-community/anta) [![Github release](https://img.shields.io/github/release/arista-netdevops-community/anta.svg)](https://github.com/arista-netdevops-community/anta/releases/) [![Contributors](https://img.shields.io/github/contributors/arista-netdevops-community/anta)](https://github.com/arista-netdevops-community/anta/graphs/contributors) | +| **License** | [![License](https://img.shields.io/badge/license-Apache%202.0-brightgreen.svg)](https://github.com/aristanetworks/anta/blob/main/LICENSE) | +| **GitHub** | [![CI](https://github.com/aristanetworks/anta/actions/workflows/code-testing.yml/badge.svg)](https://github.com/aristanetworks/anta/actions/workflows/code-testing.yml) ![Coverage](https://raw.githubusercontent.com/aristanetworks/anta/coverage-badge/latest-release-coverage.svg) ![Commit](https://img.shields.io/github/last-commit/aristanetworks/anta) ![GitHub commit activity (branch)](https://img.shields.io/github/commit-activity/m/aristanetworks/anta) [![Github release](https://img.shields.io/github/release/aristanetworks/anta.svg)](https://github.com/aristanetworks/anta/releases/) [![Contributors](https://img.shields.io/github/contributors/aristanetworks/anta)](https://github.com/aristanetworks/anta/graphs/contributors) | | **PyPi** | ![PyPi Version](https://img.shields.io/pypi/v/anta) ![Python Versions](https://img.shields.io/pypi/pyversions/anta) ![Python format](https://img.shields.io/pypi/format/anta) ![PyPI - Downloads](https://img.shields.io/pypi/dm/anta) | ANTA is Python framework that automates tests for Arista devices. - ANTA provides a [set of tests](api/tests.md) to validate the state of your network - ANTA can be used to: - - Automate NRFU (Network Ready For Use) test on a preproduction network - - Automate tests on a live network (periodically or on demand) + - Automate NRFU (Network Ready For Use) test on a preproduction network + - Automate tests on a live network (periodically or on demand) - ANTA can be used with: - - As a [Python library](advanced_usages/as-python-lib.md) in your own application - - The [ANTA CLI](cli/overview.md) + - As a [Python library](advanced_usages/as-python-lib.md) in your own application + - The [ANTA CLI](cli/overview.md) -![anta nrfu](https://raw.githubusercontent.com/arista-netdevops-community/anta/main/docs/imgs/anta-nrfu.svg) +![anta nrfu](https://raw.githubusercontent.com/aristanetworks/anta/main/docs/imgs/anta-nrfu.svg) ## Install ANTA library @@ -72,12 +72,12 @@ Commands: You can also still choose to install it with directly with `pip`: ```bash -$ pip install anta[cli] +pip install anta[cli] ``` ## Documentation -The documentation is published on [ANTA package website](https://www.anta.ninja). Also, a [demo repository](https://github.com/titom73/atd-anta-demo) is available to facilitate your journey with ANTA. +The documentation is published on [ANTA package website](https://anta.arista.com). ## Contribution guide diff --git a/docs/advanced_usages/custom-tests.md b/docs/advanced_usages/custom-tests.md index ba62636..c6a2fa8 100644 --- a/docs/advanced_usages/custom-tests.md +++ b/docs/advanced_usages/custom-tests.md @@ -334,10 +334,10 @@ For that, you need to create your own Python package as described in this [hitch It is very similar to what is documented in [catalog section](../usage-inventory-catalog.md) but you have to use your own package name.2 -Let say the custom Python package is `anta_titom73` and the test is defined in `anta_titom73.dc_project` Python module, the test catalog would look like: +Let say the custom Python package is `anta_custom` and the test is defined in `anta_custom.dc_project` Python module, the test catalog would look like: ```yaml -anta_titom73.dc_project: +anta_custom.dc_project: - VerifyFeatureX: minimum: 1 ``` diff --git a/docs/cli/inv-from-cvp.md b/docs/cli/inv-from-cvp.md index 8897370..a37af62 100644 --- a/docs/cli/inv-from-cvp.md +++ b/docs/cli/inv-from-cvp.md @@ -8,21 +8,32 @@ In large setups, it might be beneficial to construct your inventory based on CloudVision. The `from-cvp` entrypoint of the `get` command enables the user to create an ANTA inventory from CloudVision. +!!! info + The current implementation only works with on-premises CloudVision instances, not with CloudVision as a Service (CVaaS). + ### Command overview ```bash -anta get from-cvp --help Usage: anta get from-cvp [OPTIONS] - Build ANTA inventory from Cloudvision + Build ANTA inventory from CloudVision. + + NOTE: Only username/password authentication is supported for on-premises CloudVision instances. + Token authentication for both on-premises and CloudVision as a Service (CVaaS) is not supported. Options: - -ip, --cvp-ip TEXT CVP IP Address [required] - -u, --cvp-username TEXT CVP Username [required] - -p, --cvp-password TEXT CVP Password / token [required] - -c, --cvp-container TEXT Container where devices are configured - -d, --inventory-directory PATH Path to save inventory file - --help Show this message and exit. + -o, --output FILE Path to save inventory file [env var: ANTA_INVENTORY; + required] + --overwrite Do not prompt when overriding current inventory [env + var: ANTA_GET_FROM_CVP_OVERWRITE] + -host, --host TEXT CloudVision instance FQDN or IP [required] + -u, --username TEXT CloudVision username [required] + -p, --password TEXT CloudVision password [required] + -c, --container TEXT CloudVision container where devices are configured + --ignore-cert By default connection to CV will use HTTPS + certificate, set this flag to disable it [env var: + ANTA_GET_FROM_CVP_IGNORE_CERT] + --help Show this message and exit. ``` The output is an inventory where the name of the container is added as a tag for each host: diff --git a/docs/cli/nrfu.md b/docs/cli/nrfu.md index 76605cb..90b4a40 100644 --- a/docs/cli/nrfu.md +++ b/docs/cli/nrfu.md @@ -67,7 +67,7 @@ Options: ```bash anta nrfu --device DC1-LEAF1A text ``` -[![anta nrfu text results](../imgs/anta-nrfu-text-output.png){ loading=lazy width="1600" }](../imgs/anta-nrfu-text-output.png) +![anta nrfu text results](../imgs/anta-nrfu-text-output.png){ loading=lazy width="1600" } ## Performing NRFU with table rendering @@ -92,31 +92,31 @@ The `--group-by` option show a summarized view of the test results per host or p ```bash anta nrfu --tags LEAF table ``` -[![anta nrfu table results](../imgs/anta-nrfu-table-output.png){ loading=lazy width="1600" }](../imgs/anta-nrfu-table-output.png) +![anta nrfu table results](../imgs/anta-nrfu-table-output.png){ loading=lazy width="1600" } For larger setups, you can also group the results by host or test to get a summarized view: ```bash anta nrfu table --group-by device ``` -[![anta nrfu table group_by_host_output](../imgs/anta-nrfu-table-group-by-host-output.png){ loading=lazy width="1600" }](../imgs/anta-nrfu-table-group-by-host-output.png) +![$1anta nrfu table group_by_host_output](../imgs/anta-nrfu-table-group-by-host-output.png){ loading=lazy width="1600" } ```bash anta nrfu table --group-by test ``` -[![anta nrfu table group_by_test_output](../imgs/anta-nrfu-table-group-by-test-output.png){ loading=lazy width="1600" }](../imgs/anta-nrfu-table-group-by-test-output.png) +![$1anta nrfu table group_by_test_output](../imgs/anta-nrfu-table-group-by-test-output.png){ loading=lazy width="1600" } To get more specific information, it is possible to filter on a single device or a single test: ```bash anta nrfu --device spine1 table ``` -[![anta nrfu table filter_host_output](../imgs/anta-nrfu-table-filter-host-output.png){ loading=lazy width="1600" }](../imgs/anta-nrfu-table-filter-host-output.png) +![$1anta nrfu table filter_host_output](../imgs/anta-nrfu-table-filter-host-output.png){ loading=lazy width="1600" } ```bash anta nrfu --test VerifyZeroTouch table ``` -[![anta nrfu table filter_test_output](../imgs/anta-nrfu-table-filter-test-output.png){ loading=lazy width="1600" }](../imgs/anta-nrfu-table-filter-test-output.png) +![$1anta nrfu table filter_test_output](../imgs/anta-nrfu-table-filter-test-output.png){ loading=lazy width="1600" } ## Performing NRFU with JSON rendering @@ -143,7 +143,7 @@ The `--output` option allows you to save the JSON report as a file. ```bash anta nrfu --tags LEAF json ``` -[![anta nrfu json results](../imgs/anta-nrfu-json-output.png){ loading=lazy width="1600" }](../imgs/anta-nrfu-json-output.png) +![$1anta nrfu json results](../imgs/anta-nrfu-json-output.png){ loading=lazy width="1600" } ## Performing NRFU with custom reports @@ -173,7 +173,7 @@ The `--output` option allows you to choose the path where the final report will ```bash anta nrfu --tags LEAF tpl-report --template ./custom_template.j2 ``` -[![anta nrfu tpl_resultss](../imgs/anta-nrfu-tpl-report-output.png){ loading=lazy width="1600" }](../imgs/anta-nrfu-tpl-report-output.png) +![$1anta nrfu tpl_results](../imgs/anta-nrfu-tpl-report-output.png){ loading=lazy width="1600" } The template `./custom_template.j2` is a simple Jinja2 template: @@ -205,4 +205,4 @@ cat nrfu-tpl-report.txt It is possible to run `anta nrfu --dry-run` to execute ANTA up to the point where it should communicate with the network to execute the tests. When using `--dry-run`, all inventory devices are assumed to be online. This can be useful to check how many tests would be run using the catalog and inventory. -[![anta nrfu dry_run](../imgs/anta_nrfu___dry_run.svg){ loading=lazy width="1600" }](../imgs/anta_nrfu___dry_run.svg) +![$1anta nrfu dry_run](../imgs/anta_nrfu___dry_run.svg){ loading=lazy width="1600" } diff --git a/docs/contribution.md b/docs/contribution.md index cc3a1c0..ac5d026 100644 --- a/docs/contribution.md +++ b/docs/contribution.md @@ -6,7 +6,7 @@ # How to contribute to ANTA -Contribution model is based on a fork-model. Don't push to arista-netdevops-community/anta directly. Always do a branch in your forked repository and create a PR. +Contribution model is based on a fork-model. Don't push to aristanetworks/anta directly. Always do a branch in your forked repository and create a PR. To help development, open your PR as soon as possible even in draft mode. It helps other to know on what you are working on and avoid duplicate PRs. @@ -16,7 +16,7 @@ Run the following commands to create an ANTA development environment: ```bash # Clone repository -$ git clone https://github.com/arista-netdevops-community/anta.git +$ git clone https://github.com/aristanetworks/anta.git $ cd anta # Install ANTA in editable mode and its development tools @@ -28,7 +28,7 @@ $ pip install -e .[dev,cli] $ pip list -e Package Version Editable project location ------- ------- ------------------------- -anta 0.15.0 /mnt/lab/projects/anta +anta 1.0.0 /mnt/lab/projects/anta ``` Then, [`tox`](https://tox.wiki/) is configured with few environments to run CI locally: @@ -229,4 +229,4 @@ muffet -c 2 --color=always http://127.0.0.1:8000 -e fonts.gstatic.com -b 8192 ## Continuous Integration -GitHub actions is used to test git pushes and pull requests. The workflows are defined in this [directory](https://github.com/arista-netdevops-community/anta/tree/main/.github/workflows). We can view the results [here](https://github.com/arista-netdevops-community/anta/actions). +GitHub actions is used to test git pushes and pull requests. The workflows are defined in this [directory](https://github.com/aristanetworks/anta/tree/main/.github/workflows). We can view the results [here](https://github.com/aristanetworks/anta/actions). diff --git a/docs/faq.md b/docs/faq.md index c71d1c6..a699c84 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -126,4 +126,4 @@ toc_depth: 2 # Still facing issues? -If you've tried the above solutions and continue to experience problems, please follow the [troubleshooting](troubleshooting.md) instructions and report the issue in our [GitHub repository](https://github.com/arista-netdevops-community/anta). +If you've tried the above solutions and continue to experience problems, please follow the [troubleshooting](troubleshooting.md) instructions and report the issue in our [GitHub repository](https://github.com/aristanetworks/anta). diff --git a/docs/getting-started.md b/docs/getting-started.md index bab1cea..39b270c 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -121,12 +121,6 @@ anta.tests.configuration: ## Test your network -### Basic usage in a python script - -```python ---8<-- "anta_runner.py" -``` - ### CLI ANTA comes with a generic CLI entrypoint to run tests in your network. It requires an inventory file as well as a test catalog. @@ -264,3 +258,9 @@ $ anta nrfu \ ``` You can find more information under the __usage__ section of the website + +### Basic usage in a Python script + +```python +--8<-- "anta_runner.py" +``` diff --git a/docs/overrides/main.html b/docs/overrides/main.html index 2863221..ad3693f 100644 --- a/docs/overrides/main.html +++ b/docs/overrides/main.html @@ -15,3 +15,7 @@ </script> {{app}} {% endblock %} + +{% block announce %} +ANTA code has moved to a new house in aristanetworks organization and so has the documentation. <strong>Please update your bookmark to use <a href="https://anta.arista.com">anta.arista.com<a/></strong> +{% endblock %} diff --git a/docs/requirements-and-installation.md b/docs/requirements-and-installation.md index 75560d3..ffcb9aa 100644 --- a/docs/requirements-and-installation.md +++ b/docs/requirements-and-installation.md @@ -19,7 +19,7 @@ Python 3.11.8 This installation will deploy tests collection, scripts and all their Python requirements. -The ANTA package and the cli require some packages that are not part of the Python standard library. They are indicated in the [pyproject.toml](https://github.com/arista-netdevops-community/anta/blob/main/pyproject.toml) file, under dependencies. +The ANTA package and the cli require some packages that are not part of the Python standard library. They are indicated in the [pyproject.toml](https://github.com/aristanetworks/anta/blob/main/pyproject.toml) file, under dependencies. ### Install library from Pypi server @@ -59,18 +59,18 @@ pip install anta[cli] ```bash -pip install git+https://github.com/arista-netdevops-community/anta.git -pip install git+https://github.com/arista-netdevops-community/anta.git#egg=anta[cli] +pip install git+https://github.com/aristanetworks/anta.git +pip install git+https://github.com/aristanetworks/anta.git#egg=anta[cli] # You can even specify the branch, tag or commit: -pip install git+https://github.com/arista-netdevops-community/anta.git@<cool-feature-branch> -pip install git+https://github.com/arista-netdevops-community/anta.git@<cool-feature-branch>#egg=anta[cli] +pip install git+https://github.com/aristanetworks/anta.git@<cool-feature-branch> +pip install git+https://github.com/aristanetworks/anta.git@<cool-feature-branch>#egg=anta[cli] -pip install git+https://github.com/arista-netdevops-community/anta.git@<cool-tag> -pip install git+https://github.com/arista-netdevops-community/anta.git@<cool-tag>#egg=anta[cli] +pip install git+https://github.com/aristanetworks/anta.git@<cool-tag> +pip install git+https://github.com/aristanetworks/anta.git@<cool-tag>#egg=anta[cli] -pip install git+https://github.com/arista-netdevops-community/anta.git@<more-or-less-cool-hash> -pip install git+https://github.com/arista-netdevops-community/anta.git@<more-or-less-cool-hash>#egg=anta[cli] +pip install git+https://github.com/aristanetworks/anta.git@<more-or-less-cool-hash> +pip install git+https://github.com/aristanetworks/anta.git@<more-or-less-cool-hash>#egg=anta[cli] ``` ### Check installation @@ -93,7 +93,7 @@ which anta ```bash # Check ANTA version anta --version -anta, version v0.15.0 +anta, version v1.0.0 ``` ## EOS Requirements diff --git a/docs/scripts/generate_svg.py b/docs/scripts/generate_svg.py index 0048160..e6bf87a 100644 --- a/docs/scripts/generate_svg.py +++ b/docs/scripts/generate_svg.py @@ -56,7 +56,8 @@ if __name__ == "__main__": # stolen from https://github.com/ewels/rich-click/blob/main/src/rich_click/cli.py args = sys.argv[1:] script_name = args[0] - scripts = {script.name: script for script in entry_points().get("console_scripts")} + console_scripts = entry_points(group="console_scripts") + scripts = {script.name: script for script in console_scripts} if script_name in scripts: # A VALID SCRIPT WAS passed diff --git a/docs/stylesheets/extra.material.css b/docs/stylesheets/extra.material.css index 09d7c8d..1724da9 100644 --- a/docs/stylesheets/extra.material.css +++ b/docs/stylesheets/extra.material.css @@ -61,6 +61,12 @@ --md-code-border-color: #aec6db4f; } +.md-banner { + background-color: #f5c842; + color: #000000; + +} + @media only screen and (min-width: 76.25em) { .md-main__inner, .md-header__inner { max-width: 85%; @@ -128,12 +134,8 @@ font-weight: bold; } - .md-typeset h4::before { - content: ">> "; - } - .md-typeset h4 { - font-size: 1.1rem; + font-size: 0.9rem; margin: 1em 0; font-weight: 700; letter-spacing: -.01em; diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index f27de7a..40fc07f 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -11,9 +11,9 @@ A couple of things to check when hitting an issue with ANTA: ```mermaid flowchart LR A>Hitting an issue with ANTA] --> B{Is my issue <br >listed in the FAQ?} - B -- Yes --> C{Does the FAQ solution<<br />works for me?} + B -- Yes --> C{Does the FAQ solution<br />works for me?} C -- Yes --> V(((Victory))) - B -->|No| E{Is my problem<br />mentioned in one<<br />of the open issues?} + B -->|No| E{Is my problem<br />mentioned in one<br />of the open issues?} C -->|No| E E -- Yes --> F{Has the issue been<br />fixed in a newer<br />release or in main?} F -- Yes --> U[Upgrade] @@ -24,8 +24,8 @@ flowchart LR F -- No ----> G((Add a comment on the <br />issue indicating you<br >are hitting this and<br />describing your setup<br /> and adding your logs.)) click B "../faq" "FAQ" - click E "https://github.com/arista-netdevops-community/anta/issues" - click H "https://github.com/arista-netdevops-community/anta/issues" + click E "https://github.com/aristanetworks/anta/issues" + click H "https://github.com/aristanetworks/anta/issues" style A stroke:#f00,stroke-width:2px ``` diff --git a/docs/usage-inventory-catalog.md b/docs/usage-inventory-catalog.md index e698dca..f469933 100644 --- a/docs/usage-inventory-catalog.md +++ b/docs/usage-inventory-catalog.md @@ -129,7 +129,7 @@ anta.tests: custom_field: "Test run by John Doe" ``` -[This test catalog example](https://github.com/arista-netdevops-community/anta/blob/main/examples/tests.yaml) is maintained with all the tests defined in the `anta.tests` Python module. +[This test catalog example](https://github.com/aristanetworks/anta/blob/main/examples/tests.yaml) is maintained with all the tests defined in the `anta.tests` Python module. ### Test tags @@ -205,10 +205,10 @@ anta.tests.configuration: ### Catalog with custom tests In case you want to leverage your own tests collection, use your own Python package in the test catalog. -So for instance, if my custom tests are defined in the `titom73.tests.system` Python module, the test catalog will be: +So for instance, if my custom tests are defined in the `custom.tests.system` Python module, the test catalog will be: ```yaml -titom73.tests.system: +custom.tests.system: - VerifyPlatform: type: ['cEOS-LAB'] ``` @@ -269,7 +269,7 @@ if __name__ == "__main__": # Apply filters to all tests for this device for test in c.tests: test.inputs.filters = AntaTest.Input.Filters(tags=[device]) - catalog.merge(c) + catalog = catalog.merge(c) with open(Path('anta-catalog.yml'), "w") as f: f.write(catalog.dump().yaml()) ``` |