diff options
| author | ZhiQiang Fan <zhiqiang.fan@huawei.com> | 2014-11-13 11:49:16 +0800 |
|---|---|---|
| committer | ZhiQiang Fan <aji.zqfan@gmail.com> | 2014-11-14 22:00:48 +0800 |
| commit | 878e32e525bdb0ed3ca125597ea83dd64a4884d9 (patch) | |
| tree | e99ab679664235e567aefc45db688801d34a214e /ceilometerclient/shell.py | |
| parent | 13bbf186811d7770a47a943039d5a6e3d2ae6e08 (diff) | |
| download | python-ceilometerclient-878e32e525bdb0ed3ca125597ea83dd64a4884d9.tar.gz | |
Fix timeout argument not treated as integer
Currently, if we specify --timeout 30 in CLI commands. we will get
'a float is required' error. Since we already specify timeout is
ingeter in ceilometer.v2.client, this patch converts CLI argument
timeout to integer.
Note, if zero is passed to v2.client, we treat it as disable timeout.
Change-Id: I213b6c24964095297cb4e87c25bb871ebd668bb4
Closes-Bug: #1391606
Diffstat (limited to 'ceilometerclient/shell.py')
| -rw-r--r-- | ceilometerclient/shell.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/ceilometerclient/shell.py b/ceilometerclient/shell.py index e8f5752..7356789 100644 --- a/ceilometerclient/shell.py +++ b/ceilometerclient/shell.py @@ -30,6 +30,20 @@ from ceilometerclient import exc from ceilometerclient.openstack.common import cliutils +def _positive_non_zero_int(argument_value): + if argument_value is None: + return None + try: + value = int(argument_value) + except ValueError: + msg = "%s must be an integer" % argument_value + raise argparse.ArgumentTypeError(msg) + if value <= 0: + msg = "%s must be greater than 0" % argument_value + raise argparse.ArgumentTypeError(msg) + return value + + class CeilometerShell(object): def get_base_parser(self): @@ -64,6 +78,7 @@ class CeilometerShell(object): parser.add_argument('--timeout', default=600, + type=_positive_non_zero_int, help='Number of seconds to wait for a response.') parser.add_argument('--ceilometer-url', |
