[CORD-2871]
Fix protobuf integration in prep for CORD-2276
Change-Id: I67ffa17d97d97e9a226269e99de76c236a431dd1
diff --git a/utils/dockerhelpers.py b/utils/dockerhelpers.py
index 2961e37..b924628 100644
--- a/utils/dockerhelpers.py
+++ b/utils/dockerhelpers.py
@@ -14,12 +14,31 @@
# limitations under the License.
#
import os
+import sys
+from distutils.version import LooseVersion
-from docker import Client
from structlog import get_logger
+log = get_logger()
+
+# handle the python docker v1 to v2 API differences
+try:
+ from docker import __version__ as docker_version
+
+ if LooseVersion(docker_version) < LooseVersion('2.0.0'):
+ log.error("Unsupported python docker module!"
+ "Please upgrade to docker 2.x or later")
+
+ # <2.x compatible import
+ from docker import Client as DockerClient
+ else:
+ # >2.x compatible import
+ from docker import APIClient as DockerClient
+
+except ImportError:
+ log.error("Unable to load python docker module!")
+ sys.exit(1)
docker_socket = os.environ.get('DOCKER_SOCK', 'unix://tmp/docker.sock')
-log = get_logger()
def get_my_containers_name():
@@ -33,7 +52,7 @@
my_container_id = os.environ.get('HOSTNAME', None)
try:
- docker_cli = Client(base_url=docker_socket)
+ docker_cli = DockerClient(base_url=docker_socket)
info = docker_cli.inspect_container(my_container_id)
except Exception, e:
@@ -42,4 +61,4 @@
name = info['Name'].lstrip('/')
- return name
\ No newline at end of file
+ return name