Skip to content

Commit

Permalink
Add more columns to image list output
Browse files Browse the repository at this point in the history
Add disk_format, container_format, size and status to image list
command. Added tests as well.

Change-Id: I8e3822c6d46d0020fc706955c026549f6c635587
Closes-Bug: #1348475
  • Loading branch information
Steve Martinelli committed Jul 25, 2014
1 parent 4d3d287 commit e1c32b8
Show file tree
Hide file tree
Showing 4 changed files with 112 additions and 2 deletions.
12 changes: 11 additions & 1 deletion openstackclient/image/v1/image.py
Expand Up @@ -291,6 +291,12 @@ def get_parser(self, prog_name):
metavar="<size>",
help="Number of images to request in each paginated request",
)
parser.add_argument(
'--long',
action='store_true',
default=False,
help='List additional fields in output',
)
return parser

def take_action(self, parsed_args):
Expand All @@ -303,7 +309,11 @@ def take_action(self, parsed_args):
kwargs["page_size"] = parsed_args.page_size

data = image_client.images.list(**kwargs)
columns = ["ID", "Name"]
if parsed_args.long:
columns = ('ID', 'Name', 'Disk Format', 'Container Format',
'Size', 'Status')
else:
columns = ("ID", "Name")

return (columns, (utils.get_item_properties(s, columns) for s in data))

Expand Down
12 changes: 11 additions & 1 deletion openstackclient/image/v2/image.py
Expand Up @@ -63,6 +63,12 @@ def get_parser(self, prog_name):
metavar="<size>",
help="Number of images to request in each paginated request",
)
parser.add_argument(
'--long',
action='store_true',
default=False,
help='List additional fields in output',
)
return parser

def take_action(self, parsed_args):
Expand All @@ -75,7 +81,11 @@ def take_action(self, parsed_args):
kwargs["page_size"] = parsed_args.page_size

data = image_client.images.list(**kwargs)
columns = ["ID", "Name"]
if parsed_args.long:
columns = ('ID', 'Name', 'Disk Format', 'Container Format',
'Size', 'Status')
else:
columns = ("ID", "Name")

return (columns, (utils.get_item_properties(s, columns) for s in data))

Expand Down
45 changes: 45 additions & 0 deletions openstackclient/tests/image/v1/test_image.py
Expand Up @@ -446,3 +446,48 @@ def test_image_set_properties(self):
image_fakes.image_id,
**kwargs
)


class TestImageList(TestImage):

def setUp(self):
super(TestImageList, self).setUp()

# This is the return value for utils.find_resource()
self.images_mock.list.return_value = [
fakes.FakeResource(
None,
copy.deepcopy(image_fakes.IMAGE),
loaded=True,
),
]

# Get the command object to test
self.cmd = image.ListImage(self.app, None)

def test_image_list_long_option(self):
arglist = [
'--long',
]
verifylist = [
('long', True),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)

# DisplayCommandBase.take_action() returns two tuples
columns, data = self.cmd.take_action(parsed_args)
self.images_mock.list.assert_called_with()

collist = ('ID', 'Name', 'Disk Format', 'Container Format',
'Size', 'Status')

self.assertEqual(columns, collist)
datalist = ((
image_fakes.image_id,
image_fakes.image_name,
'',
'',
'',
'',
), )
self.assertEqual(datalist, tuple(data))
45 changes: 45 additions & 0 deletions openstackclient/tests/image/v2/test_image.py
Expand Up @@ -61,3 +61,48 @@ def test_image_delete_no_options(self):
self.images_mock.delete.assert_called_with(
image_fakes.image_id,
)


class TestImageList(TestImage):

def setUp(self):
super(TestImageList, self).setUp()

# This is the return value for utils.find_resource()
self.images_mock.list.return_value = [
fakes.FakeResource(
None,
copy.deepcopy(image_fakes.IMAGE),
loaded=True,
),
]

# Get the command object to test
self.cmd = image.ListImage(self.app, None)

def test_image_list_long_option(self):
arglist = [
'--long',
]
verifylist = [
('long', True),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)

# DisplayCommandBase.take_action() returns two tuples
columns, data = self.cmd.take_action(parsed_args)
self.images_mock.list.assert_called_with()

collist = ('ID', 'Name', 'Disk Format', 'Container Format',
'Size', 'Status')

self.assertEqual(columns, collist)
datalist = ((
image_fakes.image_id,
image_fakes.image_name,
'',
'',
'',
'',
), )
self.assertEqual(datalist, tuple(data))

0 comments on commit e1c32b8

Please sign in to comment.