diff options
author | Guido Günther <agx@sigxcpu.org> | 2016-02-29 18:53:59 +0100 |
---|---|---|
committer | Guido Günther <agx@sigxcpu.org> | 2016-02-29 18:53:59 +0100 |
commit | 0d52a129e223be61dbf54b221cfd2ba4bfc27c52 (patch) | |
tree | a009b14e2d41686f6f9f1a178ed77407d3a85b3b /foreman_ansible_inventory.py | |
parent | 12cff5111229280c8c264d93cce86509de83d8a9 (diff) | |
parent | d2928fa1b741aa1e11bfad64cb702fe45ab61d8e (diff) |
Merge branch 'gh/5'v0.0.2
Diffstat (limited to 'foreman_ansible_inventory.py')
-rw-r--r--[-rwxr-xr-x] | foreman_ansible_inventory.py | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/foreman_ansible_inventory.py b/foreman_ansible_inventory.py index 5bb16b6..461146c 100755..100644 --- a/foreman_ansible_inventory.py +++ b/foreman_ansible_inventory.py @@ -20,6 +20,7 @@ import argparse import ConfigParser +import copy import os import re from time import time @@ -200,12 +201,21 @@ class ForemanInventory(object): safe_key = self.to_safe('foreman_%s_%s' % (group, val.lower())) self.push(self.inventory, safe_key, dns_name) - # Ansible groups by parameters in host groups based - # on group_patterns in config params = self._resolve_params(host) + + # Ansible groups by parameters in host groups and Foreman host + # attributes. + groupby = copy.copy(params) + for k, v in host.items(): + if isinstance(v, basestring): + groupby[k] = self.to_safe(v) + elif isinstance(v, int): + groupby[k] = v + + # The name of the ansible groups is given by group_patterns: for pattern in self.group_patterns: try: - key = pattern.format(**params) + key = pattern.format(**groupby) self.push(self.inventory, key, dns_name) except KeyError: pass # Host not part of this group |