Merge "Revert "Remove marker and loop from "image list" command""

This commit is contained in:
Jenkins 2016-12-05 22:21:47 +00:00 committed by Gerrit Code Review
commit fdf93e04e6
2 changed files with 29 additions and 7 deletions

View File

@ -486,7 +486,6 @@ class ListImage(command.Lister):
if parsed_args.marker: if parsed_args.marker:
kwargs['marker'] = utils.find_resource(image_client.images, kwargs['marker'] = utils.find_resource(image_client.images,
parsed_args.marker).id parsed_args.marker).id
if parsed_args.long: if parsed_args.long:
columns = ( columns = (
'ID', 'ID',
@ -519,7 +518,19 @@ class ListImage(command.Lister):
column_headers = columns column_headers = columns
# List of image data received # List of image data received
data = image_client.api.image_list(**kwargs) data = []
if 'marker' in kwargs:
data = image_client.api.image_list(**kwargs)
else:
# No pages received yet, so start the page marker at None.
marker = None
while True:
page = image_client.api.image_list(marker=marker, **kwargs)
if not page:
break
data.extend(page)
# Set the marker to the id of the last item we received
marker = page[-1]['id']
if parsed_args.property: if parsed_args.property:
# NOTE(dtroyer): coerce to a list to subscript it in py3 # NOTE(dtroyer): coerce to a list to subscript it in py3

View File

@ -535,7 +535,9 @@ class TestImageList(TestImage):
# returns a tuple containing the column names and an iterable # returns a tuple containing the column names and an iterable
# containing the data to be listed. # containing the data to be listed.
columns, data = self.cmd.take_action(parsed_args) columns, data = self.cmd.take_action(parsed_args)
self.api_mock.image_list.assert_called_with() self.api_mock.image_list.assert_called_with(
marker=self._image.id,
)
self.assertEqual(self.columns, columns) self.assertEqual(self.columns, columns)
self.assertEqual(self.datalist, tuple(data)) self.assertEqual(self.datalist, tuple(data))
@ -558,6 +560,7 @@ class TestImageList(TestImage):
columns, data = self.cmd.take_action(parsed_args) columns, data = self.cmd.take_action(parsed_args)
self.api_mock.image_list.assert_called_with( self.api_mock.image_list.assert_called_with(
public=True, public=True,
marker=self._image.id,
) )
self.assertEqual(self.columns, columns) self.assertEqual(self.columns, columns)
@ -581,6 +584,7 @@ class TestImageList(TestImage):
columns, data = self.cmd.take_action(parsed_args) columns, data = self.cmd.take_action(parsed_args)
self.api_mock.image_list.assert_called_with( self.api_mock.image_list.assert_called_with(
private=True, private=True,
marker=self._image.id,
) )
self.assertEqual(self.columns, columns) self.assertEqual(self.columns, columns)
@ -604,6 +608,7 @@ class TestImageList(TestImage):
columns, data = self.cmd.take_action(parsed_args) columns, data = self.cmd.take_action(parsed_args)
self.api_mock.image_list.assert_called_with( self.api_mock.image_list.assert_called_with(
shared=True, shared=True,
marker=self._image.id,
) )
self.assertEqual(self.columns, columns) self.assertEqual(self.columns, columns)
@ -622,7 +627,9 @@ class TestImageList(TestImage):
# returns a tuple containing the column names and an iterable # returns a tuple containing the column names and an iterable
# containing the data to be listed. # containing the data to be listed.
columns, data = self.cmd.take_action(parsed_args) columns, data = self.cmd.take_action(parsed_args)
self.api_mock.image_list.assert_called_with() self.api_mock.image_list.assert_called_with(
marker=self._image.id,
)
collist = ( collist = (
'ID', 'ID',
@ -670,7 +677,9 @@ class TestImageList(TestImage):
# returns a tuple containing the column names and an iterable # returns a tuple containing the column names and an iterable
# containing the data to be listed. # containing the data to be listed.
columns, data = self.cmd.take_action(parsed_args) columns, data = self.cmd.take_action(parsed_args)
self.api_mock.image_list.assert_called_with() self.api_mock.image_list.assert_called_with(
marker=self._image.id,
)
sf_mock.assert_called_with( sf_mock.assert_called_with(
[self._image], [self._image],
attr='a', attr='a',
@ -693,7 +702,9 @@ class TestImageList(TestImage):
# returns a tuple containing the column names and an iterable # returns a tuple containing the column names and an iterable
# containing the data to be listed. # containing the data to be listed.
columns, data = self.cmd.take_action(parsed_args) columns, data = self.cmd.take_action(parsed_args)
self.api_mock.image_list.assert_called_with() self.api_mock.image_list.assert_called_with(
marker=self._image.id,
)
si_mock.assert_called_with( si_mock.assert_called_with(
[self._image], [self._image],
'name:asc' 'name:asc'
@ -712,7 +723,7 @@ class TestImageList(TestImage):
columns, data = self.cmd.take_action(parsed_args) columns, data = self.cmd.take_action(parsed_args)
self.api_mock.image_list.assert_called_with( self.api_mock.image_list.assert_called_with(
limit=1, limit=1, marker=self._image.id
) )
self.assertEqual(self.columns, columns) self.assertEqual(self.columns, columns)