diff options
| author | Roberto Bertó <463349+robertoberto@users.noreply.github.com> | 2026-05-19 03:15:55 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-05-19 03:15:55 -0300 |
| commit | 294d060ac1557ed70cab7a12f97d930f9dc4baf9 (patch) | |
| tree | 25e03a160fb1dc05a27a9118a7a6f573f0ffd123 /examples/basic.py | |
| parent | ffd5ba16eb1ada42a582db4ac8bdaf29f66a868f (diff) | |
| parent | 6071528289e4a8b11a772433c33851136d30f133 (diff) | |
| download | pyvyos-294d060ac1557ed70cab7a12f97d930f9dc4baf9.tar.gz pyvyos-294d060ac1557ed70cab7a12f97d930f9dc4baf9.zip | |
Merge pull request #31 from vyos-contrib/release/v0.4.0-cleanupv0.4.0
Release v0.4.0 — cleanup and consolidation
Diffstat (limited to 'examples/basic.py')
| -rw-r--r-- | examples/basic.py | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/examples/basic.py b/examples/basic.py new file mode 100644 index 0000000..1e1b552 --- /dev/null +++ b/examples/basic.py @@ -0,0 +1,67 @@ +"""Basic read-only pyvyos usage example. + +Run with environment variables loaded from a .env file or exported in your +shell: + + VYDEVICE_HOSTNAME=192.0.2.1 \\ + VYDEVICE_APIKEY=secret \\ + python examples/basic.py + +This example only runs read-only commands. +""" + +import os +import pprint + +from dotenv import load_dotenv + +from pyvyos import ApiResponse, VyDevice + +load_dotenv() + + +def env_bool(name: str, default: str = "true") -> bool: + return os.environ.get(name, default).lower() in ("1", "true", "yes") + + +def make_device() -> VyDevice: + return VyDevice( + hostname=os.environ["VYDEVICE_HOSTNAME"], + apikey=os.environ["VYDEVICE_APIKEY"], + port=int(os.environ.get("VYDEVICE_PORT", "443")), + protocol=os.environ.get("VYDEVICE_PROTOCOL", "https"), + verify=env_bool("VYDEVICE_VERIFY_SSL"), + timeout=int(os.environ.get("VYDEVICE_TIMEOUT", "60")), + ) + + +def print_response(label: str, response: ApiResponse) -> None: + print(f"\n== {label} ==") + if response.error: + print(f"Error {response.status}: {response.error}") + return + + pprint.pprint(response.result) + + +def main() -> None: + device = make_device() + + print_response( + "Running system configuration", + device.retrieve_show_config(path=["system"]), + ) + + print_response( + "System images", + device.show(path=["system", "image"]), + ) + + print_response( + "Interface address values", + device.retrieve_return_values(path=["interfaces"]), + ) + + +if __name__ == "__main__": + main() |
