rally-openstack: 1.2.0 broken with python-cinderclient >= 4

Bug #1785519 reported by Corey Wright
16
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Rally
Fix Released
Undecided
Unassigned

Bug Description

Python-CinderClient 4.0.0 broke backwards compatibility by rejecting the "source_replica" keyword in its volume "create()" which Rally-OpenStack <= 1.2.0 uses and causes errors on tests that create volumes with "TypeError: create() got an unexpected keyword argument 'source_replica'".

This has already been address in Rally-OpenStack Git commit 67882d55 which hasn't been released.

The Rally-OpenStack 1.2.0 wheel "Requires-Dist: python-cinderclient (>=3.3.0)" which doesn't prevent the backward incompatible 4.x. (Presumably that's based on PBR finding "python-cinderclient>=3.3.0" in requirements.txt, but not considering "python-cinderclient===3.5.0" in upper-constraints.txt).

A work-around for installing Rally-OpenStack with Pip is creating and referencing a constraint file that contains "python-cinderclient<4" (eg echo "python-cinderclient<4" >constraints.txt; pip install --constraint constraints.txt rally-openstack").

Traceback (most recent call last):
  File "/root/rally/local/lib/python2.7/site-packages/rally/task/runner.py", line 71, in _run_scenario_once
    getattr(scenario_inst, method_name)(**scenario_kwargs)
  File "/root/rally/local/lib/python2.7/site-packages/rally_openstack/scenarios/cinder/volumes.py", line 870, in run
    volume = self.cinder.create_volume(size, **kwargs)
  File "/root/rally/local/lib/python2.7/site-packages/rally/task/service.py", line 116, in wrapper
    return func(instance, *args, **kwargs)
  File "/root/rally/local/lib/python2.7/site-packages/rally_openstack/services/storage/block.py", line 76, in create_volume
    source_replica=source_replica, multiattach=multiattach)
  File "/root/rally/local/lib/python2.7/site-packages/rally/task/service.py", line 116, in wrapper
    return func(instance, *args, **kwargs)
  File "/root/rally/local/lib/python2.7/site-packages/rally_openstack/services/storage/cinder_v2.py", line 276, in create_volume
    source_replica=source_replica, multiattach=multiattach))
  File "/root/rally/local/lib/python2.7/site-packages/rally/task/service.py", line 116, in wrapper
    return func(instance, *args, **kwargs)
  File "/root/rally/local/lib/python2.7/site-packages/rally/task/atomic.py", line 91, in func_atomic_actions
    f = func(self, *args, **kwargs)
  File "/root/rally/local/lib/python2.7/site-packages/rally_openstack/services/storage/cinder_v2.py", line 78, in create_volume
    .volumes.create(size, **kwargs))
TypeError: create() got an unexpected keyword argument 'source_replica'

Revision history for this message
chenhb (chen-haibing1) wrote :

I want this issue should be fixed in master branch. Please download repo from master branch, then install rally-openstack with `python setup.py install` to update your rally-openstack codes, or you could temporarily downgrade your cinder client to avoid this issue. will have a new release in soon future. Thanks for your report.

Changed in rally:
status: New → Fix Committed
Changed in rally:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.