1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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()
|