retire da-backup checks
[mirror/dsa-nagios.git] / dsa-nagios-checks / checks / dsa-check-ipv6-default-gw
1 #!/usr/bin/python3
2
3 import ipaddress
4 import subprocess
5 import sys
6
7 def get_ipv6_addrs():
8     ip_output = subprocess.check_output(['ip', '-o', '-6', 'addr', 'show'])
9     s = set()
10     for line in ip_output.decode().splitlines():
11         fields = line.split()
12         if len(fields) < 4:
13             continue
14         ipv6addr = ipaddress.IPv6Interface(fields[3])
15         if ipv6addr.is_global:
16             s.add(ipv6addr)
17     return s
18
19 def get_default_v6_route():
20     ip_output = subprocess.check_output(['ip', '-o', '-6', 'route', 'show'])
21     s = set()
22     for line in ip_output.decode().splitlines():
23         fields = line.split()
24         if fields[0] == "default":
25             return line
26     return None
27
28 ipv6addrs = get_ipv6_addrs()
29 if len(ipv6addrs) == 0:
30     print("OK: No ipv6 interfaces")
31     sys.exit(0)
32
33 v6route = get_default_v6_route()
34 if v6route is None:
35     print("Warning: No ipv6 default route")
36     sys.exit(1)
37 else:
38     print("OK:", v6route)
39     sys.exit(0)