1 Description: Workaround problematic type casting in 15.04
2 ======================================================================
3 FAIL: cinder.tests.test_utils.GetBlkdevMajorMinorTestCase.test_get_blkdev_major_minor_file
4 cinder.tests.test_utils.GetBlkdevMajorMinorTestCase.test_get_blkdev_major_minor_file
5 ----------------------------------------------------------------------
6 _StringException: Traceback (most recent call last):
7 File "/build/buildd/cinder-2015.1~b3/cinder/tests/test_utils.py", line 721, in test_get_blkdev_major_minor_file
8 dev = self._test_get_blkdev_major_minor_file('/dev/made_up_disk1')
9 File "/usr/lib/python2.7/dist-packages/mock.py", line 1210, in patched
10 return func(*args, **keywargs)
11 File "/build/buildd/cinder-2015.1~b3/cinder/tests/test_utils.py", line 712, in _test_get_blkdev_major_minor_file
12 dev = utils.get_blkdev_major_minor(test_file)
13 File "/build/buildd/cinder-2015.1~b3/cinder/utils.py", line 656, in get_blkdev_major_minor
14 return get_blkdev_major_minor(devpath, False)
15 File "/build/buildd/cinder-2015.1~b3/cinder/utils.py", line 645, in get_blkdev_major_minor
16 return '%d:%d' % (os.major(st.st_rdev), os.minor(st.st_rdev))
17 SystemError: ../Objects/longobject.c:998: bad argument to internal function
18 Traceback (most recent call last):
19 _StringException: Empty attachments:
22 Author: James Page <james.page@ubuntu.com>
27 @@ -643,7 +643,8 @@ def get_blkdev_major_minor(path, lookup_
29 if stat.S_ISBLK(st.st_mode):
30 path, st = _get_disk_of_partition(path, st)
31 - return '%d:%d' % (os.major(st.st_rdev), os.minor(st.st_rdev))
32 + return '%d:%d' % (os.major(long(st.st_rdev)),
33 + os.minor(long(st.st_rdev)))
34 elif stat.S_ISCHR(st.st_mode):
35 # No I/O ratelimit control is provided for character devices