diff options
author | Christian Pointner <equinox@spreadspace.org> | 2019-09-08 00:20:46 +0200 |
---|---|---|
committer | Christian Pointner <equinox@spreadspace.org> | 2019-09-08 00:20:46 +0200 |
commit | d4dd2f186ea9c5977ea66d3fcc13da8f1553b9d3 (patch) | |
tree | 390bafa38d0e7a3864da121aa43b5ca7aa4bd719 /roles/cloud/install/filter_plugins | |
parent | don't autostart testvm (diff) |
major refactoring for cloud install
Diffstat (limited to 'roles/cloud/install/filter_plugins')
-rw-r--r-- | roles/cloud/install/filter_plugins/hroot.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/roles/cloud/install/filter_plugins/hroot.py b/roles/cloud/install/filter_plugins/hroot.py new file mode 100644 index 00000000..d2abff1b --- /dev/null +++ b/roles/cloud/install/filter_plugins/hroot.py @@ -0,0 +1,33 @@ +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, + } |