From 4c17f917bef7d0edfa9708111022cd0e9961bc67 Mon Sep 17 00:00:00 2001 From: Venky Shankar Date: Wed, 20 Nov 2019 08:27:11 -0500 Subject: [PATCH] mgr/volumes: introduce volume specification module unlike existing subvolume specification, this is just a minimal set of globally available configurations. bulk of other configurations will be moved to the respective entity modules (subsequent commits). Signed-off-by: Venky Shankar (cherry picked from commit 0039b5d90142c9eedd23af3c5dbf2c21bcb56823) --- src/pybind/mgr/volumes/fs/vol_spec.py | 37 +++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/pybind/mgr/volumes/fs/vol_spec.py diff --git a/src/pybind/mgr/volumes/fs/vol_spec.py b/src/pybind/mgr/volumes/fs/vol_spec.py new file mode 100644 index 0000000000000..e18ab06906279 --- /dev/null +++ b/src/pybind/mgr/volumes/fs/vol_spec.py @@ -0,0 +1,37 @@ +import os + +class VolSpec(object): + """ + specification of a "volume" -- base directory and various prefixes. + """ + + # where shall we (by default) create subvolumes + DEFAULT_SUBVOL_PREFIX = "/volumes" + # and the default namespace + DEFAULT_NS_PREFIX = "fsvolumens_" + + def __init__(self, snapshot_prefix, subvolume_prefix=None, pool_ns_prefix=None): + self.snapshot_prefix = snapshot_prefix + self.subvolume_prefix = subvolume_prefix if subvolume_prefix else VolSpec.DEFAULT_SUBVOL_PREFIX + self.pool_ns_prefix = pool_ns_prefix if pool_ns_prefix else VolSpec.DEFAULT_NS_PREFIX + + @property + def snapshot_dir_prefix(self): + """ + Return the snapshot directory prefix + """ + return self.snapshot_prefix + + @property + def base_dir(self): + """ + Return the top level directory under which subvolumes/groups are created + """ + return self.subvolume_prefix + + @property + def fs_namespace(self): + """ + return a filesystem namespace by stashing pool namespace prefix and subvolume-id + """ + return self.pool_ns_prefix -- 2.39.5