{"id":20324551,"url":"https://github.com/netascode/nexus-pcv","last_synced_at":"2026-02-23T01:04:33.051Z","repository":{"id":65562187,"uuid":"563484256","full_name":"netascode/nexus-pcv","owner":"netascode","description":"A CLI tool to perform a pre-change validation on Nexus Dashboard Insights.","archived":false,"fork":false,"pushed_at":"2025-12-15T06:04:54.000Z","size":431,"stargazers_count":2,"open_issues_count":4,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-01-30T13:36:20.373Z","etag":null,"topics":["aci","cisco","iac","nac","nae","nd","ndi","nexus","nexus-as-code","pca","pcv","terraform"],"latest_commit_sha":null,"homepage":"https://github.com/netascode/nexus-pcv","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/netascode.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-11-08T17:56:52.000Z","updated_at":"2025-09-06T06:48:22.000Z","dependencies_parsed_at":"2023-10-11T09:03:12.158Z","dependency_job_id":"8ed4b6aa-a118-4e17-bbbd-c647a77481fb","html_url":"https://github.com/netascode/nexus-pcv","commit_stats":{"total_commits":83,"total_committers":2,"mean_commits":41.5,"dds":"0.22891566265060237","last_synced_commit":"2e171dc5461a8e9773c1fe94d185ac3e0da1fa52"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/netascode/nexus-pcv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netascode%2Fnexus-pcv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netascode%2Fnexus-pcv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netascode%2Fnexus-pcv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netascode%2Fnexus-pcv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/netascode","download_url":"https://codeload.github.com/netascode/nexus-pcv/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netascode%2Fnexus-pcv/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29734123,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-22T20:09:16.275Z","status":"ssl_error","status_checked_at":"2026-02-22T20:09:13.750Z","response_time":110,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aci","cisco","iac","nac","nae","nd","ndi","nexus","nexus-as-code","pca","pcv","terraform"],"created_at":"2024-11-14T19:34:27.190Z","updated_at":"2026-02-23T01:04:33.043Z","avatar_url":"https://github.com/netascode.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Tests](https://github.com/netascode/nexus-pcv/actions/workflows/test.yml/badge.svg)](https://github.com/netascode/nexus-pcv/actions/workflows/test.yml)\n![Python Support](https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12%20%7C%203.13-informational \"Python Support: 3.10, 3.11, 3.12, 3.13\")\n\n# nexus-pcv\n\nA modern CLI tool to perform a pre-change validation on Nexus Dashboard Insights. It can either work with provided JSON file(s) or a `terraform plan` output from a [Network as Code](https://netascode.cisco.com) project. It waits for the analysis to complete and evaluates the results.\n\n```\n$ nexus-pcv --help\nUsage: nexus-pcv [OPTIONS]                                                     \n                                                                                \n A CLI tool to perform a pre-change validation on Nexus Dashboard Insights.     \n                                                                                \n╭─ Options ────────────────────────────────────────────────────────────────────╮\n│ *  --hostname-ip      -i      TEXT     ND hostname or IP.                    │\n│                                        [env var: PCV_HOSTNAME_IP]            │\n│                                        [required]                            │\n│ *  --username         -u      TEXT     ND username. [env var: PCV_USERNAME]  │\n│                                        [required]                            │\n│ *  --password         -p      TEXT     ND password. [env var: PCV_PASSWORD]  │\n│                                        [required]                            │\n│ *  --site             -s      TEXT     NDI site or fabric name.              │\n│                                        [env var: PCV_SITE]                   │\n│                                        [required]                            │\n│ *  --name             -n      TEXT     NDI pre-change validation name.       │\n│                                        [env var: PCV_NAME]                   │\n│                                        [required]                            │\n│    --domain           -d      TEXT     ND login domain.                      │\n│                                        [env var: PCV_DOMAIN]                 │\n│                                        [default: local]                      │\n│    --group            -g      TEXT     NDI insights group name.              │\n│                                        [env var: PCV_GROUP]                  │\n│                                        [default: default]                    │\n│    --timeout                  INTEGER  NDI pre-change validation timeout in  │\n│                                        minutes.                              │\n│                                        [env var: PCV_TIMEOUT]                │\n│                                        [default: 15]                         │\n│    --suppress-events          TEXT     NDI comma-separated list of events to │\n│                                        suppress.                             │\n│                                        [env var: PCV_SUPPRESS_EVENTS]        │\n│                                        [default:                             │\n│                                        APP_EPG_NOT_DEPLOYED,APP_EPG_HAS_NO_… │\n│    --file             -f      FILE     NDI proposed change JSON file.        │\n│                                        [env var: PCV_FILE]                   │\n│    --nac-tf-plan      -t      FILE     NDI proposed change Terraform plan    │\n│                                        output.                               │\n│                                        [env var: PCV_NAC_TF_PLAN]            │\n│    --output-summary   -o      FILE     NDI summary of new events/anomalies   │\n│                                        written to a file.                    │\n│                                        [env var: PCV_OUTPUT_SUMMARY]         │\n│    --output-url       -r      FILE     NDI link (URL) to pre-change          │\n│                                        validation results written to a file. │\n│                                        [env var: PCV_OUTPUT_URL]             │\n│    --verbosity        -v      TEXT     Either CRITICAL, ERROR, WARNING, INFO │\n│                                        or DEBUG.                             │\n│                                        [default: WARNING]                    │\n│    --version                           Show the version and exit.            │\n│    --help                              Show this message and exit.           │\n╰──────────────────────────────────────────────────────────────────────────────╯\n```\n\n## Installation\n\nPython 3.10+ is required to install `nexus-pcv`. Don't have Python 3.10 or later? See [Python 3 Installation \u0026 Setup Guide](https://realpython.com/installing-python/).\n\n`nexus-pcv` can be installed using `pip`:\n\n```\npip install nexus-pcv\n```\n\nor using [uv](https://docs.astral.sh/uv/):\n\n```\nuv tool install nexus-pcv\n```\n\n## CI/CD Integration\n\nThe tool can easily be integrated with CI/CD workflows. Arguments can either be provided via command line or environment variables. The tool will exit with a non-zero exit code in case of an error or non-suppressed events being discovered during the pre-change analysis. The `--output-summary` and `--output-url` arguments can be used to write a summary and/or a link (URL) to a file, which can then be embedded into notifications (e.g., Webex).\n\n## *Network as Code* Integration\n\n*Network as Code* for ACI allows users to instantiate network fabrics in minutes using an easy to use, opinionated data model. More information about *Network as Code* can be found [here](https://netascode.cisco.com). A planned change can be validated before applying it to a production environment by running a `terraform plan` operation first and then providing the output to `nexus-pcv` to trigger a pre-change validation.\n\n```\nexport PCV_HOSTNAME_IP=10.1.1.1\nexport PCV_USERNAME=admin\nexport PCV_PASSWORD=Cisco123\nexport PCV_GROUP=LAB\nexport PCV_SITE=LAB1\nterraform plan -out=plan.tfplan\nterraform show -json plan.tfplan \u003e plan.json\nnexus-pcv --name \"PCV1\" --nac-tf-plan plan.json\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetascode%2Fnexus-pcv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetascode%2Fnexus-pcv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetascode%2Fnexus-pcv/lists"}