Skip to content

Commit 323ce75

Browse files
author
Bogdan Irimie
authored
Merge pull request #2123 from florindragos/external_cache_fix
(maint) Fix external fact cache
2 parents e1f058e + 821710c commit 323ce75

2 files changed

Lines changed: 19 additions & 14 deletions

File tree

lib/facter/framework/core/cache_manager.rb

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,15 @@ def fact_cache_enabled?(fact_name)
5656
private
5757

5858
def resolve_fact(searched_fact)
59-
return unless fact_cache_enabled?(searched_fact.name)
59+
fact_name = if searched_fact.file
60+
File.basename(searched_fact.file)
61+
else
62+
searched_fact.name
63+
end
6064

61-
fact = if searched_fact.file
62-
@fact_groups.get_fact(File.basename(searched_fact.file))
63-
else
64-
@fact_groups.get_fact(searched_fact.name)
65-
end
65+
return unless fact_cache_enabled?(fact_name)
66+
67+
fact = @fact_groups.get_fact(fact_name)
6668

6769
return unless fact
6870

@@ -97,14 +99,17 @@ def create_facts(searched_fact, data)
9799
end
98100

99101
def cache_fact(fact)
100-
group_name = if fact.file
101-
File.basename(fact.file)
102-
else
103-
@fact_groups.get_fact_group(fact.name)
104-
end
102+
fact_name = if fact.file
103+
File.basename(fact.file)
104+
else
105+
fact.name
106+
end
107+
108+
group_name = @fact_groups.get_fact_group(fact_name)
109+
105110
return if !group_name || fact.value.nil?
106111

107-
return unless fact_cache_enabled?(fact.name)
112+
return unless fact_cache_enabled?(fact_name)
108113

109114
@groups[group_name] ||= {}
110115
@groups[group_name][fact.name] = fact.value

spec/facter/cache_manager_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
user_query: '', type: :custom, file: nil)
1414
end
1515
let(:searched_external_fact) do
16-
instance_spy(Facter::SearchedFact, name: 'ext_file.txt', fact_class: nil, filter_tokens: [],
16+
instance_spy(Facter::SearchedFact, name: 'my_external_fact', fact_class: nil, filter_tokens: [],
1717
user_query: '', type: :file, file: '/tmp/ext_file.txt')
1818
end
1919
let(:searched_facts) { [searched_core_fact, searched_custom_fact, searched_external_fact] }
@@ -103,7 +103,7 @@
103103
sf, _cf = cache_manager.resolve_facts(searched_facts)
104104
expect(sf).to be_an_instance_of(Array).and contain_exactly(
105105
an_object_having_attributes(name: 'my_custom_fact', type: :custom),
106-
an_object_having_attributes(name: 'ext_file.txt', type: :file)
106+
an_object_having_attributes(name: 'my_external_fact', type: :file)
107107
)
108108
end
109109

0 commit comments

Comments
 (0)