From 94b73d66d53ca0df9911d1dd412bc1d3c9181b1b Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Thu, 17 Mar 2022 14:15:03 -0400 Subject: [PATCH] inventory manager respect --flush-cache (#77083) --- changelogs/fragments/inventory_manager_flush_cache.yml | 2 ++ lib/ansible/cli/__init__.py | 2 +- lib/ansible/inventory/manager.py | 5 ++--- 3 files changed, 5 insertions(+), 4 deletions(-) create mode 100644 changelogs/fragments/inventory_manager_flush_cache.yml diff --git a/changelogs/fragments/inventory_manager_flush_cache.yml b/changelogs/fragments/inventory_manager_flush_cache.yml new file mode 100644 index 00000000000..1e103a790a7 --- /dev/null +++ b/changelogs/fragments/inventory_manager_flush_cache.yml @@ -0,0 +1,2 @@ +bugfixes: + - inventory manager now respects --flush-cache diff --git a/lib/ansible/cli/__init__.py b/lib/ansible/cli/__init__.py index 08a971738f0..dc15f4bd6a6 100644 --- a/lib/ansible/cli/__init__.py +++ b/lib/ansible/cli/__init__.py @@ -503,7 +503,7 @@ class CLI(ABC): loader.set_vault_secrets(vault_secrets) # create the inventory, and filter it based on the subset specified (if any) - inventory = InventoryManager(loader=loader, sources=options['inventory']) + inventory = InventoryManager(loader=loader, sources=options['inventory'], cache=(not options.get('flush_cache'))) # create the variable manager, which will be shared throughout # the code, ensuring a consistent view of global variables diff --git a/lib/ansible/inventory/manager.py b/lib/ansible/inventory/manager.py index 53ddd98fbf6..3dbe2bfeb2a 100644 --- a/lib/ansible/inventory/manager.py +++ b/lib/ansible/inventory/manager.py @@ -140,7 +140,7 @@ def split_host_pattern(pattern): class InventoryManager(object): ''' Creates and manages inventory ''' - def __init__(self, loader, sources=None, parse=True): + def __init__(self, loader, sources=None, parse=True, cache=True): # base objects self._loader = loader @@ -164,7 +164,7 @@ class InventoryManager(object): # get to work! if parse: - self.parse_sources(cache=True) + self.parse_sources(cache=cache) @property def localhost(self): @@ -336,7 +336,6 @@ class InventoryManager(object): ''' clear all caches ''' self._hosts_patterns_cache = {} self._pattern_cache = {} - # FIXME: flush inventory cache def refresh_inventory(self): ''' recalculate inventory '''