Hello community,

here is the log from the commit of package python-docker-py for 
openSUSE:Factory checked in at 2017-02-16 16:50:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-docker-py (Old)
 and      /work/SRC/openSUSE:Factory/.python-docker-py.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-docker-py"

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-docker-py/python-docker-py.changes        
2016-11-05 21:28:08.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-docker-py.new/python-docker-py.changes   
2017-02-16 16:50:32.711162271 +0100
@@ -1,0 +2,11 @@
+Wed Feb  8 11:41:27 UTC 2017 - kkae...@suse.com
+
+- Update to version 1.10.6
+  Bugfixes
+    Fixed an issue where setting a NpipeSocket instance to blocking mode would 
put it in non-blocking mode and vice-versa.
+
+- Update to version 1.10.5
+  Bugfixes
+    Fixed an issue where concurrent attempts to access to a named pipe by the 
client would sometimes cause recoverable exceptions to be raised.
+
+-------------------------------------------------------------------

Old:
----
  docker-py-1.10.4.tar.gz

New:
----
  docker-py-1.10.6.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-docker-py.spec ++++++
--- /var/tmp/diff_new_pack.303mgm/_old  2017-02-16 16:50:33.139101508 +0100
+++ /var/tmp/diff_new_pack.303mgm/_new  2017-02-16 16:50:33.139101508 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-docker-py
 #
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 %define upstream_name docker-py
 Name:           python-docker-py
-Version:        1.10.4
+Version:        1.10.6
 Release:        0
 Summary:        Docker API Client
 License:        Apache-2.0
@@ -29,11 +29,11 @@
 # openSUSE-Patch hide_py_pckgmgmt.patch
 Patch0:         hide_py_pckgmgmt.patch
 Requires:       python-backports.ssl_match_hostname >= 3.5
+Requires:       python-docker-pycreds >= 0.2.1
 Requires:       python-ipaddress >= 1.0.16
 Requires:       python-requests >= 2.5.3
 Requires:       python-six >= 1.4.0
 Requires:       python-websocket-client >= 0.32.0
-Requires:       python-docker-pycreds >= 0.2.1
 BuildRequires:  fdupes
 BuildRequires:  python-mock
 BuildRequires:  python-pytest

++++++ docker-py-1.10.4.tar.gz -> docker-py-1.10.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-py-1.10.4/PKG-INFO 
new/docker-py-1.10.6/PKG-INFO
--- old/docker-py-1.10.4/PKG-INFO       2016-10-17 22:30:19.000000000 +0200
+++ new/docker-py-1.10.6/PKG-INFO       2016-11-03 00:49:01.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: docker-py
-Version: 1.10.4
+Version: 1.10.6
 Summary: Python client for Docker.
 Home-page: https://github.com/docker/docker-py/
 Author: Joffrey F
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-py-1.10.4/docker/transport/npipesocket.py 
new/docker-py-1.10.6/docker/transport/npipesocket.py
--- old/docker-py-1.10.4/docker/transport/npipesocket.py        2016-10-17 
22:28:48.000000000 +0200
+++ new/docker-py-1.10.6/docker/transport/npipesocket.py        2016-11-03 
00:48:35.000000000 +0100
@@ -5,9 +5,11 @@
 import win32file
 import win32pipe
 
+cERROR_PIPE_BUSY = 0xe7
 cSECURITY_SQOS_PRESENT = 0x100000
 cSECURITY_ANONYMOUS = 0
-cPIPE_READMODE_MESSAGE = 2
+
+RETRY_WAIT_TIMEOUT = 10000
 
 
 def check_closed(f):
@@ -45,15 +47,27 @@
     @check_closed
     def connect(self, address):
         win32pipe.WaitNamedPipe(address, self._timeout)
-        handle = win32file.CreateFile(
-            address,
-            win32file.GENERIC_READ | win32file.GENERIC_WRITE,
-            0,
-            None,
-            win32file.OPEN_EXISTING,
-            cSECURITY_ANONYMOUS | cSECURITY_SQOS_PRESENT,
-            0
-        )
+        try:
+            handle = win32file.CreateFile(
+                address,
+                win32file.GENERIC_READ | win32file.GENERIC_WRITE,
+                0,
+                None,
+                win32file.OPEN_EXISTING,
+                cSECURITY_ANONYMOUS | cSECURITY_SQOS_PRESENT,
+                0
+            )
+        except win32pipe.error as e:
+            # See Remarks:
+            # https://msdn.microsoft.com/en-us/library/aa365800.aspx
+            if e.winerror == cERROR_PIPE_BUSY:
+                # Another program or thread has grabbed our pipe instance
+                # before we got to it. Wait for availability and attempt to
+                # connect again.
+                win32pipe.WaitNamedPipe(address, RETRY_WAIT_TIMEOUT)
+                return self.connect(address)
+            raise e
+
         self.flags = win32pipe.GetNamedPipeInfo(handle)[0]
 
         self._handle = handle
@@ -155,13 +169,16 @@
 
     def settimeout(self, value):
         if value is None:
-            self._timeout = win32pipe.NMPWAIT_NOWAIT
+            # Blocking mode
+            self._timeout = win32pipe.NMPWAIT_WAIT_FOREVER
         elif not isinstance(value, (float, int)) or value < 0:
             raise ValueError('Timeout value out of range')
         elif value == 0:
-            self._timeout = win32pipe.NMPWAIT_USE_DEFAULT_WAIT
+            # Non-blocking mode
+            self._timeout = win32pipe.NMPWAIT_NO_WAIT
         else:
-            self._timeout = value
+            # Timeout mode - Value converted to milliseconds
+            self._timeout = value * 1000
 
     def gettimeout(self):
         return self._timeout
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-py-1.10.4/docker/version.py 
new/docker-py-1.10.6/docker/version.py
--- old/docker-py-1.10.4/docker/version.py      2016-10-17 22:28:48.000000000 
+0200
+++ new/docker-py-1.10.6/docker/version.py      2016-11-03 00:48:35.000000000 
+0100
@@ -1,2 +1,2 @@
-version = "1.10.4"
+version = "1.10.6"
 version_info = tuple([int(d) for d in version.split("-")[0].split(".")])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-py-1.10.4/docker_py.egg-info/PKG-INFO 
new/docker-py-1.10.6/docker_py.egg-info/PKG-INFO
--- old/docker-py-1.10.4/docker_py.egg-info/PKG-INFO    2016-10-17 
22:30:18.000000000 +0200
+++ new/docker-py-1.10.6/docker_py.egg-info/PKG-INFO    2016-11-03 
00:49:01.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: docker-py
-Version: 1.10.4
+Version: 1.10.6
 Summary: Python client for Docker.
 Home-page: https://github.com/docker/docker-py/
 Author: Joffrey F


Reply via email to