Skip to content

Commit 0168116

Browse files
committed
(FACT-3468) Create Log instance in the base resolver's init_resolver method
Previously, some resolvers eagerly created a Log, while others relied on the BaseResolver to lazily create it. Now eagerly create the Log in the BaseResolver's init_resolver method, which all derived resolvers already call. This preserves the behavior where the derived class' name is printed in the log message: DEBUG Facter::Resolvers::LsbRelease - Command lsb_release ... This is because `Log.new(self)` refers to the derived resolver class, e.g. Facter::Resolvers::LsbRelease, not the BaseResolver. The base_resolver_spec tests were modified because they were testing that Facter::Log.new was called a certain way. Instead test the behavior that `BaseResolver.log` method returns an instance of Facter::Log and calling the method multiple times returns the same object.
1 parent 2ab655b commit 0168116

30 files changed

+9
-65
lines changed

lib/facter/resolvers/base_resolver.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
module Facter
44
module Resolvers
55
class BaseResolver
6-
def self.log
7-
@log ||= Log.new(self)
6+
class << self
7+
attr_reader :log
88
end
99

1010
def self.invalidate_cache
@@ -14,6 +14,7 @@ def self.invalidate_cache
1414
def self.init_resolver
1515
@fact_list = {}
1616
@semaphore = Mutex.new
17+
@log = Log.new(self)
1718
end
1819

1920
def self.subscribe_to_manager

lib/facter/resolvers/bsd/processors.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ module Resolvers
55
module Bsd
66
class Processors < BaseResolver
77
init_resolver
8-
@log = Facter::Log.new(self)
98

109
class << self
1110
private

lib/facter/resolvers/disks.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ module Facter
44
module Resolvers
55
module Linux
66
class Disks < BaseResolver
7-
@log = Facter::Log.new(self)
8-
97
init_resolver
108

119
DIR = '/sys/block'

lib/facter/resolvers/dmi.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ module Facter
44
module Resolvers
55
module Linux
66
class DmiBios < BaseResolver
7-
@log = Facter::Log.new(self)
8-
97
init_resolver
108

119
class << self

lib/facter/resolvers/filesystems.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ class Filesystems < BaseResolver
88

99
init_resolver
1010

11-
@log = Facter::Log.new(self)
12-
1311
class << self
1412
private
1513

lib/facter/resolvers/fips_enabled.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ class FipsEnabled < BaseResolver
88

99
init_resolver
1010

11-
@log = Facter::Log.new(self)
12-
1311
class << self
1412
private
1513

lib/facter/resolvers/freebsd/processors.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ module Resolvers
77
module Freebsd
88
class Processors < BaseResolver
99
init_resolver
10-
@log = Facter::Log.new(self)
1110

1211
class << self
1312
private

lib/facter/resolvers/identity.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
module Facter
44
module Resolvers
55
class PosxIdentity < BaseResolver
6-
@log = Facter::Log.new(self)
7-
86
init_resolver
97

108
class << self

lib/facter/resolvers/macosx/mountpoints.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ class Mountpoints < BaseResolver
77
include Facter::Util::Resolvers::FilesystemHelper
88
init_resolver
99

10-
@log = Facter::Log.new(self)
11-
1210
class << self
1311
private
1412

lib/facter/resolvers/memory.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ module Linux
66
class Memory < BaseResolver
77
init_resolver
88

9-
@log = Facter::Log.new(self)
10-
119
class << self
1210
private
1311

lib/facter/resolvers/mountpoints.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ class Mountpoints < BaseResolver
77

88
init_resolver
99

10-
@log = Facter::Log.new(self)
11-
1210
class << self
1311
private
1412

lib/facter/resolvers/processors.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ module Facter
44
module Resolvers
55
module Linux
66
class Processors < BaseResolver
7-
@log = Facter::Log.new(self)
8-
97
init_resolver
108

119
MHZ_TO_HZ = 1_000_000

lib/facter/resolvers/solaris/mountpoints.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ class Mountpoints < BaseResolver
77
include Facter::Util::Resolvers::FilesystemHelper
88
init_resolver
99

10-
@log = Facter::Log.new(self)
11-
1210
class << self
1311
private
1412

lib/facter/resolvers/solaris/networking.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ module Resolvers
66
module Solaris
77
class Networking < BaseResolver
88
init_resolver
9-
@log = Facter::Log.new(self)
109

1110
class << self
1211
private

lib/facter/resolvers/ssh.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
module Facter
44
module Resolvers
55
class Ssh < BaseResolver
6-
@log = Facter::Log.new(self)
7-
86
init_resolver
97

108
FILE_NAMES = %w[ssh_host_rsa_key.pub ssh_host_dsa_key.pub ssh_host_ecdsa_key.pub ssh_host_ed25519_key.pub].freeze

lib/facter/resolvers/uname.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
module Facter
44
module Resolvers
55
class Uname < BaseResolver
6-
@log = Facter::Log.new(self)
7-
86
init_resolver
97

108
class << self

lib/facter/resolvers/windows/dmi_bios.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
module Facter
44
module Resolvers
55
class DMIBios < BaseResolver
6-
@log = Facter::Log.new(self)
76
init_resolver
87

98
class << self

lib/facter/resolvers/windows/dmi_computersystem.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
module Facter
44
module Resolvers
55
class DMIComputerSystem < BaseResolver
6-
@log = Facter::Log.new(self)
76
init_resolver
87

98
class << self

lib/facter/resolvers/windows/hardware_architecture.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ def read_hardware_information(fact_name)
2424
build_facts_list(hardware: hard, architecture: arch)
2525
@fact_list[fact_name]
2626
rescue LoadError => e
27-
log = Facter::Log.new(self)
2827
log.debug("The ffi gem has not been installed: #{e}")
2928
end
3029

lib/facter/resolvers/windows/identity.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ module Facter
44
module Resolvers
55
class Identity < BaseResolver
66
NAME_SAM_COMPATIBLE = 2
7-
@log = Facter::Log.new(self)
87

98
init_resolver
109

lib/facter/resolvers/windows/kernel.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
module Facter
44
module Resolvers
55
class Kernel < BaseResolver
6-
@log = Facter::Log.new(self)
7-
86
init_resolver
97

108
class << self

lib/facter/resolvers/windows/memory.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
module Facter
44
module Resolvers
55
class Memory < BaseResolver
6-
@log = Facter::Log.new(self)
7-
86
init_resolver
97

108
class << self

lib/facter/resolvers/windows/networking.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ module Facter
44
module Resolvers
55
module Windows
66
class Networking < BaseResolver
7-
@log = Facter::Log.new(self)
87
init_resolver
98

109
class << self

lib/facter/resolvers/windows/ssh.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ module Facter
44
module Resolvers
55
module Windows
66
class Ssh < BaseResolver
7-
@log = Facter::Log.new(self)
8-
97
init_resolver
108

119
FILE_NAMES = %w[ssh_host_rsa_key.pub ssh_host_dsa_key.pub

lib/facter/resolvers/windows/system32.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
module Facter
44
module Resolvers
55
class System32 < BaseResolver
6-
@log = Facter::Log.new(self)
7-
86
init_resolver
97

108
class << self

lib/facter/resolvers/windows/timezone.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ def codepage_from_api
3434
require_relative '../../../facter/resolvers/windows/ffi/winnls_ffi'
3535
WinnlsFFI.GetACP.to_s
3636
rescue LoadError => e
37-
log = Facter::Log.new(self)
3837
log.debug("Could not retrieve codepage: #{e}")
3938
end
4039
end

lib/facter/resolvers/windows/uptime.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ module Facter
66
module Resolvers
77
module Windows
88
class Uptime < BaseResolver
9-
@log = Facter::Log.new(self)
10-
119
init_resolver
1210

1311
class << self

lib/facter/resolvers/windows/virtualization.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ module Facter
44
module Resolvers
55
module Windows
66
class Virtualization < BaseResolver
7-
@log = Facter::Log.new(self)
8-
97
init_resolver
108

119
class << self

lib/facter/resolvers/windows/win_os_description.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
module Facter
44
module Resolvers
55
class WinOsDescription < BaseResolver
6-
@log = Facter::Log.new(self)
7-
86
init_resolver
97

108
class << self

spec/facter/resolvers/base_resolver_spec.rb

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,12 @@ def self.post_resolve(fact_name, _options)
1414
end
1515

1616
describe '#log' do
17-
before do
18-
allow(Facter::Log).to receive(:new).with(resolver).and_return('logger')
17+
it 'returns the log' do
18+
expect(resolver.log).to be_an_instance_of(Facter::Log)
1919
end
2020

21-
it 'initializes the log' do
22-
resolver.log
23-
24-
expect(Facter::Log).to have_received(:new).with(resolver)
25-
end
26-
27-
it 'initializes the log only once' do
28-
resolver.log
29-
resolver.log
30-
31-
expect(Facter::Log).to have_received(:new).with(resolver).once
21+
it 'returns the same log instance each time' do
22+
expect(resolver.log).to be_equal(resolver.log)
3223
end
3324
end
3425

@@ -77,13 +68,12 @@ def self.post_resolve(fact_name, _options)
7768
context 'when Load Error is raised' do
7869
before do
7970
allow(resolver).to receive(:post_resolve).and_raise(LoadError)
80-
allow(Facter::Log).to receive(:new).with(resolver).and_return(instance_double(Facter::Log, error: nil))
8171
end
8272

8373
it 'logs the Load Error exception at the error level' do
84-
resolver.resolve(fact)
74+
expect(resolver.log).to receive(:error).with(/Resolving fact #{fact}, but got LoadError/)
8575

86-
expect(resolver.log).to have_received(:error).with(/Resolving fact #{fact}, but got LoadError/)
76+
resolver.resolve(fact)
8777
end
8878

8979
it 'sets the fact to nil' do

0 commit comments

Comments
 (0)