]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-volume util create a validator module for argparse
authorAlfredo Deza <adeza@redhat.com>
Wed, 23 Aug 2017 17:28:56 +0000 (13:28 -0400)
committerAlfredo Deza <adeza@redhat.com>
Wed, 23 Aug 2017 19:37:42 +0000 (15:37 -0400)
Signed-off-by: Alfredo Deza <adeza@redhat.com>
src/ceph-volume/ceph_volume/util/arg_validators.py [new file with mode: 0644]

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 (file)
index 0000000..feb4707
--- /dev/null
@@ -0,0 +1,29 @@
+import argparse
+
+
+class LVPath(object):
+    """
+    A simple validator to ensure that a logical volume is specified like::
+
+        <vg name>/<lv name>
+
+    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