]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commit
Fix Python 3 issues in ceph and rbd drivers
authorVictor Stinner <vstinner@redhat.com>
Tue, 23 Jun 2015 09:55:40 +0000 (11:55 +0200)
committerVictor Stinner <vstinner@redhat.com>
Wed, 24 Jun 2015 15:11:19 +0000 (17:11 +0200)
commitc967b44110e1338449f07663fb3e4b0fc6ff5913
tree8c8445874985763e9b28fe51698bc05e984892e4
parent300d441d5148c3f8437700298f88982185ebe73f
Fix Python 3 issues in ceph and rbd drivers

* Add cinder.utils.convert_str() function: helper to convert a string to
  a native string: convert to bytes on Python 2, convert to Unicode on
  Python 3. Function needed by ceph and rbd drivers.
* Replace encodeutils.safe_encode() with utils.convert_str()
* test_backup_ceph: get the size of the volume file using os.fstat() to
  fix a test. Before the volume size was a mock, but comparison between
  integers and mocks raise a TypeError on Python 3.
* Fix RBDDriver._update_volume_stats(): replace a/b with a//b to get an integer
  on Python 2 and Python 3 (a/b always returns a float on Python 3)
* Replace map() with a list-comprehension in RBDDriver because a list is
  expected. On Python 3, map() returns an iterator.
* tox.ini: add to following tests to Python 3.4

  - cinder.tests.unit.test_backup_ceph
  - cinder.tests.unit.test_rbd

Blueprint cinder-python3
Change-Id: I7acb0d9eed0d351798133e0c6ef55408fed925dd
cinder/backup/drivers/ceph.py
cinder/tests/unit/test_backup_ceph.py
cinder/utils.py
cinder/volume/drivers/rbd.py
tox.ini