[Kimchi-devel] [PATCH] python 2.6 compatibility: Use 'with' statement only with one context

Wen Wang wenwang at linux.vnet.ibm.com
Fri Sep 12 03:11:52 UTC 2014


Tested-by: Wen Wang <wenwang at linux.vnet.ibm.com>

On 09/12/2014 12:36 AM, Aline Manera wrote:
> python 2.6 does not allow specifying multiple contexts in one 'with'
> statement. And it is used by RHEL6.5
> Fix it by specifying just one context per 'with' statement.
>
> Signed-off-by: Aline Manera <alinefm at linux.vnet.ibm.com>
> ---
>   src/kimchi/model/storagevolumes.py | 34 +++++++++++++++++-----------------
>   1 file changed, 17 insertions(+), 17 deletions(-)
>
> diff --git a/src/kimchi/model/storagevolumes.py b/src/kimchi/model/storagevolumes.py
> index 4d0c231..50055a3 100644
> --- a/src/kimchi/model/storagevolumes.py
> +++ b/src/kimchi/model/storagevolumes.py
> @@ -168,24 +168,24 @@ class StorageVolumesModel(object):
>           pool = pool_model.lookup(pool_name)
>           file_path = os.path.join(pool['path'], name)
>
> -        with contextlib.closing(urllib2.urlopen(url)) as response,\
> -                open(file_path, 'w') as volume_file:
> -            remote_size = response.info().getheader('Content-Length', '-')
> -            downloaded_size = 0
> +        with contextlib.closing(urllib2.urlopen(url)) as response:
> +            with open(file_path, 'w') as volume_file:
> +                remote_size = response.info().getheader('Content-Length', '-')
> +                downloaded_size = 0
>
> -            try:
> -                while True:
> -                    chunk_data = response.read(READ_CHUNK_SIZE)
> -                    if not chunk_data:
> -                        break
> -
> -                    volume_file.write(chunk_data)
> -                    downloaded_size += len(chunk_data)
> -                    cb('%s/%s' % (downloaded_size, remote_size))
> -            except Exception, e:
> -                raise OperationFailed('KCHVOL0007E', {'name': name,
> -                                                      'pool': pool_name,
> -                                                      'err': e.message})
> +                try:
> +                    while True:
> +                        chunk_data = response.read(READ_CHUNK_SIZE)
> +                        if not chunk_data:
> +                            break
> +
> +                        volume_file.write(chunk_data)
> +                        downloaded_size += len(chunk_data)
> +                        cb('%s/%s' % (downloaded_size, remote_size))
> +                except Exception, e:
> +                    raise OperationFailed('KCHVOL0007E', {'name': name,
> +                                                          'pool': pool_name,
> +                                                          'err': e.message})
>
>           StoragePoolModel.get_storagepool(pool_name, self.conn).refresh()
>           cb('OK', True)




More information about the Kimchi-devel mailing list