Skip to content

Commit 7ea1195

Browse files
committed
Merge pull request #181 from dangra/strict-version
Fix API version comparison for 1.10
2 parents 8ffc1b2 + b1f1e36 commit 7ea1195

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

docker/client.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ def stream_result():
312312
if line:
313313
yield line
314314

315-
return stream and stream_result(response) or \
315+
return stream_result() if stream else \
316316
self._result(response, binary=True)
317317

318318
return stream and self._multiplexed_socket_stream_helper(response) or \
@@ -651,7 +651,7 @@ def push(self, repository, stream=False):
651651

652652
response = self._post_json(u, None, headers=headers, stream=stream)
653653
else:
654-
response = self._post_json(u, authcfg, stream=stream)
654+
response = self._post_json(u, None, stream=stream)
655655

656656
return stream and self._stream_helper(response) \
657657
or self._result(response)

docker/utils/utils.py

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import io
1616
import tarfile
1717
import tempfile
18+
from distutils.version import StrictVersion
1819

1920
import requests
2021
import six
@@ -51,7 +52,25 @@ def tar(path):
5152

5253

5354
def compare_version(v1, v2):
54-
return float(v2) - float(v1)
55+
"""Compare docker versions
56+
57+
>>> v1 = '1.9'
58+
>>> v2 = '1.10'
59+
>>> compare_version(v1, v2)
60+
1
61+
>>> compare_version(v2, v1)
62+
-1
63+
>>> compare_version(v2, v2)
64+
0
65+
"""
66+
s1 = StrictVersion(v1)
67+
s2 = StrictVersion(v2)
68+
if s1 == s2:
69+
return 0
70+
elif s1 > s2:
71+
return -1
72+
else:
73+
return 1
5574

5675

5776
def ping(url):

0 commit comments

Comments
 (0)