Add a --number arg to cloudpulse result, default 25
Change-Id: I7aca4b7312ff55c9c7eaa3b6b05322e090883842
This commit is contained in:
parent
3ec6495652
commit
b95ebe3faf
cloudpulseclient
@ -41,6 +41,27 @@ class MissingArgs(Exception):
|
|||||||
super(MissingArgs, self).__init__(msg)
|
super(MissingArgs, self).__init__(msg)
|
||||||
|
|
||||||
|
|
||||||
|
class InvalidNumber(Exception):
|
||||||
|
"""Supplied argument for --number is invalid"""
|
||||||
|
def __init__(self):
|
||||||
|
msg = _("Invalid input, expected a number in range 1<=number<=240")
|
||||||
|
super(InvalidNumber, self).__init__(msg)
|
||||||
|
|
||||||
|
|
||||||
|
def check_int_limit(value):
|
||||||
|
"""Check that supplied arg is of integer type and in range 1<=value<=240"""
|
||||||
|
try:
|
||||||
|
int_value = int(value)
|
||||||
|
except (ValueError, TypeError):
|
||||||
|
raise InvalidNumber()
|
||||||
|
|
||||||
|
# max_db_entries in cloudpulse is 240, hence this limit
|
||||||
|
if not 1 <= int_value <= 240:
|
||||||
|
raise InvalidNumber()
|
||||||
|
|
||||||
|
return int_value
|
||||||
|
|
||||||
|
|
||||||
def validate_args(fn, *args, **kwargs):
|
def validate_args(fn, *args, **kwargs):
|
||||||
"""Check that the supplied args are sufficient for calling a function.
|
"""Check that the supplied args are sufficient for calling a function.
|
||||||
|
|
||||||
@ -139,7 +160,7 @@ def isunauthenticated(func):
|
|||||||
|
|
||||||
|
|
||||||
def print_list(objs, fields, formatters=None, sortby_index=0,
|
def print_list(objs, fields, formatters=None, sortby_index=0,
|
||||||
mixed_case_fields=None, field_labels=None):
|
mixed_case_fields=None, field_labels=None, limit_number=25):
|
||||||
"""Print a list or objects as a table, one row per object.
|
"""Print a list or objects as a table, one row per object.
|
||||||
|
|
||||||
:param objs: iterable of :class:`Resource`
|
:param objs: iterable of :class:`Resource`
|
||||||
@ -163,6 +184,11 @@ def print_list(objs, fields, formatters=None, sortby_index=0,
|
|||||||
kwargs = {}
|
kwargs = {}
|
||||||
else:
|
else:
|
||||||
kwargs = {'sortby': field_labels[sortby_index]}
|
kwargs = {'sortby': field_labels[sortby_index]}
|
||||||
|
|
||||||
|
# Limit the number to 25 (default) or provided number from user
|
||||||
|
kwargs['start'] = 0
|
||||||
|
kwargs['end'] = limit_number
|
||||||
|
|
||||||
pt = prettytable.PrettyTable(field_labels)
|
pt = prettytable.PrettyTable(field_labels)
|
||||||
pt.align = 'l'
|
pt.align = 'l'
|
||||||
|
|
||||||
|
@ -29,17 +29,22 @@ def _print_list_field(field):
|
|||||||
@utils.arg('--period',
|
@utils.arg('--period',
|
||||||
metavar='<period>',
|
metavar='<period>',
|
||||||
help='List tests results that have been run in the last x minutes.')
|
help='List tests results that have been run in the last x minutes.')
|
||||||
|
@utils.arg('--number',
|
||||||
|
metavar='<number>',
|
||||||
|
default=25,
|
||||||
|
type=utils.check_int_limit,
|
||||||
|
help='List x number of tests (Max 240).')
|
||||||
def do_result(cs, args):
|
def do_result(cs, args):
|
||||||
"""List all the test results"""
|
"""List all the test results"""
|
||||||
search_opts = {
|
search_opts = {
|
||||||
'failed': args.failed,
|
'failed': args.failed,
|
||||||
'period': args.period,
|
'period': args.period
|
||||||
}
|
}
|
||||||
healtchecks = cs.healthcheck.list(search_opts=search_opts)
|
healtchecks = cs.healthcheck.list(search_opts=search_opts)
|
||||||
columns = ('uuid', 'id', 'name', 'testtype', 'state')
|
columns = ('uuid', 'id', 'name', 'testtype', 'state')
|
||||||
utils.print_list(healtchecks, columns,
|
utils.print_list(healtchecks, columns,
|
||||||
{'versions': _print_list_field('versions')},
|
{'versions': _print_list_field('versions')},
|
||||||
sortby_index=1)
|
sortby_index=1, limit_number=args.number)
|
||||||
|
|
||||||
|
|
||||||
@utils.arg('--name',
|
@utils.arg('--name',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user