mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
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.
This commit is contained in:
parent
e00012994e
commit
1f8e484b70
1 changed files with 6 additions and 4 deletions
|
@ -94,9 +94,9 @@ def get_groups_from_server(server_vars):
|
|||
return groups
|
||||
|
||||
|
||||
def get_host_groups(inventory):
|
||||
def get_host_groups(inventory, refresh=False):
|
||||
(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))
|
||||
open(cache_file, 'w').write(groups)
|
||||
else:
|
||||
|
@ -121,8 +121,10 @@ def get_host_groups_from_cloud(inventory):
|
|||
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 '''
|
||||
if refresh:
|
||||
return True
|
||||
if os.path.isfile(cache_file):
|
||||
mod_time = os.path.getmtime(cache_file)
|
||||
current_time = time.time()
|
||||
|
@ -176,7 +178,7 @@ def main():
|
|||
)
|
||||
|
||||
if args.list:
|
||||
output = get_host_groups(inventory)
|
||||
output = get_host_groups(inventory, refresh=args.refresh)
|
||||
elif args.host:
|
||||
output = to_json(inventory.get_host(args.host))
|
||||
print(output)
|
||||
|
|
Loading…
Reference in a new issue