facter 4.1.1 → 4.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE +202 -0
- data/lib/facter.rb +11 -17
- data/lib/facter/config.rb +2 -0
- data/lib/facter/custom_facts/core/execution/posix.rb +2 -2
- data/lib/facter/custom_facts/core/execution/windows.rb +1 -1
- data/lib/facter/custom_facts/core/file_loader.rb +0 -1
- data/lib/facter/custom_facts/core/legacy_facter.rb +0 -2
- data/lib/facter/custom_facts/core/resolvable.rb +1 -1
- data/lib/facter/custom_facts/util/collection.rb +6 -4
- data/lib/facter/custom_facts/util/confine.rb +9 -3
- data/lib/facter/custom_facts/util/directory_loader.rb +19 -7
- data/lib/facter/custom_facts/util/fact.rb +12 -10
- data/lib/facter/custom_facts/util/loader.rb +5 -1
- data/lib/facter/custom_facts/util/parser.rb +8 -2
- data/lib/facter/custom_facts/util/resolution.rb +5 -1
- data/lib/facter/custom_facts/util/windows_root.rb +2 -1
- data/lib/facter/facts/freebsd/is_virtual.rb +1 -5
- data/lib/facter/facts/freebsd/virtual.rb +1 -2
- data/lib/facter/facts/linux/az_metadata.rb +1 -5
- data/lib/facter/facts/linux/cloud/provider.rb +1 -5
- data/lib/facter/facts/linux/ec2_metadata.rb +1 -5
- data/lib/facter/facts/linux/ec2_userdata.rb +1 -5
- data/lib/facter/facts/linux/hypervisors/xen.rb +1 -2
- data/lib/facter/facts/linux/is_virtual.rb +1 -5
- data/lib/facter/facts/linux/virtual.rb +1 -2
- data/lib/facter/facts/macosx/os/macosx/version.rb +6 -3
- data/lib/facter/facts/windows/az_metadata.rb +1 -1
- data/lib/facter/facts/windows/cloud/provider.rb +1 -1
- data/lib/facter/facts/windows/ec2_metadata.rb +1 -1
- data/lib/facter/facts/windows/ec2_userdata.rb +1 -1
- data/lib/facter/facts/windows/gce.rb +1 -1
- data/lib/facter/facts/windows/hypervisors/hyperv.rb +1 -1
- data/lib/facter/facts/windows/hypervisors/kvm.rb +2 -1
- data/lib/facter/facts/windows/hypervisors/virtualbox.rb +2 -2
- data/lib/facter/facts/windows/hypervisors/vmware.rb +1 -1
- data/lib/facter/facts/windows/hypervisors/xen.rb +3 -1
- data/lib/facter/facts/windows/is_virtual.rb +15 -0
- data/lib/facter/facts/windows/virtual.rb +15 -0
- data/lib/facter/framework/cli/cli.rb +13 -15
- data/lib/facter/framework/core/cache_manager.rb +2 -2
- data/lib/facter/framework/core/fact/external/external_fact_manager.rb +0 -1
- data/lib/facter/framework/core/fact/internal/internal_fact_manager.rb +39 -39
- data/lib/facter/framework/core/fact_filter.rb +4 -14
- data/lib/facter/framework/core/fact_loaders/fact_loader.rb +0 -1
- data/lib/facter/framework/core/fact_manager.rb +11 -0
- data/lib/facter/framework/core/file_loader.rb +1 -1
- data/lib/facter/framework/logging/logger.rb +61 -0
- data/lib/facter/framework/parsers/query_parser.rb +6 -16
- data/lib/facter/models/fact_collection.rb +20 -3
- data/lib/facter/models/resolved_fact.rb +2 -3
- data/lib/facter/models/searched_fact.rb +2 -3
- data/lib/facter/resolvers/ec2.rb +8 -1
- data/lib/facter/resolvers/linux/networking.rb +18 -1
- data/lib/facter/resolvers/lsb_release.rb +1 -2
- data/lib/facter/resolvers/mountpoints.rb +16 -8
- data/lib/facter/resolvers/networking.rb +3 -1
- data/lib/facter/resolvers/os_release.rb +7 -4
- data/lib/facter/resolvers/partitions.rb +1 -3
- data/lib/facter/resolvers/ruby.rb +1 -1
- data/lib/facter/resolvers/windows/ffi/identity_ffi.rb +5 -0
- data/lib/facter/resolvers/windows/ffi/kernel_ffi.rb +1 -1
- data/lib/facter/resolvers/windows/identity.rb +1 -6
- data/lib/facter/resolvers/windows/virtualization.rb +46 -44
- data/lib/facter/resolvers/xen.rb +6 -1
- data/lib/facter/util/facts/posix/virtual_detector.rb +74 -0
- data/lib/facter/util/linux/dhcp.rb +4 -1
- data/lib/facter/util/linux/if_inet6.rb +73 -0
- data/lib/facter/util/linux/socket_parser.rb +17 -2
- data/lib/facter/version.rb +1 -1
- metadata +48 -11
- data/lib/facter/custom_facts/core/logging.rb +0 -203
- data/lib/facter/facts/windows/virtualization/is_virtual.rb +0 -17
- data/lib/facter/facts/windows/virtualization/virtual.rb +0 -17
- data/lib/facter/framework/core/fact_augmenter.rb +0 -54
- data/lib/facter/util/facts/virtual_detector.rb +0 -83
@@ -1,17 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Facts
|
4
|
-
module Windows
|
5
|
-
module Virtualization
|
6
|
-
class IsVirtual
|
7
|
-
FACT_NAME = 'is_virtual'
|
8
|
-
|
9
|
-
def call_the_resolver
|
10
|
-
fact_value = Facter::Resolvers::Virtualization.resolve(:is_virtual)
|
11
|
-
|
12
|
-
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Facts
|
4
|
-
module Windows
|
5
|
-
module Virtualization
|
6
|
-
class Virtual
|
7
|
-
FACT_NAME = 'virtual'
|
8
|
-
|
9
|
-
def call_the_resolver
|
10
|
-
fact_value = Facter::Resolvers::Virtualization.resolve(:virtual)
|
11
|
-
|
12
|
-
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,54 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Facter
|
4
|
-
module FactAugmenter
|
5
|
-
def self.augment_resolved_facts(searched_facts, resolved_facts)
|
6
|
-
augumented_resolved_facts = []
|
7
|
-
searched_facts.each do |searched_fact|
|
8
|
-
matched_facts = get_resolved_facts_for_searched_fact(searched_fact, resolved_facts)
|
9
|
-
augment_resolved_fact_for_user_query!(searched_fact, matched_facts)
|
10
|
-
augumented_resolved_facts.concat(matched_facts)
|
11
|
-
end
|
12
|
-
|
13
|
-
augumented_resolved_facts
|
14
|
-
end
|
15
|
-
|
16
|
-
private_class_method def self.get_resolved_facts_for_searched_fact(searched_fact, resolved_facts)
|
17
|
-
if searched_fact.name.include?('.*')
|
18
|
-
resolved_facts
|
19
|
-
.select { |resolved_fact| resolved_fact.name.match(searched_fact.name) }
|
20
|
-
.reject(&:user_query)
|
21
|
-
.uniq(&:name)
|
22
|
-
else
|
23
|
-
resolved_facts.select do |resolved_fact|
|
24
|
-
valid_fact(searched_fact, resolved_fact)
|
25
|
-
end.reject(&:user_query).uniq(&:name)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
private_class_method def self.augment_resolved_fact_for_user_query!(searched_fact, matched_facts)
|
30
|
-
matched_facts.each do |matched_fact|
|
31
|
-
matched_fact.user_query = searched_fact.user_query
|
32
|
-
matched_fact.filter_tokens = searched_fact.filter_tokens
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
private_class_method def self.valid_fact(searched_fact, resolved_fact)
|
37
|
-
return false unless searched_fact.name.eql?(resolved_fact.name)
|
38
|
-
|
39
|
-
if searched_fact.filter_tokens.any?
|
40
|
-
case resolved_fact.value
|
41
|
-
when Array, Hash
|
42
|
-
begin
|
43
|
-
resolved_fact.value.dig(*searched_fact.filter_tokens)
|
44
|
-
rescue TypeError
|
45
|
-
return false
|
46
|
-
end
|
47
|
-
else
|
48
|
-
return false
|
49
|
-
end
|
50
|
-
end
|
51
|
-
true
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
@@ -1,83 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Facter
|
4
|
-
module Util
|
5
|
-
module Facts
|
6
|
-
class VirtualDetector
|
7
|
-
def initialize
|
8
|
-
@log = Facter::Log.new(self)
|
9
|
-
end
|
10
|
-
|
11
|
-
def platform
|
12
|
-
@@fact_value ||= check_docker_lxc || check_freebsd || check_gce || retrieve_from_virt_what
|
13
|
-
@@fact_value ||= check_vmware || check_open_vz || check_vserver || check_xen || check_other_facts
|
14
|
-
@@fact_value ||= check_lspci || 'physical'
|
15
|
-
|
16
|
-
@@fact_value
|
17
|
-
end
|
18
|
-
|
19
|
-
private
|
20
|
-
|
21
|
-
def check_docker_lxc
|
22
|
-
@log.debug('Checking Docker and LXC')
|
23
|
-
Facter::Resolvers::Containers.resolve(:vm)
|
24
|
-
end
|
25
|
-
|
26
|
-
def check_gce
|
27
|
-
@log.debug('Checking GCE')
|
28
|
-
bios_vendor = Facter::Resolvers::Linux::DmiBios.resolve(:bios_vendor)
|
29
|
-
'gce' if bios_vendor&.include?('Google')
|
30
|
-
end
|
31
|
-
|
32
|
-
def check_vmware
|
33
|
-
@log.debug('Checking VMware')
|
34
|
-
Facter::Resolvers::Vmware.resolve(:vm)
|
35
|
-
end
|
36
|
-
|
37
|
-
def retrieve_from_virt_what
|
38
|
-
@log.debug('Checking virtual_what')
|
39
|
-
Facter::Resolvers::VirtWhat.resolve(:vm)
|
40
|
-
end
|
41
|
-
|
42
|
-
def check_open_vz
|
43
|
-
@log.debug('Checking OpenVZ')
|
44
|
-
Facter::Resolvers::OpenVz.resolve(:vm)
|
45
|
-
end
|
46
|
-
|
47
|
-
def check_vserver
|
48
|
-
@log.debug('Checking VServer')
|
49
|
-
Facter::Resolvers::VirtWhat.resolve(:vserver)
|
50
|
-
end
|
51
|
-
|
52
|
-
def check_xen
|
53
|
-
@log.debug('Checking XEN')
|
54
|
-
Facter::Resolvers::Xen.resolve(:vm)
|
55
|
-
end
|
56
|
-
|
57
|
-
def check_freebsd
|
58
|
-
return unless Object.const_defined?('Facter::Resolvers::Freebsd::Virtual')
|
59
|
-
|
60
|
-
@log.debug('Checking if jailed')
|
61
|
-
Facter::Resolvers::Freebsd::Virtual.resolve(:vm)
|
62
|
-
end
|
63
|
-
|
64
|
-
def check_other_facts
|
65
|
-
@log.debug('Checking others')
|
66
|
-
product_name = Facter::Resolvers::Linux::DmiBios.resolve(:product_name)
|
67
|
-
bios_vendor = Facter::Resolvers::Linux::DmiBios.resolve(:bios_vendor)
|
68
|
-
return 'kvm' if bios_vendor&.include?('Amazon EC2')
|
69
|
-
return unless product_name
|
70
|
-
|
71
|
-
Facter::Util::Facts::HYPERVISORS_HASH.each { |key, value| return value if product_name.include?(key) }
|
72
|
-
|
73
|
-
nil
|
74
|
-
end
|
75
|
-
|
76
|
-
def check_lspci
|
77
|
-
@log.debug('Checking lspci')
|
78
|
-
Facter::Resolvers::Lspci.resolve(:vm)
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|