Add more columns to server list
Show more information to users when run server list. Change-Id: I23843cc07bc2dde55e9a2047fe89151695495365
This commit is contained in:
parent
7fa12bda72
commit
59852bde2b
@ -18,6 +18,7 @@
|
||||
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
|
||||
from osc_lib.cli import parseractions
|
||||
from osc_lib.command import command
|
||||
@ -207,9 +208,8 @@ class ListServer(command.Lister):
|
||||
parser.add_argument(
|
||||
'--all-projects',
|
||||
action='store_true',
|
||||
default=False,
|
||||
help=_("List the baremetal servers of all projects, "
|
||||
"only available for admin users.")
|
||||
default=bool(int(os.environ.get("ALL_PROJECTS", 0))),
|
||||
help=_('Include all projects (admin only)'),
|
||||
)
|
||||
return parser
|
||||
|
||||
@ -227,46 +227,49 @@ class ListServer(command.Lister):
|
||||
bc_client = self.app.client_manager.baremetal_compute
|
||||
|
||||
if parsed_args.long:
|
||||
data = bc_client.server.list(detailed=True,
|
||||
all_projects=parsed_args.all_projects)
|
||||
formatters = {'network_info': self._networks_formatter}
|
||||
# This is the easiest way to change column headers
|
||||
column_headers = (
|
||||
"UUID",
|
||||
"Name",
|
||||
"Flavor",
|
||||
"Status",
|
||||
"Power State",
|
||||
"Networks",
|
||||
"Image",
|
||||
"Description",
|
||||
"Flavor",
|
||||
"Availability Zone",
|
||||
"Networks"
|
||||
'Properties',
|
||||
)
|
||||
columns = (
|
||||
"uuid",
|
||||
"name",
|
||||
"instance_type_uuid",
|
||||
"status",
|
||||
"power_state",
|
||||
"network_info",
|
||||
"image_uuid",
|
||||
"description",
|
||||
"instance_type_uuid",
|
||||
"availability_zone",
|
||||
"network_info"
|
||||
'extra',
|
||||
)
|
||||
else:
|
||||
data = bc_client.server.list(all_projects=parsed_args.all_projects)
|
||||
formatters = None
|
||||
column_headers = (
|
||||
"UUID",
|
||||
"Name",
|
||||
"Status",
|
||||
"Networks",
|
||||
"Image",
|
||||
)
|
||||
columns = (
|
||||
"uuid",
|
||||
"name",
|
||||
"status",
|
||||
"network_info",
|
||||
"image_uuid",
|
||||
)
|
||||
|
||||
data = bc_client.server.list(detailed=True,
|
||||
all_projects=parsed_args.all_projects)
|
||||
formatters = {'network_info': self._networks_formatter,
|
||||
'extra': utils.format_dict}
|
||||
return (column_headers,
|
||||
(utils.get_item_properties(
|
||||
s, columns, formatters=formatters
|
||||
|
@ -260,7 +260,7 @@ class FakeServer(object):
|
||||
dashed=False),
|
||||
"availability_zone": "zone-name-" + uuidutils.generate_uuid(
|
||||
dashed=False),
|
||||
'extra': "fake_extra"
|
||||
'extra': {}
|
||||
}
|
||||
|
||||
# Overwrite default attributes.
|
||||
|
@ -309,36 +309,40 @@ class TestServerList(test_base.TestBaremetalComputeV1):
|
||||
"UUID",
|
||||
"Name",
|
||||
"Status",
|
||||
'Networks',
|
||||
'Image'
|
||||
)
|
||||
|
||||
self.list_columns_long = (
|
||||
"UUID",
|
||||
"Name",
|
||||
"Flavor",
|
||||
"Status",
|
||||
"Power State",
|
||||
"Networks",
|
||||
"Image",
|
||||
"Description",
|
||||
"Flavor",
|
||||
"Availability Zone",
|
||||
"Networks"
|
||||
"Properties"
|
||||
)
|
||||
|
||||
self.list_data = tuple((
|
||||
self.fake_servers[i].uuid,
|
||||
self.fake_servers[i].name,
|
||||
self.fake_servers[i].status,
|
||||
'172.24.4.4, 2001:db8::a',
|
||||
self.fake_servers[i].image_uuid,
|
||||
) for i in range(3))
|
||||
|
||||
self.list_data_long = tuple((
|
||||
self.fake_servers[i].uuid,
|
||||
self.fake_servers[i].name,
|
||||
self.fake_servers[i].instance_type_uuid,
|
||||
self.fake_servers[i].status,
|
||||
self.fake_servers[i].power_state,
|
||||
'172.24.4.4, 2001:db8::a',
|
||||
self.fake_servers[i].image_uuid,
|
||||
self.fake_servers[i].description,
|
||||
self.fake_servers[i].instance_type_uuid,
|
||||
self.fake_servers[i].availability_zone,
|
||||
'172.24.4.4, 2001:db8::a'
|
||||
'',
|
||||
) for i in range(3))
|
||||
|
||||
def test_server_list(self, mock_list):
|
||||
@ -347,7 +351,7 @@ class TestServerList(test_base.TestBaremetalComputeV1):
|
||||
mock_list.return_value = self.fake_servers
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
columns, data = self.cmd.take_action(parsed_args)
|
||||
mock_list.assert_called_once_with('/instances',
|
||||
mock_list.assert_called_once_with('/instances/detail',
|
||||
response_key='instances')
|
||||
self.assertEqual(self.list_columns, columns)
|
||||
self.assertEqual(self.list_data, tuple(data))
|
||||
@ -377,7 +381,7 @@ class TestServerList(test_base.TestBaremetalComputeV1):
|
||||
mock_list.return_value = self.fake_servers
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
columns, data = self.cmd.take_action(parsed_args)
|
||||
mock_list.assert_called_once_with('/instances?all_tenants=True',
|
||||
mock_list.assert_called_once_with('/instances/detail?all_tenants=True',
|
||||
response_key='instances')
|
||||
self.assertEqual(self.list_columns, columns)
|
||||
self.assertEqual(self.list_data, tuple(data))
|
||||
|
Loading…
x
Reference in New Issue
Block a user