summaryrefslogtreecommitdiff
path: root/examples/basic.py
diff options
context:
space:
mode:
authorRoberto Bertó <463349+robertoberto@users.noreply.github.com>2026-05-19 03:15:55 -0300
committerGitHub <noreply@github.com>2026-05-19 03:15:55 -0300
commit294d060ac1557ed70cab7a12f97d930f9dc4baf9 (patch)
tree25e03a160fb1dc05a27a9118a7a6f573f0ffd123 /examples/basic.py
parentffd5ba16eb1ada42a582db4ac8bdaf29f66a868f (diff)
parent6071528289e4a8b11a772433c33851136d30f133 (diff)
downloadpyvyos-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.py67
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()