diff options
author | Joffrey F <f.joffrey@gmail.com> | 2018-11-30 16:33:35 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-30 16:33:35 -0800 |
commit | 5c748467d7937b964ccc4d49b2ac8021fb98e6ce (patch) | |
tree | 0e273f39aab7f0014e8b36194308d70ee38abd48 | |
parent | c344660f20353bedec6c18ef22b25b3083c8fe3f (diff) | |
parent | bc84ed11ec7f7e20f27139a5e44ae0862d5a1f7b (diff) | |
download | docker-py-5c748467d7937b964ccc4d49b2ac8021fb98e6ce.tar.gz |
Merge pull request #2192 from docker/authconfig_fix
Fix empty authconfig detection
-rw-r--r-- | docker/api/build.py | 4 | ||||
-rw-r--r-- | docker/api/daemon.py | 2 | ||||
-rw-r--r-- | docker/auth.py | 8 |
3 files changed, 10 insertions, 4 deletions
diff --git a/docker/api/build.py b/docker/api/build.py index c4fc37e..5db5838 100644 --- a/docker/api/build.py +++ b/docker/api/build.py @@ -286,10 +286,10 @@ class BuildApiMixin(object): # If we don't have any auth data so far, try reloading the config # file one more time in case anything showed up in there. - if not self._auth_configs: + if not self._auth_configs or self._auth_configs.is_empty: log.debug("No auth config in memory - loading from filesystem") self._auth_configs = auth.load_config( - credsore_env=self.credsore_env + credstore_env=self.credstore_env ) # Send the full auth configuration (if any exists), since the build diff --git a/docker/api/daemon.py b/docker/api/daemon.py index a2936f2..f715a13 100644 --- a/docker/api/daemon.py +++ b/docker/api/daemon.py @@ -127,7 +127,7 @@ class DaemonApiMixin(object): self._auth_configs = auth.load_config( dockercfg_path, credstore_env=self.credstore_env ) - elif not self._auth_configs: + elif not self._auth_configs or self._auth_configs.is_empty: self._auth_configs = auth.load_config( credstore_env=self.credstore_env ) diff --git a/docker/auth.py b/docker/auth.py index c1b874f..58b35eb 100644 --- a/docker/auth.py +++ b/docker/auth.py @@ -39,7 +39,7 @@ def resolve_index_name(index_name): def get_config_header(client, registry): log.debug('Looking for auth config') - if not client._auth_configs: + if not client._auth_configs or client._auth_configs.is_empty: log.debug( "No auth config in memory - loading from filesystem" ) @@ -212,6 +212,12 @@ class AuthConfig(dict): def cred_helpers(self): return self.get('credHelpers', {}) + @property + def is_empty(self): + return ( + not self.auths and not self.creds_store and not self.cred_helpers + ) + def resolve_authconfig(self, registry=None): """ Returns the authentication data from the given auth configuration for a |