Fix volume throttling to Python 3
BlkioCgroup._set_limits(): sort devices before iterating on them to have a reliable behaviour. The devs variable is a dictionary. On Python 3, the hash function is now randomized, so iterating on a dictionary gives items in a random order. Use sorted() to iterate on the list of sorted devices instead. tox.ini: add cinder.tests.unit.test_volume_throttling to Python 3. Blueprint cinder-python3 Partial-Bug: #1348818 Change-Id: Icf7141f772397c7ac08f0f1e21ad74cb86a06351
This commit is contained in:
parent
7f498b0d4a
commit
2e20e70e14
@ -90,7 +90,7 @@ class BlkioCgroup(Throttle):
|
||||
|
||||
def _set_limits(self, rw, devs):
|
||||
total = sum(devs.values())
|
||||
for dev in devs:
|
||||
for dev in sorted(devs):
|
||||
self._limit_bps(rw, dev, self.bps_limit * devs[dev] / total)
|
||||
|
||||
@utils.synchronized('BlkioCgroup')
|
||||
|
1
tox.ini
1
tox.ini
@ -103,6 +103,7 @@ commands =
|
||||
cinder.tests.unit.test_volume_configuration \
|
||||
cinder.tests.unit.test_volume_glance_metadata \
|
||||
cinder.tests.unit.test_volume_rpcapi \
|
||||
cinder.tests.unit.test_volume_throttling \
|
||||
cinder.tests.unit.test_volume_transfer \
|
||||
cinder.tests.unit.test_volume_types \
|
||||
cinder.tests.unit.test_volume_types_extra_specs \
|
||||
|
Loading…
Reference in New Issue
Block a user