diff options
Diffstat (limited to 'roles/storage/lvm/base/filter_plugins/lvm.py')
-rw-r--r-- | roles/storage/lvm/base/filter_plugins/lvm.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/roles/storage/lvm/base/filter_plugins/lvm.py b/roles/storage/lvm/base/filter_plugins/lvm.py new file mode 100644 index 00000000..0f8b1e97 --- /dev/null +++ b/roles/storage/lvm/base/filter_plugins/lvm.py @@ -0,0 +1,31 @@ +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from functools import partial + +from ansible import errors + + +def lvm_volume_list(data): + try: + thinpools = [] + volumes = [] + for name, volume in data.items(): + entry = {'name': name, 'volume': volume} + if 'thinpool' in volume and volume['thinpool'] == True: + thinpools.append(entry) + else: + volumes.append(entry) + return thinpools + volumes + except Exception as e: + raise errors.AnsibleFilterError("lvm_volume_list(): %s" % str(e)) + + +class FilterModule(object): + + filter_map = { + 'lvm_volume_list': lvm_volume_list, + } + + def filters(self): + return self.filter_map |