From 719d4e9e2091edef8c084857051a751bb8f97ea2 Mon Sep 17 00:00:00 2001 From: Viktor Adam Date: Wed, 21 Feb 2018 22:16:21 +0000 Subject: Allow cancelling the streams from other threads Signed-off-by: Viktor Adam --- docker/api/daemon.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'docker/api/daemon.py') diff --git a/docker/api/daemon.py b/docker/api/daemon.py index 0e1c753..fc3692c 100644 --- a/docker/api/daemon.py +++ b/docker/api/daemon.py @@ -1,7 +1,7 @@ import os from datetime import datetime -from .. import auth, utils +from .. import auth, types, utils class DaemonApiMixin(object): @@ -34,8 +34,7 @@ class DaemonApiMixin(object): the fly. False by default. Returns: - (generator): A blocking generator you can iterate over to retrieve - events as they happen. + A :py:class:`docker.types.daemon.CancellableStream` generator Raises: :py:class:`docker.errors.APIError` @@ -50,6 +49,14 @@ class DaemonApiMixin(object): u'status': u'start', u'time': 1423339459} ... + + or + + >>> events = client.events() + >>> for event in events: + ... print event + >>> # and cancel from another thread + >>> events.close() """ if isinstance(since, datetime): @@ -68,10 +75,10 @@ class DaemonApiMixin(object): } url = self._url('/events') - return self._stream_helper( - self._get(url, params=params, stream=True, timeout=None), - decode=decode - ) + response = self._get(url, params=params, stream=True, timeout=None) + stream = self._stream_helper(response, decode=decode) + + return types.CancellableStream(stream, response) def info(self): """ -- cgit v1.2.1 From f1189bfb4b1f2ecb6adc77f7349a085bdca1a824 Mon Sep 17 00:00:00 2001 From: Joffrey F Date: Fri, 8 Jun 2018 15:14:06 -0700 Subject: Allow passing of env overrides to credstore through APIClient ctor Signed-off-by: Joffrey F --- docker/api/daemon.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'docker/api/daemon.py') diff --git a/docker/api/daemon.py b/docker/api/daemon.py index fc3692c..76a94cf 100644 --- a/docker/api/daemon.py +++ b/docker/api/daemon.py @@ -128,7 +128,9 @@ class DaemonApiMixin(object): elif not self._auth_configs: self._auth_configs = auth.load_config() - authcfg = auth.resolve_authconfig(self._auth_configs, registry) + authcfg = auth.resolve_authconfig( + self._auth_configs, registry, credstore_env=self.credstore_env, + ) # If we found an existing auth config for this registry and username # combination, we can return it immediately unless reauth is requested. if authcfg and authcfg.get('username', None) == username \ -- cgit v1.2.1