volume: Add missing 'volume list --offset' parameter
Looking at the code for the ancient v1 cinder API, we see that this supported offset-style pagination [1][2][3]. Add this parameter, simplifying a future patch to standardize pagination across OSC. [1] https://github.com/openstack/cinder/blob/juno-eol/cinder/api/v1/volumes.py#L259 [2] https://github.com/openstack/cinder/blob/juno-eol/cinder/api/v1/volumes.py#L292 [3] https://github.com/openstack/cinder/blob/juno-eol/cinder/api/common.py#L120 Change-Id: Ifec208ea9ed7afb4bebced6132abb96a3af034b5 Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This commit is contained in:
parent
c1209601b4
commit
e0dc31f32e
@ -858,9 +858,10 @@ class TestVolumeList(TestVolume):
|
||||
), )
|
||||
self.assertItemsEqual(datalist, tuple(data))
|
||||
|
||||
def test_volume_list_with_limit(self):
|
||||
def test_volume_list_with_limit_and_offset(self):
|
||||
arglist = [
|
||||
'--limit', '2',
|
||||
'--offset', '5',
|
||||
]
|
||||
verifylist = [
|
||||
('long', False),
|
||||
@ -868,6 +869,7 @@ class TestVolumeList(TestVolume):
|
||||
('name', None),
|
||||
('status', None),
|
||||
('limit', 2),
|
||||
('offset', 5),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
@ -876,9 +878,11 @@ class TestVolumeList(TestVolume):
|
||||
self.volumes_mock.list.assert_called_once_with(
|
||||
limit=2,
|
||||
search_opts={
|
||||
'offset': 5,
|
||||
'status': None,
|
||||
'display_name': None,
|
||||
'all_tenants': False, }
|
||||
'all_tenants': False,
|
||||
},
|
||||
)
|
||||
self.assertEqual(self.columns, columns)
|
||||
self.assertItemsEqual(self.datalist, tuple(data))
|
||||
|
@ -327,6 +327,13 @@ class ListVolume(command.Lister):
|
||||
default=False,
|
||||
help=_('List additional fields in output'),
|
||||
)
|
||||
parser.add_argument(
|
||||
'--offset',
|
||||
type=int,
|
||||
action=parseractions.NonNegativeAction,
|
||||
metavar='<offset>',
|
||||
help=_('Index from which to start listing volumes'),
|
||||
)
|
||||
parser.add_argument(
|
||||
'--limit',
|
||||
type=int,
|
||||
@ -395,6 +402,9 @@ class ListVolume(command.Lister):
|
||||
'status': parsed_args.status,
|
||||
}
|
||||
|
||||
if parsed_args.offset:
|
||||
search_opts['offset'] = parsed_args.offset
|
||||
|
||||
data = volume_client.volumes.list(
|
||||
search_opts=search_opts,
|
||||
limit=parsed_args.limit,
|
||||
|
Loading…
x
Reference in New Issue
Block a user