]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
mgr/volumes: implement subvolume based on subvolume template
authorVenky Shankar <vshankar@redhat.com>
Wed, 20 Nov 2019 13:45:44 +0000 (08:45 -0500)
committerVenky Shankar <vshankar@redhat.com>
Thu, 9 Jan 2020 11:33:31 +0000 (06:33 -0500)
commit97170d72b764ed26e93b45e8e2e7ecc2368a2a04
tree246e2f3e7c7c2a23b7ef6838a8d0ac5755df6cef
parent3eccd618ecce13052e31d07437ee2d09ae98e5c4
mgr/volumes: implement subvolume based on subvolume template

subvolume base class implements common routines/helpers and
initializes a metadata manager. later, when v2 subvolume version
is implemented, the metadata manager would be used to persist
subvolume metadata in ceph filesystem. this would allow flexible
metadata management when complex subvolume features are added.

typically, a subvolume would be implemented by subclassing the
subvolume base class and the subvolume template -- instantiating
this would be called a "subvolume object".

with this commit, current subvolume topology is maintained. but
we introduce the concept of subvolume versions. a loader stub
loads available "versions" of subvolumes. right now, the only
available version is v1. since backward compatibility needs to
be maintained for existing subvolumes, the loader API allows
version discovery w/ auto upgradation to the most recent version.

Signed-off-by: Venky Shankar <vshankar@redhat.com>
src/pybind/mgr/volumes/fs/exception.py
src/pybind/mgr/volumes/fs/operations/versions/__init__.py [new file with mode: 0644]
src/pybind/mgr/volumes/fs/operations/versions/metadata_manager.py [new file with mode: 0644]
src/pybind/mgr/volumes/fs/operations/versions/subvolume_base.py [new file with mode: 0644]
src/pybind/mgr/volumes/fs/operations/versions/subvolume_v1.py [new file with mode: 0644]