Invariant: manage ACLs in an entirely new way
Project description
Invariant CLI and Python SDK
Installation
The Invariant client is available as a Python package. You can install it through pip or pipx like so:
pip install invariant-client
# Or using pipx
pipx install invariant-client
The Invariant CLI can be used to run Invariant from your test automation workflow. This example shows one way to install it for Github Actions:
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: '3.11'
cache: 'pip'
- name: Install dependencies
run: python -m pip install --upgrade pip invariant-client
- name: Evaluate current directory using Invariant
run: |
python -m invariant-client run
Usage: Command Line Interface
The Invariant CLI can analyize local changes to network configuration files.
$ invariant login
Open this link in your browser to log in:
https://prod.invariant.tech/login?code=320664
Login successful.
$ invariant run
Uploading snapshot...
Processing... (5b7f28b5-95b3-44ee-8c42-ea0240ef52f5)
Analysis complete.
╭───────────────────────┬────────╮
│ Network Information │ Rows │
├───────────────────────┼────────┤
│ nodes │ 38 │
│ interfaces │ 201 │
│ named_structures │ 148 │
│ defined_structures │ 334 │
│ referenced_structures │ 333 │
│ unused_structures │ 5 │
│ vlan_properties │ 14 │
│ hsrp_properties │ 0 │
│ mlag_properties │ 0 │
│ ip_owners │ 75 │
│ undefined_references │ 0 │
│ vrrp_properties │ 8 │
╰───────────────────────┴────────╯
╭───────────────┬────────╮
│ Topology │ Rows │
├───────────────┼────────┤
│ edges │ 120 │
│ layer_1_edges │ 0 │
│ layer_3_edges │ 120 │
│ network_map │ 1 │
╰───────────────┴────────╯
╭────────────────────────────┬────────╮
│ Routing │ Rows │
├────────────────────────────┼────────┤
│ routes │ 8994 │
│ bgp_process_config │ 12 │
│ bgp_peer_config │ 24 │
│ bgp_session_compatibility │ 24 │
│ bgp_session_status │ 24 │
│ bgp_edges │ 20 │
│ bgp_ribs │ 4320 │
│ ospf_process_config │ 6 │
│ ospf_interface_config │ 36 │
│ ospf_area_config │ 6 │
│ ospf_session_compatibility │ 20 │
╰────────────────────────────┴────────╯
╭───────────────────┬────────╮
│ Setup │ Rows │
├───────────────────┼────────┤
│ unconnected_nodes │ 3 │
│ ignored_lines │ 49 │
│ file_parse_status │ 16 │
│ parse_warnings │ 92 │
│ errors │ 0 │
╰───────────────────┴────────╯
╭────────────────────────┬────────╮
│ Inconsistent Traffic │ Rows │
├────────────────────────┼────────┤
│ subnet_multipath │ 0 │
│ loopback_multipath │ 0 │
╰────────────────────────┴────────╯
╭──────────┬────────╮
│ Probes │ Rows │
├──────────┼────────┤
│ probes │ 4 │
╰──────────┴────────╯
$ invariant show probes --json
[
{
"target": "8.8.8.8/32",
"type": "ICMP_ECHO",
"comment": "Custom 8.8.8.8 ECHO No-Ignore Filters",
"ignore_filters": false,
"node_outcomes": {
"asa": "always",
"border-1": "always",
"core-1": "always",
"core-2": "always",
"dc-1": "always",
"dist-1": "always",
"dist-2": "always",
"dmzfw-1": "always",
"dmzsw-1": "always",
"host-srv-dmz": "always",
"i-01602d9efaed4409a": "always",
"i-02cae6eaa9edeed70": "always",
"i-04cd3db5124a05ee6": "never",
"i-0a5d64b8b58c6dd09": "never",
"internet": "always",
"isp_64501": "always",
"isp_64502": "always",
"subnet-009d57c7f13813630": "never",
"subnet-0333a0749ea4ce3df": "never",
"subnet-03acae3b9a534fff9": "never",
"subnet-06005943afe32f714": "never",
"subnet-06a692ed4ef84368d": "never",
"subnet-09b389def558a9c7d": "never",
"subnet-0cb5f4c094bee5214": "never",
"subnet-0f84a4be105f7aaef": "never",
"tgw-06b348adabd13452d": "partial",
"tgw-0888a76c8a371246d": "partial"
}
}
]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
invariant_client-1.7.0.tar.gz
(75.3 kB
view details)
Built Distribution
File details
Details for the file invariant_client-1.7.0.tar.gz
.
File metadata
- Download URL: invariant_client-1.7.0.tar.gz
- Upload date:
- Size: 75.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.11.3 Linux/6.4.16-linuxkit
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 55ec8a38097b83f1f5b4856eb410bf72eaaac91ccb7c250a6cce50a3148fe696 |
|
MD5 | 5c9f1fd8e7e1628d739b8d2ce940526d |
|
BLAKE2b-256 | 445864aa04c2ead3b6da612078883fe99beca51c93642fd78183ae86af3ecab7 |
File details
Details for the file invariant_client-1.7.0-py3-none-any.whl
.
File metadata
- Download URL: invariant_client-1.7.0-py3-none-any.whl
- Upload date:
- Size: 232.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.11.3 Linux/6.4.16-linuxkit
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b244b3bf261f1c749cc71bccd19a424350350e504b1fb2d7935a09ec749d752d |
|
MD5 | b4418f96f601e23d60828f4c8182f88e |
|
BLAKE2b-256 | ad551fb00e80b4cc94194cd9803d1a1b76694def1b071518d481cf1f25202bc3 |