]>
Commit | Line | Data |
---|---|---|
b5b8bbf5 FG |
1 | import argparse |
2 | ||
3 | ||
4 | class LVPath(object): | |
5 | """ | |
6 | A simple validator to ensure that a logical volume is specified like:: | |
7 | ||
8 | <vg name>/<lv name> | |
9 | ||
10 | Because for LVM it is better to be specific on what group does an lv | |
11 | belongs to. | |
12 | """ | |
13 | ||
14 | def __call__(self, string): | |
15 | error = None | |
16 | try: | |
17 | vg, lv = string.split('/') | |
18 | except ValueError: | |
19 | error = "Logical volume must be specified as 'volume_group/logical_volume' but got: %s" % string | |
20 | raise argparse.ArgumentError(None, error) | |
21 | ||
22 | if not vg: | |
23 | error = "Didn't specify a volume group like 'volume_group/logical_volume', got: %s" % string | |
24 | if not lv: | |
25 | error = "Didn't specify a logical volume like 'volume_group/logical_volume', got: %s" % string | |
26 | ||
27 | if error: | |
28 | raise argparse.ArgumentError(None, error) | |
29 | return string |