raise CephfsConnectionException(
-errno.ENOENT, "no filesystem found")
+ def has_fs(self, fs_name: str) -> bool:
+ return fs_name in self.client.get_all_filesystems()
+
def serve(self) -> None:
self._initialized.set()
List current snapshot schedules
'''
use_fs = fs if fs else self.default_fs
+ if not self.has_fs(use_fs):
+ return -errno.EINVAL, '', f"no such filesystem: {use_fs}"
try:
ret_scheds = self.client.get_snap_schedules(use_fs, path)
except CephfsConnectionException as e:
'''
try:
use_fs = fs if fs else self.default_fs
+ if not self.has_fs(use_fs):
+ return -errno.EINVAL, '', f"no such filesystem: {use_fs}"
scheds = self.client.list_snap_schedules(use_fs, path, recursive)
self.log.debug(f'recursive is {recursive}')
except CephfsConnectionException as e:
'''
try:
use_fs = fs if fs else self.default_fs
+ if not self.has_fs(use_fs):
+ return -errno.EINVAL, '', f"no such filesystem: {use_fs}"
abs_path = self.resolve_subvolume_path(use_fs, subvol, path)
self.client.store_snap_schedule(use_fs,
abs_path,
'''
try:
use_fs = fs if fs else self.default_fs
+ if not self.has_fs(use_fs):
+ return -errno.EINVAL, '', f"no such filesystem: {use_fs}"
abs_path = self.resolve_subvolume_path(use_fs, subvol, path)
self.client.rm_snap_schedule(use_fs, abs_path, repeat, start)
except CephfsConnectionException as e:
'''
try:
use_fs = fs if fs else self.default_fs
+ if not self.has_fs(use_fs):
+ return -errno.EINVAL, '', f"no such filesystem: {use_fs}"
abs_path = self.resolve_subvolume_path(use_fs, subvol, path)
self.client.add_retention_spec(use_fs, abs_path,
retention_spec_or_period,
'''
try:
use_fs = fs if fs else self.default_fs
+ if not self.has_fs(use_fs):
+ return -errno.EINVAL, '', f"no such filesystem: {use_fs}"
abs_path = self.resolve_subvolume_path(use_fs, subvol, path)
self.client.rm_retention_spec(use_fs, abs_path,
retention_spec_or_period,
'''
try:
use_fs = fs if fs else self.default_fs
+ if not self.has_fs(use_fs):
+ return -errno.EINVAL, '', f"no such filesystem: {use_fs}"
abs_path = self.resolve_subvolume_path(use_fs, subvol, path)
self.client.activate_snap_schedule(use_fs, abs_path, repeat, start)
except CephfsConnectionException as e:
'''
try:
use_fs = fs if fs else self.default_fs
+ if not self.has_fs(use_fs):
+ return -errno.EINVAL, '', f"no such filesystem: {use_fs}"
abs_path = self.resolve_subvolume_path(use_fs, subvol, path)
self.client.deactivate_snap_schedule(use_fs, abs_path, repeat, start)
except CephfsConnectionException as e: