From: Alfredo Deza Date: Wed, 23 Aug 2017 17:28:56 +0000 (-0400) Subject: ceph-volume util create a validator module for argparse X-Git-Tag: v13.0.0~16^2~4 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=0ce77806bd04d69cd9d1cdcd71e886f7763a1eb2;p=ceph.git ceph-volume util create a validator module for argparse Signed-off-by: Alfredo Deza --- 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