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