diff options
author | Kenny Woodson <kwoodson@redhat.com> | 2015-12-14 16:13:30 -0500 |
---|---|---|
committer | Kenny Woodson <kwoodson@redhat.com> | 2015-12-14 17:11:15 -0500 |
commit | ba08cf8c8e2138ae5de60fb28df7f50d3f45b5cf (patch) | |
tree | 3b4e66ebb0d25189bdac062a3eab0b27ae7d592f /bin/openshift_ansible/awsutil.py | |
parent | e4ecb0ea7415e0db3957926e5c6a571c36e2ffd1 (diff) | |
download | openshift-ba08cf8c8e2138ae5de60fb28df7f50d3f45b5cf.tar.gz openshift-ba08cf8c8e2138ae5de60fb28df7f50d3f45b5cf.tar.bz2 openshift-ba08cf8c8e2138ae5de60fb28df7f50d3f45b5cf.tar.xz openshift-ba08cf8c8e2138ae5de60fb28df7f50d3f45b5cf.zip |
Updates to ohi to pull cache if specified. Also require version
Diffstat (limited to 'bin/openshift_ansible/awsutil.py')
-rw-r--r-- | bin/openshift_ansible/awsutil.py | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/bin/openshift_ansible/awsutil.py b/bin/openshift_ansible/awsutil.py index ba32b4dbd..1ea2f914c 100644 --- a/bin/openshift_ansible/awsutil.py +++ b/bin/openshift_ansible/awsutil.py @@ -46,14 +46,17 @@ class AwsUtil(object): self.alias_lookup[value] = key @staticmethod - def get_inventory(args=None): + def get_inventory(args=None, cached=False): """Calls the inventory script and returns a dictionary containing the inventory." Keyword arguments: args -- optional arguments to pass to the inventory script """ minv = multi_inventory.MultiInventory(args) - minv.run() + if cached: + minv.get_inventory_from_cache() + else: + minv.run() return minv.result def get_environments(self): @@ -168,11 +171,12 @@ class AwsUtil(object): host_type = self.resolve_host_type(host_type) return "tag_env-host-type_%s-%s" % (env, host_type) - def get_host_list(self, host_type=None, envs=None): + def get_host_list(self, host_type=None, envs=None, version=None, cached=False): """Get the list of hosts from the inventory using host-type and environment """ + retval = set([]) envs = envs or [] - inv = self.get_inventory() + inv = self.get_inventory(cached=cached) # We prefer to deal with a list of environments if issubclass(type(envs), basestring): @@ -183,29 +187,25 @@ class AwsUtil(object): if host_type and envs: # Both host type and environment were specified - retval = [] for env in envs: - env_host_type_tag = self.gen_env_host_type_tag(host_type, env) - if env_host_type_tag in inv.keys(): - retval += inv[env_host_type_tag] - return set(retval) + retval.update(inv.get('tag_environment_%s' % env, [])) + retval.intersection_update(inv.get(self.gen_host_type_tag(host_type), [])) - if envs and not host_type: + elif envs and not host_type: # Just environment was specified - retval = [] for env in envs: env_tag = AwsUtil.gen_env_tag(env) if env_tag in inv.keys(): - retval += inv[env_tag] - return set(retval) + retval.update(inv.get(env_tag, [])) - if host_type and not envs: + elif host_type and not envs: # Just host-type was specified - retval = [] host_type_tag = self.gen_host_type_tag(host_type) if host_type_tag in inv.keys(): - retval = inv[host_type_tag] - return set(retval) + retval.update(inv.get(host_type_tag, [])) + + # If version is specified then return only hosts in that version + if version: + retval.intersection_update(inv.get('oo_version_%s' % version, [])) - # We should never reach here! - raise ArgumentError("Invalid combination of parameters") + return retval |