Fix the refresh flag in openstack inventory

Refresh will update the dogpile cache from shade, but doesn't cause
the ansible side json cache to be invalidated. It's a simple oversight.
pull/13544/head
Monty Taylor 9 years ago
parent e00012994e
commit 1f8e484b70

@ -94,9 +94,9 @@ def get_groups_from_server(server_vars):
return groups return groups
def get_host_groups(inventory): def get_host_groups(inventory, refresh=False):
(cache_file, cache_expiration_time) = get_cache_settings() (cache_file, cache_expiration_time) = get_cache_settings()
if is_cache_stale(cache_file, cache_expiration_time): if is_cache_stale(cache_file, cache_expiration_time, refresh=refresh):
groups = to_json(get_host_groups_from_cloud(inventory)) groups = to_json(get_host_groups_from_cloud(inventory))
open(cache_file, 'w').write(groups) open(cache_file, 'w').write(groups)
else: else:
@ -121,8 +121,10 @@ def get_host_groups_from_cloud(inventory):
return groups return groups
def is_cache_stale(cache_file, cache_expiration_time): def is_cache_stale(cache_file, cache_expiration_time, refresh=False):
''' Determines if cache file has expired, or if it is still valid ''' ''' Determines if cache file has expired, or if it is still valid '''
if refresh:
return True
if os.path.isfile(cache_file): if os.path.isfile(cache_file):
mod_time = os.path.getmtime(cache_file) mod_time = os.path.getmtime(cache_file)
current_time = time.time() current_time = time.time()
@ -176,7 +178,7 @@ def main():
) )
if args.list: if args.list:
output = get_host_groups(inventory) output = get_host_groups(inventory, refresh=args.refresh)
elif args.host: elif args.host:
output = to_json(inventory.get_host(args.host)) output = to_json(inventory.get_host(args.host))
print(output) print(output)

Loading…
Cancel
Save