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):