diff options
Diffstat (limited to 'roles/elevate/media/filter_plugins')
-rw-r--r-- | roles/elevate/media/filter_plugins/nextcloud.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/roles/elevate/media/filter_plugins/nextcloud.py b/roles/elevate/media/filter_plugins/nextcloud.py new file mode 100644 index 00000000..a1bcd63b --- /dev/null +++ b/roles/elevate/media/filter_plugins/nextcloud.py @@ -0,0 +1,38 @@ +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible import errors + + +def mountpoint_exists(data, mountpoint): + try: + for entry in data: + if entry['mount_point'] == mountpoint: + return True + + return False + except Exception as e: + raise errors.AnsibleFilterError("mountpoint_exists(): %s" % str(e)) + + +def get_id_of_mountpoint(data, mountpoint): + try: + for entry in data: + if entry['mount_point'] == mountpoint: + return entry['mount_id'] + + raise KeyError + except Exception as e: + raise errors.AnsibleFilterError("get_id_of_mountpoint(): %s" % str(e)) + + +class FilterModule(object): + + ''' extract values from nextcloud ''' + filter_map = { + 'nextcloud_mountpoint_exists': mountpoint_exists, + 'nextcloud_get_id_of_mountpoint': get_id_of_mountpoint, + } + + def filters(self): + return self.filter_map |