]>
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_" | |
a4b75251 TL |
12 | # default mode for subvol prefix and group |
13 | DEFAULT_MODE = 0o755 | |
92f5a8d4 TL |
14 | |
15 | def __init__(self, snapshot_prefix, subvolume_prefix=None, pool_ns_prefix=None): | |
16 | self.snapshot_prefix = snapshot_prefix | |
17 | self.subvolume_prefix = subvolume_prefix if subvolume_prefix else VolSpec.DEFAULT_SUBVOL_PREFIX | |
18 | self.pool_ns_prefix = pool_ns_prefix if pool_ns_prefix else VolSpec.DEFAULT_NS_PREFIX | |
19 | ||
20 | @property | |
21 | def snapshot_dir_prefix(self): | |
22 | """ | |
23 | Return the snapshot directory prefix | |
24 | """ | |
25 | return self.snapshot_prefix | |
26 | ||
27 | @property | |
28 | def base_dir(self): | |
29 | """ | |
30 | Return the top level directory under which subvolumes/groups are created | |
31 | """ | |
32 | return self.subvolume_prefix | |
33 | ||
34 | @property | |
35 | def fs_namespace(self): | |
36 | """ | |
37 | return a filesystem namespace by stashing pool namespace prefix and subvolume-id | |
38 | """ | |
39 | return self.pool_ns_prefix |