diff options
author | Joffrey F <joffrey@docker.com> | 2018-11-15 14:42:49 -0800 |
---|---|---|
committer | Joffrey F <joffrey@docker.com> | 2018-11-15 14:42:49 -0800 |
commit | 941b3054c3876a1f51f3b9d6f23d2dffa343a3de (patch) | |
tree | c25ed7103b40c88eba6d9eec693217541f3b36c4 /docker/api/buildkit/auth/auth.py | |
parent | e3da30a04d60ba0d322a9bd168f5872c7f59f66e (diff) | |
download | docker-py-buildkit.tar.gz |
WIPbuildkit
Signed-off-by: Joffrey F <joffrey@docker.com>
Diffstat (limited to 'docker/api/buildkit/auth/auth.py')
-rw-r--r-- | docker/api/buildkit/auth/auth.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/docker/api/buildkit/auth/auth.py b/docker/api/buildkit/auth/auth.py new file mode 100644 index 0000000..df096a7 --- /dev/null +++ b/docker/api/buildkit/auth/auth.py @@ -0,0 +1,26 @@ +from .auth_pb2 import CredentialsResponse +from .auth_grpc import AuthBase +from ..grpc import Attachable +from docker.auth import resolve_authconfig + + +class Auth(AuthBase, Attachable): + def __init__(self, authconfig, credstore_env, *args, **kwargs): + self.authconfig = authconfig + self.credstore_env = credstore_env + super(Auth, self).__init__(*args, **kwargs) + + async def Credentials(self, stream): + request = await stream.recv_message() + host = request.Host + auth_data = resolve_authconfig( + self.authconfig, host, self.credstore_env + ) + response = None + if auth_data is None: + response = CredentialsResponse(Username=None, Secret=None) + else: + response = CredentialsResponse( + Username=auth_data['Username'], Secret=auth_data['Password'] + ) + await stream.send_message(response) |