nova client now support limits subcommand
Added new subcommand "limits" which displays absolute limits and rate limits both. do_limits() functions calls get() only once and then passes limits.rate and limits.absolute to _print_rate_limits and _print_absolute_limits respectively; these functions then format the output. Change-Id: I1344da1a3925a3f3a757e340f11381b69a668bf7 Closes-Bug: #1172254
This commit is contained in:
parent
025bcfb1e3
commit
bf6fbdb8d7
@ -1998,6 +1998,20 @@ class ShellTest(utils.TestCase):
|
||||
self.run_command('absolute-limits --tenant 1234')
|
||||
self.assert_called('GET', '/limits?tenant_id=1234')
|
||||
|
||||
def test_limits(self):
|
||||
self.run_command('limits')
|
||||
self.assert_called('GET', '/limits')
|
||||
|
||||
self.run_command('limits --reserved')
|
||||
self.assert_called('GET', '/limits?reserved=1')
|
||||
|
||||
self.run_command('limits --tenant 1234')
|
||||
self.assert_called('GET', '/limits?tenant_id=1234')
|
||||
|
||||
stdout = self.run_command('limits --tenant 1234')
|
||||
self.assertIn('Verb', stdout)
|
||||
self.assertIn('Name', stdout)
|
||||
|
||||
def test_evacuate(self):
|
||||
self.run_command('evacuate sample-server new_host')
|
||||
self.assert_called('POST', '/servers/1234/action',
|
||||
|
@ -2935,9 +2935,13 @@ def _find_keypair(cs, keypair):
|
||||
default=False,
|
||||
help=_('Include reservations count.'))
|
||||
def do_absolute_limits(cs, args):
|
||||
"""Print a list of absolute limits for a user"""
|
||||
"""DEPRECATED, use limits instead."""
|
||||
limits = cs.limits.get(args.reserved, args.tenant).absolute
|
||||
_print_absolute_limits(limits)
|
||||
|
||||
|
||||
def _print_absolute_limits(limits):
|
||||
"""Prints absolute limits."""
|
||||
class Limit(object):
|
||||
def __init__(self, name, used, max, other):
|
||||
self.name = name
|
||||
@ -2999,12 +3003,37 @@ def do_absolute_limits(cs, args):
|
||||
|
||||
|
||||
def do_rate_limits(cs, args):
|
||||
"""Print a list of rate limits for a user"""
|
||||
"""DEPRECATED, use limits instead."""
|
||||
limits = cs.limits.get().rate
|
||||
_print_rate_limits(limits)
|
||||
|
||||
|
||||
def _print_rate_limits(limits):
|
||||
"""print rate limits."""
|
||||
columns = ['Verb', 'URI', 'Value', 'Remain', 'Unit', 'Next_Available']
|
||||
utils.print_list(limits, columns)
|
||||
|
||||
|
||||
@cliutils.arg(
|
||||
'--tenant',
|
||||
# nova db searches by project_id
|
||||
dest='tenant',
|
||||
metavar='<tenant>',
|
||||
nargs='?',
|
||||
help=_('Display information from single tenant (Admin only).'))
|
||||
@cliutils.arg(
|
||||
'--reserved',
|
||||
dest='reserved',
|
||||
action='store_true',
|
||||
default=False,
|
||||
help=_('Include reservations count.'))
|
||||
def do_limits(cs, args):
|
||||
"""Print rate and absolute limits."""
|
||||
limits = cs.limits.get(args.reserved, args.tenant)
|
||||
_print_rate_limits(limits.rate)
|
||||
_print_absolute_limits(limits.absolute)
|
||||
|
||||
|
||||
@cliutils.arg(
|
||||
'--start',
|
||||
metavar='<start>',
|
||||
|
Loading…
Reference in New Issue
Block a user