From ea63553925bce0432958ae4a15536f7f83b1f28d Mon Sep 17 00:00:00 2001 From: xiexs Date: Mon, 9 Nov 2015 04:22:00 -0500 Subject: Fix the bug of "openstack console log show" The behaviors are inconsistent while different negative line numbers specified. Change-Id: I2573f3e789f5603c896758971830ffc0b94c5e2b Closes-Bug: #1512263 --- openstackclient/common/parseractions.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'openstackclient/common') diff --git a/openstackclient/common/parseractions.py b/openstackclient/common/parseractions.py index 8f6008e2..fd90369a 100644 --- a/openstackclient/common/parseractions.py +++ b/openstackclient/common/parseractions.py @@ -65,3 +65,18 @@ class RangeAction(argparse.Action): # Too many values msg = "Invalid range, too many values" raise argparse.ArgumentError(self, msg) + + +class NonNegativeAction(argparse.Action): + """A custom action to check whether the value is non-negative or not + + Ensures the value is >= 0. + """ + + def __call__(self, parser, namespace, values, option_string=None): + try: + assert(int(values) >= 0) + setattr(namespace, self.dest, values) + except Exception: + msg = "%s expected a non-negative integer" % (str(option_string)) + raise argparse.ArgumentTypeError(self, msg) -- cgit v1.2.1