From d741eed94fa37960b00a7b18ddde12c5cc4eaae1 Mon Sep 17 00:00:00 2001
From: Jeffrey Zhang <zhang.lei.fly@gmail.com>
Date: Thu, 1 Feb 2018 23:26:35 +0800
Subject: [PATCH] Make kollda_docker works with new released python docker 3.0
 package

the wait function in docker 3.0 return a dict now.

Closes-Bug: #1746748
Change-Id: Ice87128a936e36a0d7eb75c1ffd57dae39d89a64
---
 ansible/library/kolla_docker.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/ansible/library/kolla_docker.py b/ansible/library/kolla_docker.py
index b220a9667e..580692c844 100644
--- a/ansible/library/kolla_docker.py
+++ b/ansible/library/kolla_docker.py
@@ -635,11 +635,15 @@ class DockerWorker(object):
         # We do not want to detach so we wait around for container to exit
         if not self.params.get('detach'):
             rc = self.dc.wait(self.params.get('name'))
+            # NOTE(jeffrey4l): since python docker package 3.0, wait return a
+            # dict all the time.
+            if isinstance(rc, dict):
+                rc = rc['StatusCode']
             if rc != 0:
                 self.module.fail_json(
                     failed=True,
                     changed=True,
-                    msg="Container exited with non-zero return code"
+                    msg="Container exited with non-zero return code %s" % rc
                 )
             if self.params.get('remove_on_exit'):
                 self.stop_container()