lib/facter/framework/parsers/query_parser.rb in facter-4.0.51 vs lib/facter/framework/parsers/query_parser.rb in facter-4.0.52

- old
+ new

@@ -67,15 +67,22 @@ def get_facts_matching_tokens(query_tokens, query_token_range, loaded_fact_hash) @log.debug "Checking query tokens #{query_tokens[query_token_range].join('.')}" resolvable_fact_list = [] loaded_fact_hash.each do |loaded_fact| - query_fact = query_tokens[query_token_range].join('.') + # return the fact if toplevel namespace is found in the first query token + # eg. query: 'os.name' and loaded_fact_hash contains a fact with 'os' name + # it will construt and return the 'os' fact + if loaded_fact.name == query_tokens[0] + resolvable_fact_list = [construct_loaded_fact(query_tokens, query_token_range, loaded_fact)] + else + query_fact = query_tokens[query_token_range].join('.') - next unless found_fact?(loaded_fact.name, query_fact) + next unless found_fact?(loaded_fact.name, query_fact) - searched_fact = construct_loaded_fact(query_tokens, query_token_range, loaded_fact) - resolvable_fact_list << searched_fact + searched_fact = construct_loaded_fact(query_tokens, query_token_range, loaded_fact) + resolvable_fact_list << searched_fact + end end @log.debug "List of resolvable facts: #{resolvable_fact_list.inspect}" resolvable_fact_list end