From 3f67d167fe1fa98c9565241a7fa3b3f262c0720f Mon Sep 17 00:00:00 2001
From: Will Medlar <necromanteion@users.noreply.github.com>
Date: Mon, 17 Jul 2017 23:11:52 -0500
Subject: [PATCH] [Fixes #26690] Supports Python 3 handling of base64 encoding
 (#26876)

* [Fixes #26690] Supports Python 3 handling of base64 encoding

* Set text auth to separate variable for reuse
---
 lib/ansible/modules/cloud/docker/docker_login.py | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/lib/ansible/modules/cloud/docker/docker_login.py b/lib/ansible/modules/cloud/docker/docker_login.py
index 5349d71e0a8..35c38fad1f6 100644
--- a/lib/ansible/modules/cloud/docker/docker_login.py
+++ b/lib/ansible/modules/cloud/docker/docker_login.py
@@ -143,6 +143,7 @@ login_results:
 
 import base64
 
+from ansible.module_utils._text import to_bytes, to_text
 from ansible.module_utils.docker_common import *
 
 
@@ -276,8 +277,13 @@ class LoginManager(DockerBaseClass):
             self.log("Adding registry_url %s to auths." % (self.registry_url))
             config['auths'][self.registry_url] = dict()
 
+        b64auth = base64.b64encode(
+            to_bytes(self.username) + b':' + to_bytes(self.password)
+        )
+        auth = to_text(b64auth)
+
         encoded_credentials = dict(
-            auth=base64.b64encode(self.username + b':' + self.password),
+            auth=auth,
             email=self.email
         )