From 667693b8c2ca7ef0b0457823cd76b93b22764038 Mon Sep 17 00:00:00 2001 From: Greg Hogan Date: Sat, 10 Feb 2024 00:20:43 -0800 Subject: [PATCH] logreader: skip internal source if not available (#31400) * logreader: skip internal source if not available * raise exception * but only when appropriate --- tools/lib/filereader.py | 12 ++++++++++++ tools/lib/logreader.py | 5 ++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/tools/lib/filereader.py b/tools/lib/filereader.py index 1db3207e4b..af3dc5e658 100644 --- a/tools/lib/filereader.py +++ b/tools/lib/filereader.py @@ -1,9 +1,21 @@ import os +import socket +from urllib.parse import urlparse from openpilot.tools.lib.url_file import URLFile DATA_ENDPOINT = os.getenv("DATA_ENDPOINT", "http://data-raw.comma.internal/") +def internal_source_available(): + try: + hostname = urlparse(DATA_ENDPOINT).hostname + if hostname: + socket.gethostbyname(hostname) + return True + except socket.gaierror: + pass + return False + def resolve_name(fn): if fn.startswith("cd:/"): return fn.replace("cd:/", DATA_ENDPOINT) diff --git a/tools/lib/logreader.py b/tools/lib/logreader.py index decffccd66..4d76f2a38f 100755 --- a/tools/lib/logreader.py +++ b/tools/lib/logreader.py @@ -20,7 +20,7 @@ from cereal import log as capnp_log from openpilot.common.swaglog import cloudlog from openpilot.tools.lib.comma_car_segments import get_url as get_comma_segments_url from openpilot.tools.lib.openpilotci import get_url -from openpilot.tools.lib.filereader import FileReader, file_exists +from openpilot.tools.lib.filereader import FileReader, file_exists, internal_source_available from openpilot.tools.lib.helpers import RE from openpilot.tools.lib.route import Route, SegmentRange @@ -143,6 +143,9 @@ def comma_api_source(sr: SegmentRange, mode: ReadMode): return apply_strategy(mode, rlog_paths, qlog_paths, valid_file=valid_file) def internal_source(sr: SegmentRange, mode: ReadMode): + if not internal_source_available(): + raise Exception("Internal source not available") + segs = parse_slice(sr) def get_internal_url(sr: SegmentRange, seg, file):