Refactor checking route
This commit is contained in:
parent
46007462d3
commit
91ea23be2e
21
check-vpn.py
21
check-vpn.py
@ -24,13 +24,16 @@ def check_connection(remote_host=DEFAULT_REMOTE_HOST) -> bool:
|
|||||||
return ping_proc.returncode == 0
|
return ping_proc.returncode == 0
|
||||||
|
|
||||||
|
|
||||||
def get_route(remote_host=DEFAULT_REMOTE_HOST):
|
def get_first_route(remote_host=DEFAULT_REMOTE_HOST):
|
||||||
""" Get first route used in tracerouting to remote_host"""
|
""" Get first route used in tracerouting to remote_host"""
|
||||||
out = subprocess.check_output(
|
tracert_proc = subprocess.run(
|
||||||
['traceroute', '-m', '1', remote_host],
|
['traceroute', '-m', '1', remote_host], capture_output=True
|
||||||
stderr=subprocess.DEVNULL
|
)
|
||||||
).decode()
|
if tracert_proc.stdout:
|
||||||
first_route = out.split()[1]
|
logging.info("traceroute stdout:\n%s", tracert_proc.stdout.decode().strip())
|
||||||
|
if tracert_proc.stderr:
|
||||||
|
logging.info("traceroute stderr:\n%s", tracert_proc.stderr.decode().strip())
|
||||||
|
first_route = tracert_proc.stdout.decode().split()[1]
|
||||||
return first_route
|
return first_route
|
||||||
|
|
||||||
|
|
||||||
@ -149,8 +152,10 @@ def run_vpn_checks(remote_host=DEFAULT_REMOTE_HOST,
|
|||||||
|
|
||||||
if route_prefix:
|
if route_prefix:
|
||||||
logging.info("Checking default route")
|
logging.info("Checking default route")
|
||||||
if not get_route().startswith(route_prefix):
|
first_route = get_first_route(remote_host=remote_host)
|
||||||
logging.warning("Route table has no expected default route %s", route_prefix)
|
if not first_route.startswith(route_prefix):
|
||||||
|
logging.warning("Incorrect route to host %s (was %s, should be %s)",
|
||||||
|
remote_host, first_route, route_prefix)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user