diff options
Diffstat (limited to 'roles/storage/zfs/syncoid/filter_plugins/zfs_syncoid.py')
-rw-r--r-- | roles/storage/zfs/syncoid/filter_plugins/zfs_syncoid.py | 29 |
1 files changed, 29 insertions, 0 deletions
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 |