summaryrefslogtreecommitdiffstats
path: root/inventory/multi_ec2.py
diff options
context:
space:
mode:
authorKenny Woodson <kwoodson@redhat.com>2015-10-29 11:14:51 -0400
committerKenny Woodson <kwoodson@redhat.com>2015-10-29 11:14:51 -0400
commit9bbaa824da5e1a049cdec1a6523c3841d713386c (patch)
tree93e80f1577ad0f2f5f8931b493c50cd9aa657c77 /inventory/multi_ec2.py
parent15df494fb781dd1509854eeb366e981930b52c22 (diff)
parent16d1bce0be2f8c3942489630adcb7030aecadc55 (diff)
downloadopenshift-9bbaa824da5e1a049cdec1a6523c3841d713386c.tar.gz
openshift-9bbaa824da5e1a049cdec1a6523c3841d713386c.tar.bz2
openshift-9bbaa824da5e1a049cdec1a6523c3841d713386c.tar.xz
openshift-9bbaa824da5e1a049cdec1a6523c3841d713386c.zip
Merge pull request #763 from openshift/master
Merge master into prod.
Diffstat (limited to 'inventory/multi_ec2.py')
-rwxr-xr-xinventory/multi_ec2.py29
1 files changed, 20 insertions, 9 deletions
diff --git a/inventory/multi_ec2.py b/inventory/multi_ec2.py
index b7ce9e5dc..23cf5ecf1 100755
--- a/inventory/multi_ec2.py
+++ b/inventory/multi_ec2.py
@@ -78,7 +78,7 @@ class MultiEc2(object):
},
]
- self.config['cache_max_age'] = 0
+ self.config['cache_max_age'] = 300
else:
raise RuntimeError("Could not find valid ec2 credentials in the environment.")
@@ -239,22 +239,33 @@ class MultiEc2(object):
def apply_account_config(self, acc_config):
''' Apply account config settings
'''
- if not acc_config.has_key('hostvars') and not acc_config.has_key('all_group'):
- return
-
results = self.all_ec2_results[acc_config['name']]
- # Update each hostvar with the newly desired key: value
- for host_property, value in acc_config['hostvars'].items():
+
+ # Update each hostvar with the newly desired key: value
+ for new_var, value in acc_config.get('extra_vars', {}).items():
# Verify the account results look sane
# by checking for these keys ('_meta' and 'hostvars' exist)
if results.has_key('_meta') and results['_meta'].has_key('hostvars'):
for data in results['_meta']['hostvars'].values():
- data[str(host_property)] = str(value)
+ data[str(new_var)] = str(value)
# Add this group
if results.has_key(acc_config['all_group']):
- results["%s_%s" % (host_property, value)] = \
- copy.copy(results[acc_config['all_group']])
+ results["%s_%s" % (new_var, value)] = \
+ copy.copy(results[acc_config['all_group']])
+
+ # Clone groups goes here
+ for name_from, name_to in acc_config.get('clone_groups', {}).items():
+ if results.has_key(name_from):
+ results[name_to] = copy.copy(results[name_from])
+
+ # Clone vars goes here
+ for to_name, from_name in acc_config.get('clone_vars', {}).items():
+ # Verify the account results look sane
+ # by checking for these keys ('_meta' and 'hostvars' exist)
+ if results.has_key('_meta') and results['_meta'].has_key('hostvars'):
+ for data in results['_meta']['hostvars'].values():
+ data[str(to_name)] = data.get(str(from_name), 'nil')
# store the results back into all_ec2_results
self.all_ec2_results[acc_config['name']] = results