Add optional argument to include reservations in os-used-limits

Fixes bug #1089271

Change-Id: I01a3823a4f4b1045e4f8e35f749fc9233bef4489
This commit is contained in:
Julie Pichon 2012-12-12 16:55:10 +00:00
parent e483455a12
commit 35b18965e4
4 changed files with 34 additions and 3 deletions

View File

@ -70,10 +70,12 @@ class LimitsManager(base.Manager):
resource_class = Limits
def get(self):
def get(self, reserved=False):
"""
Get a specific extension.
:rtype: :class:`Limits`
"""
return self._get("/limits", "limits")
query_string = "?reserved=1" if reserved else ""
return self._get("/limits%s" % query_string, "limits")

View File

@ -1910,9 +1910,14 @@ def do_keypair_list(cs, args):
utils.print_list(keypairs, columns)
@utils.arg('--reserved',
dest='reserved',
action='store_true',
default=False,
help='Include reservations count.')
def do_absolute_limits(cs, args):
"""Print a list of absolute limits for a user"""
limits = cs.limits.get().absolute
limits = cs.limits.get(args.reserved).absolute
columns = ['Name', 'Value']
utils.print_list(limits, columns)

View File

@ -31,6 +31,23 @@ class LimitsTest(utils.TestCase):
for limit in abs_limits:
self.assertTrue(limit in expected)
def test_absolute_limits_reserved(self):
obj = cs.limits.get(reserved=True)
expected = (
limits.AbsoluteLimit("maxTotalRAMSize", 51200),
limits.AbsoluteLimit("maxServerMeta", 5),
limits.AbsoluteLimit("maxImageMeta", 5),
limits.AbsoluteLimit("maxPersonality", 5),
limits.AbsoluteLimit("maxPersonalitySize", 10240),
)
abs_limits = list(obj.absolute)
self.assertEqual(len(abs_limits), len(expected))
for limit in abs_limits:
self.assertTrue(limit in expected)
def test_rate_limits(self):
obj = cs.limits.get()

View File

@ -712,3 +712,10 @@ class ShellTest(utils.TestCase):
{'createBackup': {'name': 'back1',
'backup_type': 'daily',
'rotation': '1'}})
def test_absolute_limits(self):
self.run_command('absolute-limits')
self.assert_called('GET', '/limits')
self.run_command('absolute-limits --reserved')
self.assert_called('GET', '/limits?reserved=1')