From a64636bdedf842402016b29932862896dd6a6265 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sat, 1 May 2021 20:15:49 +0200 Subject: add experimental syncoid zfs backup role --- .../zfs/syncoid/filter_plugins/zfs_syncoid.py | 29 ++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 roles/storage/zfs/syncoid/filter_plugins/zfs_syncoid.py (limited to 'roles/storage/zfs/syncoid/filter_plugins/zfs_syncoid.py') diff --git a/roles/storage/zfs/syncoid/filter_plugins/zfs_syncoid.py b/roles/storage/zfs/syncoid/filter_plugins/zfs_syncoid.py new file mode 100644 index 00000000..085d7c74 --- /dev/null +++ b/roles/storage/zfs/syncoid/filter_plugins/zfs_syncoid.py @@ -0,0 +1,29 @@ +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from functools import partial + +from ansible import errors + + +def zfs_syncoid_explode_paths(data): + try: + result = [] + for path in data: + parts = path.split('/') + for i in range(len(parts)): + result.append('/'.join(parts[:(i+1)])) + return result + except Exception as e: + raise errors.AnsibleFilterError("zfs_syncoid_explode_paths(): %s" % str(e)) + + +class FilterModule(object): + + ''' zfs syncoid filters ''' + filter_map = { + 'zfs_syncoid_explode_paths': zfs_syncoid_explode_paths, + } + + def filters(self): + return self.filter_map -- cgit v1.2.3