aboutsummaryrefslogtreecommitdiff
path: root/foreman_ansible_inventory.py
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2016-02-29 18:53:59 +0100
committerGuido Günther <agx@sigxcpu.org>2016-02-29 18:53:59 +0100
commit0d52a129e223be61dbf54b221cfd2ba4bfc27c52 (patch)
treea009b14e2d41686f6f9f1a178ed77407d3a85b3b /foreman_ansible_inventory.py
parent12cff5111229280c8c264d93cce86509de83d8a9 (diff)
parentd2928fa1b741aa1e11bfad64cb702fe45ab61d8e (diff)
Merge branch 'gh/5'v0.0.2
Diffstat (limited to 'foreman_ansible_inventory.py')
-rw-r--r--[-rwxr-xr-x]foreman_ansible_inventory.py16
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