server-group-list support 'all_projects' parameter
Supporting 'all_projects' in server-group-list so that admin users can list other tenant's server groups. Change-Id: Ie50288464ebc6585590a1a74efa8804584771ebc Closes-Bug: #1454523
This commit is contained in:
parent
0e35f2a2fa
commit
9cfecf922a
@ -31,6 +31,13 @@ class ServerGroupsTest(utils.FixturedTestCase):
|
|||||||
self.assertTrue(isinstance(server_group,
|
self.assertTrue(isinstance(server_group,
|
||||||
server_groups.ServerGroup))
|
server_groups.ServerGroup))
|
||||||
|
|
||||||
|
def test_list_server_groups_with_all_projects(self):
|
||||||
|
result = self.cs.server_groups.list(all_projects=True)
|
||||||
|
self.assert_called('GET', '/os-server-groups?all_projects')
|
||||||
|
for server_group in result:
|
||||||
|
self.assertTrue(isinstance(server_group,
|
||||||
|
server_groups.ServerGroup))
|
||||||
|
|
||||||
def test_create_server_group(self):
|
def test_create_server_group(self):
|
||||||
kwargs = {'name': 'ig1',
|
kwargs = {'name': 'ig1',
|
||||||
'policies': ['anti-affinity']}
|
'policies': ['anti-affinity']}
|
||||||
|
@ -2405,6 +2405,14 @@ class ShellTest(utils.TestCase):
|
|||||||
self.assert_called('DELETE', '/os-server-groups/56789')
|
self.assert_called('DELETE', '/os-server-groups/56789')
|
||||||
self.assert_called('DELETE', '/os-server-groups/12345', pos=-2)
|
self.assert_called('DELETE', '/os-server-groups/12345', pos=-2)
|
||||||
|
|
||||||
|
def test_list_server_group(self):
|
||||||
|
self.run_command('server-group-list')
|
||||||
|
self.assert_called('GET', '/os-server-groups')
|
||||||
|
|
||||||
|
def test_list_server_group_with_all_projects(self):
|
||||||
|
self.run_command('server-group-list --all-projects')
|
||||||
|
self.assert_called('GET', '/os-server-groups?all_projects')
|
||||||
|
|
||||||
|
|
||||||
class ShellTestV11(ShellTest):
|
class ShellTestV11(ShellTest):
|
||||||
FAKE_ENV = {
|
FAKE_ENV = {
|
||||||
|
@ -39,12 +39,13 @@ class ServerGroupsManager(base.ManagerWithFind):
|
|||||||
"""
|
"""
|
||||||
resource_class = ServerGroup
|
resource_class = ServerGroup
|
||||||
|
|
||||||
def list(self):
|
def list(self, all_projects=False):
|
||||||
"""Get a list of all server groups.
|
"""Get a list of all server groups.
|
||||||
|
|
||||||
:rtype: list of :class:`ServerGroup`.
|
:rtype: list of :class:`ServerGroup`.
|
||||||
"""
|
"""
|
||||||
return self._list('/os-server-groups', 'server_groups')
|
all = '?all_projects' if all_projects else ''
|
||||||
|
return self._list('/os-server-groups%s' % all, 'server_groups')
|
||||||
|
|
||||||
def get(self, id):
|
def get(self, id):
|
||||||
"""Get a specific server group.
|
"""Get a specific server group.
|
||||||
|
@ -4350,9 +4350,15 @@ def _print_server_group_details(server_group):
|
|||||||
utils.print_list(server_group, columns)
|
utils.print_list(server_group, columns)
|
||||||
|
|
||||||
|
|
||||||
|
@cliutils.arg(
|
||||||
|
'--all-projects',
|
||||||
|
dest='all_projects',
|
||||||
|
action='store_true',
|
||||||
|
default=False,
|
||||||
|
help=_('Display server groups from all projects (Admin only).'))
|
||||||
def do_server_group_list(cs, args):
|
def do_server_group_list(cs, args):
|
||||||
"""Print a list of all server groups."""
|
"""Print a list of all server groups."""
|
||||||
server_groups = cs.server_groups.list()
|
server_groups = cs.server_groups.list(args.all_projects)
|
||||||
_print_server_group_details(server_groups)
|
_print_server_group_details(server_groups)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user