From 16fb74ffb3b202bc0f308c2bf4a9312e6a31177a Mon Sep 17 00:00:00 2001 From: Monty Taylor Date: Mon, 18 Jun 2018 15:41:15 -0500 Subject: [PATCH] Fix openstack inventory script for multi-cloud case (#41664) The shift to openstacksdk left us with a bug in that when running bare with --list, the cloud argument to get_one is None. We just need _one_ of the clouds to pull the cache settings, since they are global (yet, we'll go back and fix this in sdk) If it's None, just use get_all and grab the first one. --- contrib/inventory/openstack_inventory.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/contrib/inventory/openstack_inventory.py b/contrib/inventory/openstack_inventory.py index cf7bed949dc..1bb5e17de95 100755 --- a/contrib/inventory/openstack_inventory.py +++ b/contrib/inventory/openstack_inventory.py @@ -192,8 +192,12 @@ def is_cache_stale(cache_file, cache_expiration_time, refresh=False): def get_cache_settings(cloud=None): config_files = cloud_config.CONFIG_FILES + CONFIG_FILES - config = cloud_config.OpenStackConfig( - config_files=config_files).get_one(cloud=cloud) + if cloud: + config = cloud_config.OpenStackConfig( + config_files=config_files).get_one(cloud=cloud) + else: + config = cloud_config.OpenStackConfig( + config_files=config_files).get_all()[0] # For inventory-wide caching cache_expiration_time = config.get_cache_expiration_time() cache_path = config.get_cache_path()