X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/a94e15cab04a19dcbb02f2e95335e337c8e55036..9ac57b0bc6cb5d90da57c943df489401c63b7a7f:/sdk/python/arvados/events.py diff --git a/sdk/python/arvados/events.py b/sdk/python/arvados/events.py index 268692637a..3036a25fe0 100644 --- a/sdk/python/arvados/events.py +++ b/sdk/python/arvados/events.py @@ -15,11 +15,7 @@ _logger = logging.getLogger('arvados.events') class EventClient(WebSocketClient): def __init__(self, url, filters, on_event): - # Prefer system's CA certificates (if available) - ssl_options = {} - certs_path = '/etc/ssl/certs/ca-certificates.crt' - if os.path.exists(certs_path): - ssl_options['ca_certs'] = certs_path + ssl_options = {'ca_certs': arvados.util.ca_certs_path()} if config.flag_is_true('ARVADOS_API_HOST_INSECURE'): ssl_options['cert_reqs'] = ssl.CERT_NONE else: @@ -65,6 +61,7 @@ class PollClient(threading.Thread): self.filters = [[]] self.on_event = on_event self.poll_time = poll_time + self.daemon = True self.stop = threading.Event() def run(self): @@ -129,12 +126,17 @@ def _subscribe_websocket(api, filters, on_event): client.close_connection() def subscribe(api, filters, on_event, poll_fallback=15): - ''' - api: a client object retrieved from arvados.api(). The caller should not use this client object for anything else after calling subscribe(). - filters: Initial subscription filters. - on_event: The callback when a message is received. - poll_fallback: If websockets are not available, fall back to polling every N seconds. If poll_fallback=False, this will return None if websockets are not available. - ''' + """ + :api: + a client object retrieved from arvados.api(). The caller should not use this client object for anything else after calling subscribe(). + :filters: + Initial subscription filters. + :on_event: + The callback when a message is received. + :poll_fallback: + If websockets are not available, fall back to polling every N seconds. If poll_fallback=False, this will return None if websockets are not available. + """ + if not poll_fallback: return _subscribe_websocket(api, filters, on_event)