from __future__ import (absolute_import, division, print_function) __metaclass__ = type from ansible import errors def extract_ssh_key_fingerprints(data): try: return [k['key']['fingerprint'] for k in data] except Exception as e: raise errors.AnsibleFilterError("hroot_ssh_key_fingerprints(): %s" % str(e)) def extract_serverip(data, server_name): try: ips = [s['server']['server_ip'] for s in data if s['server']['server_name'] == server_name] if len(ips): return ips[0] raise errors.AnsibleFilterError("hroot_extract_serverip(): server %s not found" % server_name) except Exception as e: raise errors.AnsibleFilterError("hroot_extract_serverip(): %s" % str(e)) class FilterModule(object): ''' Ansible math jinja2 filters ''' def filters(self): return { 'hroot_extract_ssh_key_fingerprints': extract_ssh_key_fingerprints, 'hroot_extract_serverip': extract_serverip, }