diff --git a/lib/facter/custom_facts/util/config.rb b/lib/facter/custom_facts/util/config.rb index eb4b9bca5b..11788dd53a 100644 --- a/lib/facter/custom_facts/util/config.rb +++ b/lib/facter/custom_facts/util/config.rb @@ -78,7 +78,7 @@ def self.setup_default_cache_dir @facts_cache_dir = if windows_dir File.join(windows_dir, 'PuppetLabs', 'facter', 'cache', 'cached_facts') else - '/opt/puppetlabs/facter/cache/cached_facts' + '/Users/bogdan.irimie/cached_facts' end end diff --git a/lib/facter/custom_facts/util/directory_loader.rb b/lib/facter/custom_facts/util/directory_loader.rb index e363208c95..ac5441d665 100644 --- a/lib/facter/custom_facts/util/directory_loader.rb +++ b/lib/facter/custom_facts/util/directory_loader.rb @@ -53,23 +53,26 @@ def load(collection) private def load_directory_entries(_collection) - cm = Facter::CacheManager.new + cache_reader = Facter::Cache::CacheReader.new + cache_augmenter = Facter::Cache::CacheAugmenter.new facts = [] entries.each do |file| basename = File.basename(file) next if file_blocked?(basename) - if facts.find { |f| f.name == basename } && cm.fact_cache_enabled?(basename) + searched_fact = Facter::SearchedFact.new(basename, nil, [], nil, :file) + searched_fact.file = file + cache_augmenter.augment_with_cache_group([searched_fact]) + + if facts.find { |f| f.name == basename } && searched_fact.cache_group != nil Facter.log_exception(Exception.new("Caching is enabled for group \"#{basename}\" while "\ 'there are at least two external facts files with the same filename')) else - searched_fact = Facter::SearchedFact.new(basename, nil, [], nil, :file) - searched_fact.file = file facts << searched_fact end end - cm.resolve_facts(facts) + cache_reader.read_from_cache(facts) end def load_cached_facts(collection, cached_facts, weight) diff --git a/lib/facter/facts/aix/identity/group.rb b/lib/facter/facts/aix/identity/group.rb index 0f15acbb1d..6134e37de0 100644 --- a/lib/facter/facts/aix/identity/group.rb +++ b/lib/facter/facts/aix/identity/group.rb @@ -8,7 +8,7 @@ class Group ALIASES = 'gid' def call_the_resolver - fact_value = Facter::Resolvers::PosxIdentity.resolve(:group) + fact_value = Facter::Resolvers::PosxIdentity.resolve(:cache_group) [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)] end diff --git a/lib/facter/facts/freebsd/identity/group.rb b/lib/facter/facts/freebsd/identity/group.rb index fb0da1df20..acd7705cd0 100644 --- a/lib/facter/facts/freebsd/identity/group.rb +++ b/lib/facter/facts/freebsd/identity/group.rb @@ -8,7 +8,7 @@ class Group ALIASES = 'gid' def call_the_resolver - fact_value = Facter::Resolvers::PosxIdentity.resolve(:group) + fact_value = Facter::Resolvers::PosxIdentity.resolve(:cache_group) [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)] end diff --git a/lib/facter/facts/linux/identity/group.rb b/lib/facter/facts/linux/identity/group.rb index e881f9138e..1ad9b9a049 100644 --- a/lib/facter/facts/linux/identity/group.rb +++ b/lib/facter/facts/linux/identity/group.rb @@ -8,7 +8,7 @@ class Group ALIASES = 'gid' def call_the_resolver - fact_value = Facter::Resolvers::PosxIdentity.resolve(:group) + fact_value = Facter::Resolvers::PosxIdentity.resolve(:cache_group) [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)] end diff --git a/lib/facter/facts/macosx/identity/group.rb b/lib/facter/facts/macosx/identity/group.rb index d9aa094bca..328fcf7dd5 100644 --- a/lib/facter/facts/macosx/identity/group.rb +++ b/lib/facter/facts/macosx/identity/group.rb @@ -8,7 +8,7 @@ class Group ALIASES = 'gid' def call_the_resolver - fact_value = Facter::Resolvers::PosxIdentity.resolve(:group) + fact_value = Facter::Resolvers::PosxIdentity.resolve(:cache_group) [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)] end diff --git a/lib/facter/facts/solaris/identity/group.rb b/lib/facter/facts/solaris/identity/group.rb index ff5828f7f7..ddaa46d821 100644 --- a/lib/facter/facts/solaris/identity/group.rb +++ b/lib/facter/facts/solaris/identity/group.rb @@ -8,7 +8,7 @@ class Group ALIASES = 'gid' def call_the_resolver - fact_value = Facter::Resolvers::PosxIdentity.resolve(:group) + fact_value = Facter::Resolvers::PosxIdentity.resolve(:cache_group) [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)] end diff --git a/lib/facter/framework/config/fact_groups.rb b/lib/facter/framework/config/fact_groups.rb index 374a123593..003b898464 100644 --- a/lib/facter/framework/config/fact_groups.rb +++ b/lib/facter/framework/config/fact_groups.rb @@ -33,14 +33,6 @@ def blocked_facts fact_list end - # Get the group name a fact is part of - def get_fact_group(fact_name) - fact = get_fact(fact_name) - return fact[:group] if fact - - @groups.detect { |k, v| break k if Array(v).find { |f| fact_name =~ /^#{f}.*/ } } - end - # Get config ttls for a given group def get_group_ttls(group_name) return unless (ttls = @groups_ttls.find { |g| g[group_name] }) @@ -48,15 +40,6 @@ def get_group_ttls(group_name) ttls_to_seconds(ttls[group_name]) end - def get_fact(fact_name) - return @facts_ttls[fact_name] if @facts_ttls[fact_name] - - result = @facts_ttls.select { |name, fact| break fact if fact_name =~ /^#{name}\..*/ } - return nil if result == {} - - result - end - private def load_groups_from_options @@ -78,13 +61,15 @@ def load_facts_ttls @groups_ttls.reduce(:merge).each do |group, ttls| ttls = ttls_to_seconds(ttls) if @groups[group] + # the ttls is for a group @groups[group].each do |fact| if (@facts_ttls[fact] && @facts_ttls[fact][:ttls] < ttls) || @facts_ttls[fact].nil? - @facts_ttls[fact] = { ttls: ttls, group: group } + @facts_ttls[fact] = {ttls: ttls, cache_group: group } end end else - @facts_ttls[group] = { ttls: ttls, group: group } + # the ttls is for a fact not a group + @facts_ttls[group] = {ttls: ttls, cache_group: group } end end end diff --git a/lib/facter/framework/core/cache/cache_augmenter.rb b/lib/facter/framework/core/cache/cache_augmenter.rb new file mode 100644 index 0000000000..e2bd9493c4 --- /dev/null +++ b/lib/facter/framework/core/cache/cache_augmenter.rb @@ -0,0 +1,27 @@ + +module Facter + module Cache + class CacheAugmenter + + def initialize + @fact_groups = Facter::FactGroups.new + end + + def augment_with_cache_group(searched_facts) + ttls = @fact_groups.facts_ttls + + searched_facts.each do |fact| + fact_name = if fact.file + File.basename(fact.file) + else + fact.name + end + + ttls.each do |fact_key, details| + fact.cache_group = details[:cache_group] if fact_name =~ /^#{fact_key}\..*/ || fact_name =~ /^#{fact_key}$/ + end + end + end + end + end +end diff --git a/lib/facter/framework/core/cache/cache_reader.rb b/lib/facter/framework/core/cache/cache_reader.rb new file mode 100644 index 0000000000..953c1895b2 --- /dev/null +++ b/lib/facter/framework/core/cache/cache_reader.rb @@ -0,0 +1,79 @@ + +module Facter + module Cache + class CacheReader + + def initialize + @groups = {} + @log = Log.new(self) + @cache_dir = LegacyFacter::Util::Config.facts_cache_dir + end + + def read_from_cache(searched_facts) + return searched_facts, [] if (!File.directory?(@cache_dir) || !Options[:cache]) && Options[:ttls].any? + + facts = [] + searched_facts.delete_if do |searched_fact| + res = read_fact(searched_fact, searched_fact.cache_group) if searched_fact.cache_group + if res + facts << res + true + else + false + end + end + + [searched_facts, facts.flatten] + end + + private + + def read_fact(searched_fact, fact_group) + data = nil + Facter::Framework::Benchmarking::Timer.measure(searched_fact.name, 'cached') do + data = read_group_json(fact_group) + end + return unless data + + @log.debug("loading cached values for #{searched_fact.name} facts") + + create_facts(searched_fact, data) + end + + def read_group_json(group_name) + return @groups[group_name] if @groups.key?(group_name) + + cache_file_name = File.join(@cache_dir, group_name) + data = nil + file = Util::FileHelper.safe_read(cache_file_name) + begin + data = JSON.parse(file) + rescue JSON::ParserError + delete_cache(group_name) + end + @groups[group_name] = data + end + + def delete_cache(group_name) + cache_file_name = File.join(@cache_dir, group_name) + File.delete(cache_file_name) if File.readable?(cache_file_name) + end + + def create_facts(searched_fact, data) + if searched_fact.type == :file + facts = [] + data.each do |fact_name, fact_value| + fact = Facter::ResolvedFact.new(fact_name, fact_value, searched_fact.type, + searched_fact.user_query, searched_fact.filter_tokens, searched_fact.cache_group) + fact.file = searched_fact.file + facts << fact + end + facts + else + [Facter::ResolvedFact.new(searched_fact.name, data[searched_fact.name], searched_fact.type, + searched_fact.user_query, searched_fact.filter_tokens, searched_fact.cache_group)] + end + end + end + end +end diff --git a/lib/facter/framework/core/cache/cache_writer.rb b/lib/facter/framework/core/cache/cache_writer.rb new file mode 100644 index 0000000000..3d8b19efef --- /dev/null +++ b/lib/facter/framework/core/cache/cache_writer.rb @@ -0,0 +1,68 @@ + +module Facter + module Cache + class CacheWriter + + def initialize + @log = Log.new(self) + @groups = {} + @fact_groups = Facter::FactGroups.new + @cache_dir = LegacyFacter::Util::Config.facts_cache_dir + end + + def cache_facts(resolved_facts) + return unless Options[:cache] && Options[:ttls].any? + + resolved_facts + .select { |resolved_fact| resolved_fact.cache_group != nil } + .group_by { |resolved_fact| resolved_fact.cache_group } + .each do |group_name, array_of_facts| + @groups[group_name] ||= {} + array_of_facts.each { |resolved_fact| @groups[group_name][resolved_fact.name] = resolved_fact.value} + end + + begin + write_cache unless @groups.empty? + rescue Errno::EACCES => e + @log.warn("Could not write cache: #{e.message}") + end + end + + private + + def write_cache + unless File.directory?(@cache_dir) + require 'fileutils' + FileUtils.mkdir_p(@cache_dir) + end + + @groups.each do |group_name, data| + next unless check_ttls?(group_name, @fact_groups.get_group_ttls(group_name)) + + cache_file_name = File.join(@cache_dir, group_name) + next if File.readable?(cache_file_name) + + @log.debug("caching values for #{group_name} facts") + File.write(cache_file_name, JSON.pretty_generate(data)) + end + end + + def check_ttls?(group_name, ttls) + return false unless ttls + + cache_file_name = File.join(@cache_dir, group_name) + if File.readable?(cache_file_name) + file_time = File.mtime(cache_file_name) + expire_date = file_time + ttls + return true if expire_date > Time.now + + File.delete(cache_file_name) + end + + @log.debug("#{group_name} facts cache file expired/missing") + true + end + end + end +end + diff --git a/lib/facter/framework/core/cache_manager.rb b/lib/facter/framework/core/cache_manager.rb deleted file mode 100644 index db6b832862..0000000000 --- a/lib/facter/framework/core/cache_manager.rb +++ /dev/null @@ -1,173 +0,0 @@ -# frozen_string_literal: true - -module Facter - class CacheManager - def initialize - @groups = {} - @log = Log.new(self) - @fact_groups = Facter::FactGroups.new - @cache_dir = LegacyFacter::Util::Config.facts_cache_dir - end - - def resolve_facts(searched_facts) - return searched_facts, [] if (!File.directory?(@cache_dir) || !Options[:cache]) && Options[:ttls].any? - - facts = [] - searched_facts.delete_if do |fact| - res = resolve_fact(fact) - if res - facts << res - true - else - false - end - end - - [searched_facts, facts.flatten] - end - - def cache_facts(resolved_facts) - return unless Options[:cache] && Options[:ttls].any? - - resolved_facts.each do |fact| - cache_fact(fact) - end - - begin - write_cache unless @groups.empty? - rescue Errno::EACCES => e - @log.warn("Could not write cache: #{e.message}") - end - end - - def fact_cache_enabled?(fact_name) - fact = @fact_groups.get_fact(fact_name) - cached = if fact - !fact[:ttls].nil? - else - false - end - - fact_group = @fact_groups.get_fact_group(fact_name) - delete_cache(fact_group) if fact_group && !cached - cached - end - - private - - def resolve_fact(searched_fact) - fact_name = if searched_fact.file - File.basename(searched_fact.file) - else - searched_fact.name - end - - return unless fact_cache_enabled?(fact_name) - - fact = @fact_groups.get_fact(fact_name) - - return unless fact - - return unless check_ttls?(fact[:group], fact[:ttls]) - - read_fact(searched_fact, fact[:group]) - end - - def read_fact(searched_fact, fact_group) - data = nil - Facter::Framework::Benchmarking::Timer.measure(searched_fact.name, 'cached') do - data = read_group_json(fact_group) - end - return unless data - - @log.debug("loading cached values for #{searched_fact.name} facts") - - create_facts(searched_fact, data) - end - - def create_facts(searched_fact, data) - if searched_fact.type == :file - facts = [] - data.each do |fact_name, fact_value| - fact = Facter::ResolvedFact.new(fact_name, fact_value, searched_fact.type, - searched_fact.user_query, searched_fact.filter_tokens) - fact.file = searched_fact.file - facts << fact - end - facts - else - [Facter::ResolvedFact.new(searched_fact.name, data[searched_fact.name], searched_fact.type, - searched_fact.user_query, searched_fact.filter_tokens)] - end - end - - def cache_fact(fact) - fact_name = if fact.file - File.basename(fact.file) - else - fact.name - end - - group_name = @fact_groups.get_fact_group(fact_name) - - return if !group_name || fact.value.nil? - - return unless fact_cache_enabled?(fact_name) - - @groups[group_name] ||= {} - @groups[group_name][fact.name] = fact.value - end - - def write_cache - unless File.directory?(@cache_dir) - require 'fileutils' - FileUtils.mkdir_p(@cache_dir) - end - - @groups.each do |group_name, data| - next unless check_ttls?(group_name, @fact_groups.get_group_ttls(group_name)) - - cache_file_name = File.join(@cache_dir, group_name) - next if File.readable?(cache_file_name) - - @log.debug("caching values for #{group_name} facts") - File.write(cache_file_name, JSON.pretty_generate(data)) - end - end - - def read_group_json(group_name) - return @groups[group_name] if @groups.key?(group_name) - - cache_file_name = File.join(@cache_dir, group_name) - data = nil - file = Util::FileHelper.safe_read(cache_file_name) - begin - data = JSON.parse(file) - rescue JSON::ParserError - delete_cache(group_name) - end - @groups[group_name] = data - end - - def check_ttls?(group_name, ttls) - return false unless ttls - - cache_file_name = File.join(@cache_dir, group_name) - if File.readable?(cache_file_name) - file_time = File.mtime(cache_file_name) - expire_date = file_time + ttls - return true if expire_date > Time.now - - File.delete(cache_file_name) - end - - @log.debug("#{group_name} facts cache file expired/missing") - true - end - - def delete_cache(group_name) - cache_file_name = File.join(@cache_dir, group_name) - File.delete(cache_file_name) if File.readable?(cache_file_name) - end - end -end diff --git a/lib/facter/framework/core/fact/external/external_fact_manager.rb b/lib/facter/framework/core/fact/external/external_fact_manager.rb index f696dbf81b..fa8624b36d 100644 --- a/lib/facter/framework/core/fact/external/external_fact_manager.rb +++ b/lib/facter/framework/core/fact/external/external_fact_manager.rb @@ -18,7 +18,7 @@ def external_facts(custom_facts) custom_facts.each do |custom_fact| fact = LegacyFacter[custom_fact.name] - resolved_fact = ResolvedFact.new(custom_fact.name, fact.value, :custom) + resolved_fact = ResolvedFact.new(custom_fact.name, fact.value, :custom, nil, [], custom_fact.cache_group) resolved_fact.filter_tokens = [] resolved_fact.user_query = custom_fact.user_query resolved_fact.file = fact.options[:file] diff --git a/lib/facter/framework/core/fact/internal/internal_fact_manager.rb b/lib/facter/framework/core/fact/internal/internal_fact_manager.rb index 25afd2e066..2c3001b104 100644 --- a/lib/facter/framework/core/fact/internal/internal_fact_manager.rb +++ b/lib/facter/framework/core/fact/internal/internal_fact_manager.rb @@ -22,7 +22,7 @@ def filter_internal_facts(searched_facts) def resolve_nil_facts(searched_facts) resolved_facts = [] searched_facts.select { |fact| fact.type == :nil }.each do |fact| - resolved_facts << ResolvedFact.new(fact.name, nil, :nil, fact.name) + resolved_facts << ResolvedFact.new(fact.name, nil, :nil, fact.name,[], fact.cache_group) end resolved_facts diff --git a/lib/facter/framework/core/fact_augmenter.rb b/lib/facter/framework/core/fact_augmenter.rb index a87f4d8f1c..892a8da7b1 100644 --- a/lib/facter/framework/core/fact_augmenter.rb +++ b/lib/facter/framework/core/fact_augmenter.rb @@ -16,7 +16,7 @@ def self.augment_resolved_facts(searched_facts, resolved_facts) private_class_method def self.get_resolved_facts_for_searched_fact(searched_fact, resolved_facts) if searched_fact.name.include?('.*') resolved_facts - .select { |resolved_fact| resolved_fact.name.match(searched_fact.user_query) } + .select { |resolved_fact| resolved_fact.name.match(searched_fact.name) } .reject(&:user_query) .uniq(&:name) else @@ -31,6 +31,7 @@ def self.augment_resolved_facts(searched_facts, resolved_facts) matched_facts.each do |matched_fact| matched_fact.user_query = searched_fact.user_query matched_fact.filter_tokens = searched_fact.filter_tokens + matched_fact.cache_group = searched_fact.cache_group end end end diff --git a/lib/facter/framework/core/fact_manager.rb b/lib/facter/framework/core/fact_manager.rb index dfa005a509..c84699d016 100644 --- a/lib/facter/framework/core/fact_manager.rb +++ b/lib/facter/framework/core/fact_manager.rb @@ -20,14 +20,18 @@ def resolve_facts(user_query = []) loaded_facts = @fact_loader.load(Options.get) searched_facts = QueryParser.parse(user_query, loaded_facts) - cache_manager = Facter::CacheManager.new - searched_facts, cached_facts = cache_manager.resolve_facts(searched_facts) + cache_augmenter = Facter::Cache::CacheAugmenter.new + cache_reader = Facter::Cache::CacheReader.new + cache_writer = Facter::Cache::CacheWriter.new + + cache_augmenter.augment_with_cache_group(searched_facts) + searched_facts, cached_facts = cache_reader.read_from_cache(searched_facts) internal_facts = @internal_fact_mgr.resolve_facts(searched_facts) external_facts = @external_fact_mgr.resolve_facts(searched_facts) resolved_facts = override_core_facts(internal_facts, external_facts) - cache_manager.cache_facts(resolved_facts) + cache_writer.cache_facts(resolved_facts) resolved_facts = resolved_facts.concat(cached_facts) FactFilter.new.filter_facts!(resolved_facts) diff --git a/lib/facter/framework/core/file_loader.rb b/lib/facter/framework/core/file_loader.rb index 69d52b27cf..5e2f63c7a5 100644 --- a/lib/facter/framework/core/file_loader.rb +++ b/lib/facter/framework/core/file_loader.rb @@ -37,6 +37,7 @@ def load_dir(*dirs) load_dir(%w[resolvers utils]) load_dir(['resolvers']) load_dir(['facts_utils']) +load_dir(%w[framework core cache]) load_dir(%w[framework core]) load_dir(['models']) load_dir(%w[framework benchmarking]) diff --git a/lib/facter/models/resolved_fact.rb b/lib/facter/models/resolved_fact.rb index 1d2597f47e..628b832722 100644 --- a/lib/facter/models/resolved_fact.rb +++ b/lib/facter/models/resolved_fact.rb @@ -3,14 +3,15 @@ module Facter class ResolvedFact attr_reader :name, :type - attr_accessor :user_query, :filter_tokens, :value, :file + attr_accessor :user_query, :filter_tokens, :value, :file, :cache_group - def initialize(name, value = '', type = :core, user_query = nil, filter_tokens = []) + def initialize(name, value = '', type = :core, user_query = nil, filter_tokens = [], cache_group = nil) @name = name @value = Utils.deep_stringify_keys(value) @type = type @user_query = user_query @filter_tokens = filter_tokens + @cache_group = cache_group end def legacy? diff --git a/lib/facter/models/searched_fact.rb b/lib/facter/models/searched_fact.rb index 40374f215a..e4dcff224a 100644 --- a/lib/facter/models/searched_fact.rb +++ b/lib/facter/models/searched_fact.rb @@ -3,7 +3,7 @@ module Facter class SearchedFact attr_reader :name, :fact_class, :filter_tokens, :user_query, :type - attr_accessor :file + attr_accessor :file, :cache_group def initialize(fact_name, fact_class, filter_tokens, user_query, type) @name = fact_name diff --git a/lib/facter/resolvers/identity_resolver.rb b/lib/facter/resolvers/identity_resolver.rb index c63291b61e..d304772551 100644 --- a/lib/facter/resolvers/identity_resolver.rb +++ b/lib/facter/resolvers/identity_resolver.rb @@ -18,7 +18,7 @@ def retrieve_identity(fact_name) login_info = Etc.getpwuid @fact_list[:gid] = login_info.gid - @fact_list[:group] = Etc.getgrgid(login_info.gid).name + @fact_list[:cache_group] = Etc.getgrgid(login_info.gid).name @fact_list[:privileged] = login_info.uid.zero? @fact_list[:uid] = login_info.uid @fact_list[:user] = login_info.name diff --git a/spec/facter/cache_manager_spec.rb b/spec/facter/cache_manager_spec.rb index a07020bf56..4e3112e474 100644 --- a/spec/facter/cache_manager_spec.rb +++ b/spec/facter/cache_manager_spec.rb @@ -25,8 +25,8 @@ let(:group_name) { 'operating system' } let(:cache_file_name) { File.join(cache_dir, group_name) } let(:fact_groups) { instance_spy(Facter::FactGroups) } - let(:os_fact) { { ttls: 60, group: 'operating system' } } - let(:external_fact) { { ttls: 60, group: 'ext_file.txt' } } + let(:os_fact) { {ttls: 60, cache_group: 'operating system' } } + let(:external_fact) { {ttls: 60, cache_group: 'ext_file.txt' } } before do allow(LegacyFacter::Util::Config).to receive(:facts_cache_dir).and_return(cache_dir) diff --git a/spec/facter/facts/aix/identity/group_spec.rb b/spec/facter/facts/aix/identity/group_spec.rb index b2142d7d66..7b9a657cd5 100644 --- a/spec/facter/facts/aix/identity/group_spec.rb +++ b/spec/facter/facts/aix/identity/group_spec.rb @@ -7,12 +7,12 @@ let(:value) { 'staff' } before do - allow(Facter::Resolvers::PosxIdentity).to receive(:resolve).with(:group).and_return(value) + allow(Facter::Resolvers::PosxIdentity).to receive(:resolve).with(:cache_group).and_return(value) end it 'calls Facter::Resolvers::PosxIdentity' do fact.call_the_resolver - expect(Facter::Resolvers::PosxIdentity).to have_received(:resolve).with(:group) + expect(Facter::Resolvers::PosxIdentity).to have_received(:resolve).with(:cache_group) end it 'returns identity group fact' do diff --git a/spec/facter/facts/freebsd/identity/group_spec.rb b/spec/facter/facts/freebsd/identity/group_spec.rb index 9998055370..eb23f21c2b 100644 --- a/spec/facter/facts/freebsd/identity/group_spec.rb +++ b/spec/facter/facts/freebsd/identity/group_spec.rb @@ -7,12 +7,12 @@ let(:value) { 'staff' } before do - allow(Facter::Resolvers::PosxIdentity).to receive(:resolve).with(:group).and_return(value) + allow(Facter::Resolvers::PosxIdentity).to receive(:resolve).with(:cache_group).and_return(value) end it 'calls Facter::Resolvers::PosxIdentity' do fact.call_the_resolver - expect(Facter::Resolvers::PosxIdentity).to have_received(:resolve).with(:group) + expect(Facter::Resolvers::PosxIdentity).to have_received(:resolve).with(:cache_group) end it 'returns identity group fact' do diff --git a/spec/facter/facts/linux/identity/group_spec.rb b/spec/facter/facts/linux/identity/group_spec.rb index 7962f7433c..4266dd8f3b 100644 --- a/spec/facter/facts/linux/identity/group_spec.rb +++ b/spec/facter/facts/linux/identity/group_spec.rb @@ -7,12 +7,12 @@ let(:value) { 'staff' } before do - allow(Facter::Resolvers::PosxIdentity).to receive(:resolve).with(:group).and_return(value) + allow(Facter::Resolvers::PosxIdentity).to receive(:resolve).with(:cache_group).and_return(value) end it 'calls Facter::Resolvers::PosxIdentity' do fact.call_the_resolver - expect(Facter::Resolvers::PosxIdentity).to have_received(:resolve).with(:group) + expect(Facter::Resolvers::PosxIdentity).to have_received(:resolve).with(:cache_group) end it 'returns identity group fact' do diff --git a/spec/facter/facts/macosx/identity/group_spec.rb b/spec/facter/facts/macosx/identity/group_spec.rb index 57d0bc2783..140ee70ef8 100644 --- a/spec/facter/facts/macosx/identity/group_spec.rb +++ b/spec/facter/facts/macosx/identity/group_spec.rb @@ -7,12 +7,12 @@ let(:value) { 'staff' } before do - allow(Facter::Resolvers::PosxIdentity).to receive(:resolve).with(:group).and_return(value) + allow(Facter::Resolvers::PosxIdentity).to receive(:resolve).with(:cache_group).and_return(value) end it 'calls Facter::Resolvers::PosxIdentity' do fact.call_the_resolver - expect(Facter::Resolvers::PosxIdentity).to have_received(:resolve).with(:group) + expect(Facter::Resolvers::PosxIdentity).to have_received(:resolve).with(:cache_group) end it 'returns identity group fact' do diff --git a/spec/facter/facts/solaris/identity/group_spec.rb b/spec/facter/facts/solaris/identity/group_spec.rb index 333d0589af..ea4c8fb4b2 100644 --- a/spec/facter/facts/solaris/identity/group_spec.rb +++ b/spec/facter/facts/solaris/identity/group_spec.rb @@ -7,12 +7,12 @@ let(:value) { 'staff' } before do - allow(Facter::Resolvers::PosxIdentity).to receive(:resolve).with(:group).and_return(value) + allow(Facter::Resolvers::PosxIdentity).to receive(:resolve).with(:cache_group).and_return(value) end it 'calls Facter::Resolvers::PosxIdentity' do fact.call_the_resolver - expect(Facter::Resolvers::PosxIdentity).to have_received(:resolve).with(:group) + expect(Facter::Resolvers::PosxIdentity).to have_received(:resolve).with(:cache_group) end it 'returns identity group fact' do diff --git a/spec/facter/resolvers/identity_resolver_spec.rb b/spec/facter/resolvers/identity_resolver_spec.rb index d789483db9..39f6657046 100644 --- a/spec/facter/resolvers/identity_resolver_spec.rb +++ b/spec/facter/resolvers/identity_resolver_spec.rb @@ -35,7 +35,7 @@ end describe 'GROUP' do - it_behaves_like 'a resolved fact', :group, 'staff' + it_behaves_like 'a resolved fact', :cache_group, 'staff' end describe 'PRIVILEGED' do