From 95cb07c5209df37d005a79e84bb588bce6bff5c8 Mon Sep 17 00:00:00 2001 From: Anton Samets Date: Tue, 1 Oct 2024 12:36:28 +0300 Subject: [PATCH] rework cache_manager logic about cached facts and groups If one fact is missing in group - we don't want to delete whole facts group - only recalculate missing fact if we need. Should fix https://github.com/puppetlabs/facter/issues/2712 --- lib/facter/framework/core/cache_manager.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/facter/framework/core/cache_manager.rb b/lib/facter/framework/core/cache_manager.rb index e939f0b7f2..b474694e3b 100644 --- a/lib/facter/framework/core/cache_manager.rb +++ b/lib/facter/framework/core/cache_manager.rb @@ -95,8 +95,9 @@ def read_fact(searched_fact, fact_group) unless searched_fact.file return unless valid_format_version?(searched_fact, data, fact_group) - delete_cache(fact_group) unless data.keys.grep(/#{searched_fact.name}/).any? - # data.fetch(searched_fact.name) { delete_cache(fact_group) } + unless data.keys.grep(/#{searched_fact.name}/).any? + @log.debug("Fact '#{searched_fact.name}' missing from group '#{fact_group}', skipping cache removal.") + end end @log.debug("loading cached values for #{searched_fact.name} facts")