Extend list_volumes arguments
Support the all arguments of volumes.list in list_volumes Change-Id: Ib52166dc2ea3ab5684b164ce09235055a14dea83
This commit is contained in:
parent
81ab47030e
commit
690c6bec46
@ -24,6 +24,11 @@ Added
|
||||
|
||||
* Added neutron trunk scenarios
|
||||
|
||||
Changed
|
||||
~~~~~~~
|
||||
|
||||
* Extend CinderVolumes.list_volumes scenario arguments.
|
||||
|
||||
[1.3.0] - 2018-10-08
|
||||
--------------------
|
||||
|
||||
|
18
rally_openstack/scenarios/cinder/volumes.py
Normal file → Executable file
18
rally_openstack/scenarios/cinder/volumes.py
Normal file → Executable file
@ -105,7 +105,8 @@ class CreateAndGetVolume(cinder_utils.CinderBasic):
|
||||
platform="openstack")
|
||||
class ListVolumes(cinder_utils.CinderBasic):
|
||||
|
||||
def run(self, detailed=True):
|
||||
def run(self, detailed=True, search_opts=None, marker=None,
|
||||
limit=None, sort_key=None, sort_dir=None, sort=None):
|
||||
"""List all volumes.
|
||||
|
||||
This simple scenario tests the cinder list command by listing
|
||||
@ -113,9 +114,22 @@ class ListVolumes(cinder_utils.CinderBasic):
|
||||
|
||||
:param detailed: True if detailed information about volumes
|
||||
should be listed
|
||||
:param search_opts: Search options to filter out volumes.
|
||||
:param marker: Begin returning volumes that appear later in the volume
|
||||
list than that represented by this volume id.(For V2 or
|
||||
higher)
|
||||
:param limit: Maximum number of volumes to return.
|
||||
:param sort_key: Key to be sorted; deprecated in kilo.(For V2 or
|
||||
higher)
|
||||
:param sort_dir: Sort direction, should be 'desc' or 'asc'; deprecated
|
||||
in kilo. (For V2 or higher)
|
||||
:param sort: Sort information
|
||||
"""
|
||||
|
||||
self.cinder.list_volumes(detailed)
|
||||
self.cinder.list_volumes(detailed, search_opts=search_opts,
|
||||
marker=marker, limit=limit,
|
||||
sort_key=sort_key, sort_dir=sort_dir,
|
||||
sort=sort)
|
||||
|
||||
|
||||
@validation.add("required_services", services=[consts.Service.CINDER])
|
||||
|
15
rally_openstack/services/storage/block.py
Normal file → Executable file
15
rally_openstack/services/storage/block.py
Normal file → Executable file
@ -82,13 +82,24 @@ class BlockStorage(service.UnifiedService):
|
||||
multiattach=multiattach, backup_id=backup_id)
|
||||
|
||||
@service.should_be_overridden
|
||||
def list_volumes(self, detailed=True):
|
||||
def list_volumes(self, detailed=True, search_opts=None, marker=None,
|
||||
limit=None, sort_key=None, sort_dir=None, sort=None):
|
||||
"""Lists all volumes.
|
||||
|
||||
:param detailed: Whether to return detailed volume info.
|
||||
:param search_opts: Search options to filter out volumes.
|
||||
:param marker: Begin returning volumes that appear later in the volume
|
||||
list than that represented by this volume id.
|
||||
:param limit: Maximum number of volumes to return.
|
||||
:param sort_key: Key to be sorted; deprecated in kilo
|
||||
:param sort_dir: Sort direction, should be 'desc' or 'asc'; deprecated
|
||||
in kilo
|
||||
:param sort: Sort information
|
||||
:returns: Return volumes list.
|
||||
"""
|
||||
return self._impl.list_volumes(detailed=detailed)
|
||||
return self._impl.list_volumes(
|
||||
detailed=detailed, search_opts=search_opts, marker=marker,
|
||||
limit=limit, sort_key=sort_key, sort_dir=sort_dir, sort=sort)
|
||||
|
||||
@service.should_be_overridden
|
||||
def get_volume(self, volume_id):
|
||||
|
6
rally_openstack/services/storage/cinder_common.py
Normal file → Executable file
6
rally_openstack/services/storage/cinder_common.py
Normal file → Executable file
@ -58,12 +58,6 @@ class CinderMixin(object):
|
||||
check_interval=CONF.openstack.cinder_volume_create_poll_interval
|
||||
)
|
||||
|
||||
def list_volumes(self, detailed=True):
|
||||
"""List all volumes."""
|
||||
aname = "cinder_v%s.list_volumes" % self.version
|
||||
with atomic.ActionTimer(self, aname):
|
||||
return self._get_client().volumes.list(detailed)
|
||||
|
||||
def get_volume(self, volume_id):
|
||||
"""Get target volume information."""
|
||||
aname = "cinder_v%s.get_volume" % self.version
|
||||
|
22
rally_openstack/services/storage/cinder_v1.py
Normal file → Executable file
22
rally_openstack/services/storage/cinder_v1.py
Normal file → Executable file
@ -93,6 +93,13 @@ class CinderV1Service(service.Service, cinder_common.CinderMixin):
|
||||
volume_id, **kwargs)
|
||||
return updated_volume["volume"]
|
||||
|
||||
@atomic.action_timer("cinder_v1.list_volumes")
|
||||
def list_volumes(self, detailed=True, search_opts=None, limit=None):
|
||||
"""List all volumes."""
|
||||
return self._get_client().volumes.list(detailed=detailed,
|
||||
search_opts=search_opts,
|
||||
limit=limit)
|
||||
|
||||
@atomic.action_timer("cinder_v1.list_types")
|
||||
def list_types(self, search_opts=None):
|
||||
"""Lists all volume types."""
|
||||
@ -209,14 +216,25 @@ class UnifiedCinderV1Service(cinder_common.UnifiedCinderMixin,
|
||||
project_id=project_id, availability_zone=availability_zone,
|
||||
metadata=metadata, imageRef=imageRef))
|
||||
|
||||
def list_volumes(self, detailed=True):
|
||||
def list_volumes(self, detailed=True, search_opts=None, marker=None,
|
||||
limit=None, sort_key=None, sort_dir=None, sort=None):
|
||||
"""Lists all volumes.
|
||||
|
||||
:param detailed: Whether to return detailed volume info.
|
||||
:param search_opts: Search options to filter out volumes.
|
||||
:param marker: Begin returning volumes that appear later in the volume
|
||||
list than that represented by this volume id.(IGNORED)
|
||||
:param limit: Maximum number of volumes to return.
|
||||
:param sort_key: Key to be sorted; deprecated in kilo(IGNORED)
|
||||
:param sort_dir: Sort direction, should be 'desc' or 'asc'; deprecated
|
||||
in kilo(IGNORED)
|
||||
:param sort: Sort information(IGNORED)
|
||||
:returns: Return volumes list.
|
||||
"""
|
||||
return [self._unify_volume(volume)
|
||||
for volume in self._impl.list_volumes(detailed=detailed)]
|
||||
for volume in self._impl.list_volumes(detailed=detailed,
|
||||
search_opts=search_opts,
|
||||
limit=limit)]
|
||||
|
||||
def get_volume(self, volume_id):
|
||||
"""Get a volume.
|
||||
|
23
rally_openstack/services/storage/cinder_v2.py
Normal file → Executable file
23
rally_openstack/services/storage/cinder_v2.py
Normal file → Executable file
@ -96,6 +96,14 @@ class CinderV2Service(service.Service, cinder_common.CinderMixin):
|
||||
volume_id, **kwargs)
|
||||
return updated_volume["volume"]
|
||||
|
||||
@atomic.action_timer("cinder_v2.list_volumes")
|
||||
def list_volumes(self, detailed=True, search_opts=None, marker=None,
|
||||
limit=None, sort_key=None, sort_dir=None, sort=None):
|
||||
"""List all volumes."""
|
||||
return self._get_client().volumes.list(
|
||||
detailed=detailed, search_opts=search_opts, marker=marker,
|
||||
limit=limit, sort_key=sort_key, sort_dir=sort_dir, sort=sort)
|
||||
|
||||
@atomic.action_timer("cinder_v2.list_types")
|
||||
def list_types(self, search_opts=None, is_public=None):
|
||||
"""Lists all volume types."""
|
||||
@ -267,14 +275,25 @@ class UnifiedCinderV2Service(cinder_common.UnifiedCinderMixin,
|
||||
imageRef=imageRef, scheduler_hints=scheduler_hints,
|
||||
multiattach=multiattach))
|
||||
|
||||
def list_volumes(self, detailed=True):
|
||||
def list_volumes(self, detailed=True, search_opts=None, marker=None,
|
||||
limit=None, sort_key=None, sort_dir=None, sort=None):
|
||||
"""Lists all volumes.
|
||||
|
||||
:param detailed: Whether to return detailed volume info.
|
||||
:param search_opts: Search options to filter out volumes.
|
||||
:param marker: Begin returning volumes that appear later in the volume
|
||||
list than that represented by this volume id.
|
||||
:param limit: Maximum number of volumes to return.
|
||||
:param sort_key: Key to be sorted; deprecated in kilo
|
||||
:param sort_dir: Sort direction, should be 'desc' or 'asc'; deprecated
|
||||
in kilo
|
||||
:param sort: Sort information
|
||||
:returns: Return volumes list.
|
||||
"""
|
||||
return [self._unify_volume(volume)
|
||||
for volume in self._impl.list_volumes(detailed=detailed)]
|
||||
for volume in self._impl.list_volumes(
|
||||
detailed=detailed, search_opts=search_opts, marker=marker,
|
||||
limit=limit, sort_key=sort_key, sort_dir=sort_dir, sort=sort)]
|
||||
|
||||
def get_volume(self, volume_id):
|
||||
"""Get a volume.
|
||||
|
23
rally_openstack/services/storage/cinder_v3.py
Normal file → Executable file
23
rally_openstack/services/storage/cinder_v3.py
Normal file → Executable file
@ -98,6 +98,14 @@ class CinderV3Service(service.Service, cinder_common.CinderMixin):
|
||||
volume_id, **kwargs)
|
||||
return updated_volume["volume"]
|
||||
|
||||
@atomic.action_timer("cinder_v3.list_volumes")
|
||||
def list_volumes(self, detailed=True, search_opts=None, marker=None,
|
||||
limit=None, sort_key=None, sort_dir=None, sort=None):
|
||||
"""List all volumes."""
|
||||
return self._get_client().volumes.list(
|
||||
detailed=detailed, search_opts=search_opts, marker=marker,
|
||||
limit=limit, sort_key=sort_key, sort_dir=sort_dir, sort=sort)
|
||||
|
||||
@atomic.action_timer("cinder_v3.list_types")
|
||||
def list_types(self, search_opts=None, is_public=None):
|
||||
"""Lists all volume types."""
|
||||
@ -271,14 +279,25 @@ class UnifiedCinderV3Service(cinder_common.UnifiedCinderMixin,
|
||||
imageRef=imageRef, scheduler_hints=scheduler_hints,
|
||||
multiattach=multiattach, backup_id=backup_id))
|
||||
|
||||
def list_volumes(self, detailed=True):
|
||||
def list_volumes(self, detailed=True, search_opts=None, marker=None,
|
||||
limit=None, sort_key=None, sort_dir=None, sort=None):
|
||||
"""Lists all volumes.
|
||||
|
||||
:param detailed: Whether to return detailed volume info.
|
||||
:param search_opts: Search options to filter out volumes.
|
||||
:param marker: Begin returning volumes that appear later in the volume
|
||||
list than that represented by this volume id.
|
||||
:param limit: Maximum number of volumes to return.
|
||||
:param sort_key: Key to be sorted; deprecated in kilo
|
||||
:param sort_dir: Sort direction, should be 'desc' or 'asc'; deprecated
|
||||
in kilo
|
||||
:param sort: Sort information
|
||||
:returns: Return volumes list.
|
||||
"""
|
||||
return [self._unify_volume(volume)
|
||||
for volume in self._impl.list_volumes(detailed=detailed)]
|
||||
for volume in self._impl.list_volumes(
|
||||
detailed=detailed, search_opts=search_opts, marker=marker,
|
||||
limit=limit, sort_key=sort_key, sort_dir=sort_dir, sort=sort)]
|
||||
|
||||
def get_volume(self, volume_id):
|
||||
"""Get a volume.
|
||||
|
4
tests/unit/scenarios/cinder/test_volumes.py
Normal file → Executable file
4
tests/unit/scenarios/cinder/test_volumes.py
Normal file → Executable file
@ -66,7 +66,9 @@ class CinderServersTestCase(test.ScenarioTestCase):
|
||||
mock_service = self.mock_cinder.return_value
|
||||
scenario = volumes.ListVolumes(self._get_context())
|
||||
scenario.run(True)
|
||||
mock_service.list_volumes.assert_called_once_with(True)
|
||||
mock_service.list_volumes.assert_called_once_with(
|
||||
True, limit=None, marker=None, search_opts=None, sort=None,
|
||||
sort_dir=None, sort_key=None)
|
||||
|
||||
def test_list_types(self):
|
||||
mock_service = self.mock_cinder.return_value
|
||||
|
4
tests/unit/services/storage/test_block.py
Normal file → Executable file
4
tests/unit/services/storage/test_block.py
Normal file → Executable file
@ -45,7 +45,9 @@ class BlockTestCase(test.TestCase):
|
||||
def test_list_volumes(self):
|
||||
self.assertEqual(self.service._impl.list_volumes.return_value,
|
||||
self.service.list_volumes(detailed=True))
|
||||
self.service._impl.list_volumes.assert_called_once_with(detailed=True)
|
||||
self.service._impl.list_volumes.assert_called_once_with(
|
||||
detailed=True, limit=None, marker=None, search_opts=None,
|
||||
sort=None, sort_dir=None, sort_key=None)
|
||||
|
||||
def test_get_volume(self):
|
||||
self.assertTrue(self.service._impl.get_volume.return_value,
|
||||
|
5
tests/unit/services/storage/test_cinder_common.py
Normal file → Executable file
5
tests/unit/services/storage/test_cinder_common.py
Normal file → Executable file
@ -111,11 +111,6 @@ class CinderMixinTestCase(test.ScenarioTestCase):
|
||||
check_interval=CONF.openstack.cinder_volume_create_poll_interval
|
||||
)
|
||||
|
||||
def test_list_volumes(self):
|
||||
self.assertEqual(self.cinder.volumes.list.return_value,
|
||||
self.service.list_volumes())
|
||||
self.cinder.volumes.list.assert_called_once_with(True)
|
||||
|
||||
def test_get_volume(self):
|
||||
self.assertEqual(self.cinder.volumes.get.return_value,
|
||||
self.service.get_volume(1))
|
||||
|
13
tests/unit/services/storage/test_cinder_v1.py
Normal file → Executable file
13
tests/unit/services/storage/test_cinder_v1.py
Normal file → Executable file
@ -110,6 +110,16 @@ class CinderV1ServiceTestCase(test.ScenarioTestCase):
|
||||
self._test_atomic_action_timer(self.atomic_actions(),
|
||||
"cinder_v1.update_volume")
|
||||
|
||||
def test_list_volumes(self):
|
||||
self.assertEqual(self.cinder.volumes.list.return_value,
|
||||
self.service.list_volumes(
|
||||
detailed=False, search_opts=None, limit=1))
|
||||
self.cinder.volumes.list.assert_called_once_with(
|
||||
detailed=False, search_opts=None, limit=1
|
||||
)
|
||||
self._test_atomic_action_timer(self.atomic_actions(),
|
||||
"cinder_v1.list_volumes")
|
||||
|
||||
def test_list_types(self):
|
||||
self.assertEqual(self.cinder.volume_types.list.return_value,
|
||||
self.service.list_types(search_opts=None))
|
||||
@ -266,7 +276,8 @@ class UnifiedCinderV1ServiceTestCase(test.TestCase):
|
||||
self.service._impl.list_volumes.return_value = ["vol"]
|
||||
self.assertEqual([self.service._unify_volume.return_value],
|
||||
self.service.list_volumes(detailed=True))
|
||||
self.service._impl.list_volumes.assert_called_once_with(detailed=True)
|
||||
self.service._impl.list_volumes.assert_called_once_with(
|
||||
detailed=True, limit=None, search_opts=None)
|
||||
self.service._unify_volume.assert_called_once_with("vol")
|
||||
|
||||
def test_get_volume(self):
|
||||
|
19
tests/unit/services/storage/test_cinder_v2.py
Normal file → Executable file
19
tests/unit/services/storage/test_cinder_v2.py
Normal file → Executable file
@ -112,6 +112,21 @@ class CinderV2ServiceTestCase(test.ScenarioTestCase):
|
||||
self._test_atomic_action_timer(self.atomic_actions(),
|
||||
"cinder_v2.update_volume")
|
||||
|
||||
def test_list_volumes(self):
|
||||
self.assertEqual(self.cinder.volumes.list.return_value,
|
||||
self.service.list_volumes(
|
||||
detailed=False, search_opts=None, limit=1,
|
||||
marker=None, sort_key=None, sort_dir=None,
|
||||
sort=None
|
||||
))
|
||||
self.cinder.volumes.list.assert_called_once_with(
|
||||
detailed=False, search_opts=None, limit=1,
|
||||
marker=None, sort_key=None, sort_dir=None,
|
||||
sort=None
|
||||
)
|
||||
self._test_atomic_action_timer(self.atomic_actions(),
|
||||
"cinder_v2.list_volumes")
|
||||
|
||||
def test_list_types(self):
|
||||
self.assertEqual(self.cinder.volume_types.list.return_value,
|
||||
self.service.list_types(search_opts=None,
|
||||
@ -314,7 +329,9 @@ class UnifiedCinderV2ServiceTestCase(test.TestCase):
|
||||
self.service._impl.list_volumes.return_value = ["vol"]
|
||||
self.assertEqual([self.service._unify_volume.return_value],
|
||||
self.service.list_volumes(detailed=True))
|
||||
self.service._impl.list_volumes.assert_called_once_with(detailed=True)
|
||||
self.service._impl.list_volumes.assert_called_once_with(
|
||||
detailed=True, limit=None, marker=None, search_opts=None,
|
||||
sort=None, sort_dir=None, sort_key=None)
|
||||
self.service._unify_volume.assert_called_once_with("vol")
|
||||
|
||||
def test_get_volume(self):
|
||||
|
19
tests/unit/services/storage/test_cinder_v3.py
Normal file → Executable file
19
tests/unit/services/storage/test_cinder_v3.py
Normal file → Executable file
@ -116,6 +116,21 @@ class CinderV3ServiceTestCase(test.ScenarioTestCase):
|
||||
self._test_atomic_action_timer(self.atomic_actions(),
|
||||
"cinder_v3.update_volume")
|
||||
|
||||
def test_list_volumes(self):
|
||||
self.assertEqual(self.cinder.volumes.list.return_value,
|
||||
self.service.list_volumes(
|
||||
detailed=False, search_opts=None, limit=1,
|
||||
marker=None, sort_key=None, sort_dir=None,
|
||||
sort=None
|
||||
))
|
||||
self.cinder.volumes.list.assert_called_once_with(
|
||||
detailed=False, search_opts=None, limit=1,
|
||||
marker=None, sort_key=None, sort_dir=None,
|
||||
sort=None
|
||||
)
|
||||
self._test_atomic_action_timer(self.atomic_actions(),
|
||||
"cinder_v3.list_volumes")
|
||||
|
||||
def test_list_types(self):
|
||||
self.assertEqual(self.cinder.volume_types.list.return_value,
|
||||
self.service.list_types(search_opts=None,
|
||||
@ -318,7 +333,9 @@ class UnifiedCinderV3ServiceTestCase(test.TestCase):
|
||||
self.service._impl.list_volumes.return_value = ["vol"]
|
||||
self.assertEqual([self.service._unify_volume.return_value],
|
||||
self.service.list_volumes(detailed=True))
|
||||
self.service._impl.list_volumes.assert_called_once_with(detailed=True)
|
||||
self.service._impl.list_volumes.assert_called_once_with(
|
||||
detailed=True, limit=None, marker=None, search_opts=None,
|
||||
sort=None, sort_dir=None, sort_key=None)
|
||||
self.service._unify_volume.assert_called_once_with("vol")
|
||||
|
||||
def test_get_volume(self):
|
||||
|
Loading…
x
Reference in New Issue
Block a user