Support --all-projects in 'server list' command
Change-Id: I2ca747d67a7e5694ce704e0c210579a0214e98ee
This commit is contained in:
@@ -153,6 +153,13 @@ class ListServer(command.Lister):
|
|||||||
default=False,
|
default=False,
|
||||||
help=_("List additional with details.")
|
help=_("List additional with details.")
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--all-projects',
|
||||||
|
action='store_true',
|
||||||
|
default=False,
|
||||||
|
help=_("List the baremetal servers of all projects, "
|
||||||
|
"only available for admin users.")
|
||||||
|
)
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@@ -169,7 +176,8 @@ class ListServer(command.Lister):
|
|||||||
bc_client = self.app.client_manager.baremetal_compute
|
bc_client = self.app.client_manager.baremetal_compute
|
||||||
|
|
||||||
if parsed_args.detailed:
|
if parsed_args.detailed:
|
||||||
data = bc_client.server.list(detailed=True)
|
data = bc_client.server.list(detailed=True,
|
||||||
|
all_projects=parsed_args.all_projects)
|
||||||
formatters = {'network_info': self._networks_formatter}
|
formatters = {'network_info': self._networks_formatter}
|
||||||
# This is the easiest way to change column headers
|
# This is the easiest way to change column headers
|
||||||
column_headers = (
|
column_headers = (
|
||||||
@@ -193,7 +201,7 @@ class ListServer(command.Lister):
|
|||||||
"network_info"
|
"network_info"
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
data = bc_client.server.list()
|
data = bc_client.server.list(all_projects=parsed_args.all_projects)
|
||||||
formatters = None
|
formatters = None
|
||||||
column_headers = (
|
column_headers = (
|
||||||
"UUID",
|
"UUID",
|
||||||
|
|||||||
@@ -355,6 +355,21 @@ class TestServerList(test_base.TestBaremetalComputeV1):
|
|||||||
self.assertEqual(self.list_columns_detailed, columns)
|
self.assertEqual(self.list_columns_detailed, columns)
|
||||||
self.assertEqual(self.list_data_detailed, tuple(data))
|
self.assertEqual(self.list_data_detailed, tuple(data))
|
||||||
|
|
||||||
|
def test_server_list_with_all_projects(self, mock_list):
|
||||||
|
arglist = [
|
||||||
|
'--all-projects',
|
||||||
|
]
|
||||||
|
verifylist = [
|
||||||
|
('all_projects', True),
|
||||||
|
]
|
||||||
|
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',
|
||||||
|
response_key='instances')
|
||||||
|
self.assertEqual(self.list_columns, columns)
|
||||||
|
self.assertEqual(self.list_data, tuple(data))
|
||||||
|
|
||||||
|
|
||||||
@mock.patch.object(utils, 'find_resource')
|
@mock.patch.object(utils, 'find_resource')
|
||||||
@mock.patch.object(server_mgr.ServerManager, '_delete')
|
@mock.patch.object(server_mgr.ServerManager, '_delete')
|
||||||
|
|||||||
@@ -48,8 +48,10 @@ class ServerManager(base.ManagerWithFind):
|
|||||||
url = '/instances/%s' % base.getid(server_id)
|
url = '/instances/%s' % base.getid(server_id)
|
||||||
return self._get(url)
|
return self._get(url)
|
||||||
|
|
||||||
def list(self, detailed=False):
|
def list(self, detailed=False, all_projects=False):
|
||||||
url = '/instances/detail' if detailed else '/instances'
|
url = '/instances/detail' if detailed else '/instances'
|
||||||
|
if all_projects:
|
||||||
|
url = '%s?%s' % (url, 'all_tenants=True')
|
||||||
return self._list(url, response_key='instances')
|
return self._list(url, response_key='instances')
|
||||||
|
|
||||||
def update(self, server_id, updates):
|
def update(self, server_id, updates):
|
||||||
|
|||||||
Reference in New Issue
Block a user