From 0ce77806bd04d69cd9d1cdcd71e886f7763a1eb2 Mon Sep 17 00:00:00 2001 From: Alfredo Deza Date: Wed, 23 Aug 2017 13:28:56 -0400 Subject: [PATCH] ceph-volume util create a validator module for argparse Signed-off-by: Alfredo Deza --- .../ceph_volume/util/arg_validators.py | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/ceph-volume/ceph_volume/util/arg_validators.py diff --git a/src/ceph-volume/ceph_volume/util/arg_validators.py b/src/ceph-volume/ceph_volume/util/arg_validators.py new file mode 100644 index 0000000000000..feb4707165a5d --- /dev/null +++ b/src/ceph-volume/ceph_volume/util/arg_validators.py @@ -0,0 +1,29 @@ +import argparse + + +class LVPath(object): + """ + A simple validator to ensure that a logical volume is specified like:: + + / + + Because for LVM it is better to be specific on what group does an lv + belongs to. + """ + + def __call__(self, string): + error = None + try: + vg, lv = string.split('/') + except ValueError: + error = "Logical volume must be specified as 'volume_group/logical_volume' but got: %s" % string + raise argparse.ArgumentError(None, error) + + if not vg: + error = "Didn't specify a volume group like 'volume_group/logical_volume', got: %s" % string + if not lv: + error = "Didn't specify a logical volume like 'volume_group/logical_volume', got: %s" % string + + if error: + raise argparse.ArgumentError(None, error) + return string -- 2.39.5