]>
Commit | Line | Data |
---|---|---|
92f5a8d4 TL |
1 | import os |
2 | ||
3 | class VolSpec(object): | |
4 | """ | |
5 | specification of a "volume" -- base directory and various prefixes. | |
6 | """ | |
7 | ||
8 | # where shall we (by default) create subvolumes | |
9 | DEFAULT_SUBVOL_PREFIX = "/volumes" | |
10 | # and the default namespace | |
11 | DEFAULT_NS_PREFIX = "fsvolumens_" | |
12 | ||
13 | def __init__(self, snapshot_prefix, subvolume_prefix=None, pool_ns_prefix=None): | |
14 | self.snapshot_prefix = snapshot_prefix | |
15 | self.subvolume_prefix = subvolume_prefix if subvolume_prefix else VolSpec.DEFAULT_SUBVOL_PREFIX | |
16 | self.pool_ns_prefix = pool_ns_prefix if pool_ns_prefix else VolSpec.DEFAULT_NS_PREFIX | |
17 | ||
18 | @property | |
19 | def snapshot_dir_prefix(self): | |
20 | """ | |
21 | Return the snapshot directory prefix | |
22 | """ | |
23 | return self.snapshot_prefix | |
24 | ||
25 | @property | |
26 | def base_dir(self): | |
27 | """ | |
28 | Return the top level directory under which subvolumes/groups are created | |
29 | """ | |
30 | return self.subvolume_prefix | |
31 | ||
32 | @property | |
33 | def fs_namespace(self): | |
34 | """ | |
35 | return a filesystem namespace by stashing pool namespace prefix and subvolume-id | |
36 | """ | |
37 | return self.pool_ns_prefix |