facter 4.0.35 → 4.0.36
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/lib/facter/custom_facts/util/directory_loader.rb +3 -1
- data/lib/facter/fact_groups.conf +140 -1
- data/lib/facter/facts/aix/disks.rb +17 -2
- data/lib/facter/facts/aix/networking/scope6.rb +3 -1
- data/lib/facter/facts/aix/scope6_interfaces.rb +0 -2
- data/lib/facter/facts/aix/serialnumber.rb +20 -0
- data/lib/facter/facts/aix/sshalgorithmkey.rb +17 -0
- data/lib/facter/facts/aix/sshfp_algorithm.rb +20 -0
- data/lib/facter/facts/debian/os/distro/release.rb +6 -1
- data/lib/facter/facts/freebsd/sshalgorithmkey.rb +17 -0
- data/lib/facter/facts/freebsd/sshfp_algorithm.rb +20 -0
- data/lib/facter/facts/linux/disks.rb +20 -1
- data/lib/facter/facts/linux/dmi/board/asset_tag.rb +19 -0
- data/lib/facter/facts/linux/ec2_metadata.rb +5 -3
- data/lib/facter/facts/linux/ec2_userdata.rb +5 -3
- data/lib/facter/facts/linux/gce.rb +16 -0
- data/lib/facter/facts/linux/is_virtual.rb +1 -3
- data/lib/facter/facts/linux/networking/scope6.rb +3 -1
- data/lib/facter/facts/linux/processors/speed.rb +17 -0
- data/lib/facter/facts/linux/scope6_interfaces.rb +1 -2
- data/lib/facter/facts/linux/sshfp_algorithm.rb +1 -1
- data/lib/facter/facts/linux/xen.rb +28 -0
- data/lib/facter/facts/macosx/networking/scope6.rb +3 -1
- data/lib/facter/facts/macosx/scope6_interfaces.rb +0 -2
- data/lib/facter/facts/macosx/sshfp_algorithm.rb +1 -1
- data/lib/facter/facts/solaris/disks.rb +21 -2
- data/lib/facter/facts/solaris/hypervisors/ldom.rb +24 -0
- data/lib/facter/facts/solaris/hypervisors/zone.rb +39 -0
- data/lib/facter/facts/solaris/is_virtual.rb +64 -0
- data/lib/facter/facts/solaris/kernelmajversion.rb +1 -1
- data/lib/facter/facts/solaris/ldom.rb +35 -0
- data/lib/facter/facts/solaris/sshalgorithmkey.rb +17 -0
- data/lib/facter/facts/solaris/sshfp_algorithm.rb +20 -0
- data/lib/facter/facts/solaris/virtual.rb +60 -0
- data/lib/facter/facts/solaris/zones.rb +1 -1
- data/lib/facter/facts/windows/ec2_metadata.rb +5 -3
- data/lib/facter/facts/windows/ec2_userdata.rb +5 -3
- data/lib/facter/facts/windows/gce.rb +16 -0
- data/lib/facter/facts/windows/networking/scope6.rb +3 -1
- data/lib/facter/facts/windows/sshalgorithmkey.rb +22 -0
- data/lib/facter/facts/windows/sshfp_algorithm.rb +25 -0
- data/lib/facter/facts_utils/facts_utils.rb +2 -0
- data/lib/facter/framework/core/fact/internal/core_fact.rb +2 -0
- data/lib/facter/framework/core/fact/internal/internal_fact_manager.rb +10 -25
- data/lib/facter/framework/core/fact_filter.rb +13 -0
- data/lib/facter/framework/core/fact_loaders/fact_loader.rb +24 -1
- data/lib/facter/framework/formatters/legacy_fact_formatter.rb +8 -1
- data/lib/facter/framework/formatters/yaml_fact_formatter.rb +1 -1
- data/lib/facter/resolvers/aix/serialnumber.rb +37 -0
- data/lib/facter/resolvers/dmi_resolver.rb +4 -3
- data/lib/facter/resolvers/ec2.rb +4 -18
- data/lib/facter/resolvers/gce.rb +54 -0
- data/lib/facter/resolvers/memory_resolver.rb +8 -1
- data/lib/facter/resolvers/processors_resolver.rb +24 -2
- data/lib/facter/resolvers/solaris/ldom.rb +70 -0
- data/lib/facter/resolvers/utils/http.rb +68 -0
- data/lib/facter/resolvers/xen.rb +28 -0
- data/lib/facter/version.rb +1 -1
- metadata +25 -2
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Linux
|
5
|
+
class Gce
|
6
|
+
FACT_NAME = 'gce'
|
7
|
+
|
8
|
+
def call_the_resolver
|
9
|
+
bios_vendor = Facter::Resolvers::Linux::DmiBios.resolve(:bios_vendor)
|
10
|
+
|
11
|
+
fact_value = bios_vendor&.include?('Google') ? Facter::Resolvers::Gce.resolve(:metadata) : nil
|
12
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -5,8 +5,6 @@ module Facts
|
|
5
5
|
class IsVirtual
|
6
6
|
FACT_NAME = 'is_virtual'
|
7
7
|
|
8
|
-
PHYSICAL_HYPERVISORS = %w[physical xen0 vmware_server vmware_workstation openvzhn vserver_host].freeze
|
9
|
-
|
10
8
|
def call_the_resolver # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
11
9
|
fact_value = check_docker_lxc || check_gce || retrieve_from_virt_what || check_vmware
|
12
10
|
fact_value ||= check_open_vz || check_vserver || check_xen || check_other_facts || check_lspci || 'physical'
|
@@ -59,7 +57,7 @@ module Facts
|
|
59
57
|
end
|
60
58
|
|
61
59
|
def check_if_virtual(found_vm)
|
62
|
-
PHYSICAL_HYPERVISORS.count(found_vm).zero?
|
60
|
+
Facter::FactsUtils::PHYSICAL_HYPERVISORS.count(found_vm).zero?
|
63
61
|
end
|
64
62
|
end
|
65
63
|
end
|
@@ -5,11 +5,13 @@ module Facts
|
|
5
5
|
module Networking
|
6
6
|
class Scope6
|
7
7
|
FACT_NAME = 'networking.scope6'
|
8
|
+
ALIASES = 'scope6'
|
8
9
|
|
9
10
|
def call_the_resolver
|
10
11
|
fact_value = Facter::Resolvers::NetworkingLinux.resolve(:scope6)
|
11
12
|
|
12
|
-
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
13
|
+
[Facter::ResolvedFact.new(FACT_NAME, fact_value),
|
14
|
+
Facter::ResolvedFact.new('scope6', fact_value, :legacy)]
|
13
15
|
end
|
14
16
|
end
|
15
17
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Linux
|
5
|
+
module Processors
|
6
|
+
class Speed
|
7
|
+
FACT_NAME = 'processors.speed'
|
8
|
+
|
9
|
+
def call_the_resolver
|
10
|
+
fact_value = Facter::Resolvers::Linux::Processors.resolve(:speed)
|
11
|
+
speed = Facter::FactsUtils::UnitConverter.hertz_to_human_readable(fact_value)
|
12
|
+
Facter::ResolvedFact.new(FACT_NAME, speed)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -9,14 +9,13 @@ module Facts
|
|
9
9
|
def call_the_resolver
|
10
10
|
resolved_facts = []
|
11
11
|
interfaces = Facter::Resolvers::NetworkingLinux.resolve(:interfaces)
|
12
|
-
primary_scope6 = Facter::Resolvers::NetworkingLinux.resolve(:scope6)
|
13
12
|
|
14
13
|
interfaces&.each do |interface_name, info|
|
15
14
|
if info[:scope6]
|
16
15
|
resolved_facts << Facter::ResolvedFact.new("scope6_#{interface_name}", info[:scope6], :legacy)
|
17
16
|
end
|
18
17
|
end
|
19
|
-
|
18
|
+
|
20
19
|
resolved_facts
|
21
20
|
end
|
22
21
|
end
|
@@ -11,7 +11,7 @@ module Facts
|
|
11
11
|
result = Facter::Resolvers::SshResolver.resolve(:ssh)
|
12
12
|
result.each do |ssh|
|
13
13
|
facts << Facter::ResolvedFact.new("sshfp_#{ssh.name.to_sym}",
|
14
|
-
"#{ssh.fingerprint.sha1}
|
14
|
+
"#{ssh.fingerprint.sha1}\n#{ssh.fingerprint.sha256}", :legacy)
|
15
15
|
end
|
16
16
|
facts
|
17
17
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Linux
|
5
|
+
class Xen
|
6
|
+
FACT_NAME = 'xen'
|
7
|
+
ALIASES = 'xendomains'
|
8
|
+
|
9
|
+
def call_the_resolver
|
10
|
+
xen_type = check_virt_what || check_xen
|
11
|
+
return Facter::ResolvedFact.new(FACT_NAME, nil) if !xen_type || xen_type != 'xen0'
|
12
|
+
|
13
|
+
domains = Facter::Resolvers::Xen.resolve(:domains) || []
|
14
|
+
|
15
|
+
[Facter::ResolvedFact.new(FACT_NAME, { domains: domains }),
|
16
|
+
Facter::ResolvedFact.new(ALIASES, domains.entries.join(','), :legacy)]
|
17
|
+
end
|
18
|
+
|
19
|
+
def check_virt_what
|
20
|
+
Facter::Resolvers::VirtWhat.resolve(:vm)
|
21
|
+
end
|
22
|
+
|
23
|
+
def check_xen
|
24
|
+
Facter::Resolvers::Xen.resolve(:vm)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -5,11 +5,13 @@ module Facts
|
|
5
5
|
module Networking
|
6
6
|
class Scope6
|
7
7
|
FACT_NAME = 'networking.scope6'
|
8
|
+
ALIASES = 'scope6'
|
8
9
|
|
9
10
|
def call_the_resolver
|
10
11
|
fact_value = Facter::Resolvers::Networking.resolve(:scope6)
|
11
12
|
|
12
|
-
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
13
|
+
[Facter::ResolvedFact.new(FACT_NAME, fact_value),
|
14
|
+
Facter::ResolvedFact.new('scope6', fact_value, :legacy)]
|
13
15
|
end
|
14
16
|
end
|
15
17
|
end
|
@@ -9,14 +9,12 @@ module Facts
|
|
9
9
|
def call_the_resolver
|
10
10
|
resolved_facts = []
|
11
11
|
interfaces = Facter::Resolvers::Networking.resolve(:interfaces)
|
12
|
-
primary_scope6 = Facter::Resolvers::Networking.resolve(:scope6)
|
13
12
|
|
14
13
|
interfaces&.each do |interface_name, info|
|
15
14
|
if info[:scope6]
|
16
15
|
resolved_facts << Facter::ResolvedFact.new("scope6_#{interface_name}", info[:scope6], :legacy)
|
17
16
|
end
|
18
17
|
end
|
19
|
-
resolved_facts << Facter::ResolvedFact.new('scope6', primary_scope6, :legacy) if primary_scope6
|
20
18
|
resolved_facts
|
21
19
|
end
|
22
20
|
end
|
@@ -11,7 +11,7 @@ module Facts
|
|
11
11
|
result = Facter::Resolvers::SshResolver.resolve(:ssh)
|
12
12
|
result.each do |ssh|
|
13
13
|
facts << Facter::ResolvedFact.new("sshfp_#{ssh.name.to_sym}",
|
14
|
-
"#{ssh.fingerprint.sha1}
|
14
|
+
"#{ssh.fingerprint.sha1}\n#{ssh.fingerprint.sha256}", :legacy)
|
15
15
|
end
|
16
16
|
facts
|
17
17
|
end
|
@@ -4,10 +4,29 @@ module Facts
|
|
4
4
|
module Solaris
|
5
5
|
class Disks
|
6
6
|
FACT_NAME = 'disks'
|
7
|
+
ALIASES = %w[blockdevices blockdevice_.*_size blockdevice_.*_vendor'].freeze
|
7
8
|
|
8
9
|
def call_the_resolver
|
9
|
-
|
10
|
-
Facter::
|
10
|
+
facts = []
|
11
|
+
disks = Facter::Resolvers::Solaris::Disks.resolve(:disks)
|
12
|
+
|
13
|
+
return Facter::ResolvedFact.new(FACT_NAME, nil) if disks.nil? || disks.empty?
|
14
|
+
|
15
|
+
blockdevices = disks.keys.join(',')
|
16
|
+
facts.push(Facter::ResolvedFact.new(FACT_NAME, disks))
|
17
|
+
facts.push(Facter::ResolvedFact.new('blockdevices', blockdevices, :legacy))
|
18
|
+
add_legacy_facts(disks, facts)
|
19
|
+
|
20
|
+
facts
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def add_legacy_facts(disks, facts)
|
26
|
+
disks.each do |disk_name, disk_info|
|
27
|
+
facts.push(Facter::ResolvedFact.new("blockdevice_#{disk_name}_size", disk_info[:size_bytes].to_s, :legacy))
|
28
|
+
facts.push(Facter::ResolvedFact.new("blockdevice_#{disk_name}_vendor", disk_info[:vendor], :legacy))
|
29
|
+
end
|
11
30
|
end
|
12
31
|
end
|
13
32
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Solaris
|
5
|
+
module Hypervisors
|
6
|
+
class Ldom
|
7
|
+
FACT_NAME = 'hypervisors.ldom'
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
@log = Facter::Log.new(self)
|
11
|
+
end
|
12
|
+
|
13
|
+
def call_the_resolver
|
14
|
+
fact_value = %i[
|
15
|
+
chassis_serial control_domain domain_name
|
16
|
+
domain_uuid role_control role_io role_root role_service
|
17
|
+
].map! { |key| [key, Facter::Resolvers::Solaris::Ldom.resolve(key)] }.to_h
|
18
|
+
|
19
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Solaris
|
5
|
+
module Hypervisors
|
6
|
+
class Zone
|
7
|
+
FACT_NAME = 'hypervisors.zone'
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
@log = Facter::Log.new(self)
|
11
|
+
end
|
12
|
+
|
13
|
+
def call_the_resolver
|
14
|
+
fact_value = current_zone
|
15
|
+
|
16
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
17
|
+
end
|
18
|
+
|
19
|
+
def current_zone
|
20
|
+
current_zone_name = Facter::Resolvers::Solaris::ZoneName.resolve(:current_zone_name)
|
21
|
+
return unless current_zone_name
|
22
|
+
|
23
|
+
zones = Facter::Resolvers::Solaris::Zone.resolve(:zone)
|
24
|
+
return nil unless zones
|
25
|
+
|
26
|
+
current_zone = zones.find { |r| r[:name] == current_zone_name }
|
27
|
+
|
28
|
+
{
|
29
|
+
brand: current_zone[:brand],
|
30
|
+
id: current_zone[:id],
|
31
|
+
ip_type: current_zone[:iptype],
|
32
|
+
name: current_zone[:name],
|
33
|
+
uuid: current_zone[:uuid]
|
34
|
+
}
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Solaris
|
5
|
+
class IsVirtual
|
6
|
+
FACT_NAME = 'is_virtual'
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
@log = Facter::Log.new(self)
|
10
|
+
end
|
11
|
+
|
12
|
+
def call_the_resolver
|
13
|
+
@log.debug('Solaris Virtual Resolver')
|
14
|
+
|
15
|
+
fact_value = check_ldom || check_zone || check_xen || check_other_facts || 'physical'
|
16
|
+
|
17
|
+
@log.debug("Fact value is: #{fact_value}")
|
18
|
+
|
19
|
+
Facter::ResolvedFact.new(FACT_NAME, check_if_virtual(fact_value))
|
20
|
+
end
|
21
|
+
|
22
|
+
def check_ldom
|
23
|
+
@log.debug('Checking LDoms')
|
24
|
+
return unless Facter::Resolvers::Solaris::Ldom.resolve(:role_control) == 'false'
|
25
|
+
|
26
|
+
Facter::Resolvers::Solaris::Ldom.resolve(:role_impl)
|
27
|
+
end
|
28
|
+
|
29
|
+
def check_zone
|
30
|
+
@log.debug('Checking LDoms')
|
31
|
+
zone_name = Facter::Resolvers::Solaris::ZoneName.resolve(:current_zone_name)
|
32
|
+
|
33
|
+
return if zone_name == 'global'
|
34
|
+
|
35
|
+
'zone'
|
36
|
+
end
|
37
|
+
|
38
|
+
def check_xen
|
39
|
+
@log.debug('Checking XEN')
|
40
|
+
Facter::Resolvers::Xen.resolve(:vm)
|
41
|
+
end
|
42
|
+
|
43
|
+
def check_other_facts
|
44
|
+
isa = Facter::Resolvers::Uname.resolve(:processor)
|
45
|
+
klass = isa == 'sparc' ? 'DmiSparc' : 'Dmi'
|
46
|
+
|
47
|
+
product_name = Facter::Resolvers::Solaris.const_get(klass).resolve(:product_name)
|
48
|
+
bios_vendor = Facter::Resolvers::Solaris.const_get(klass).resolve(:bios_vendor)
|
49
|
+
|
50
|
+
return 'kvm' if bios_vendor&.include?('Amazon EC2')
|
51
|
+
|
52
|
+
return unless product_name
|
53
|
+
|
54
|
+
Facter::FactsUtils::HYPERVISORS_HASH.each { |key, value| return value if product_name.include?(key) }
|
55
|
+
|
56
|
+
nil
|
57
|
+
end
|
58
|
+
|
59
|
+
def check_if_virtual(found_vm)
|
60
|
+
Facter::FactsUtils::PHYSICAL_HYPERVISORS.count(found_vm).zero?
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -8,7 +8,7 @@ module Facts
|
|
8
8
|
def call_the_resolver
|
9
9
|
full_version = Facter::Resolvers::Uname.resolve(:kernelversion)
|
10
10
|
versions_split = full_version.split('.')
|
11
|
-
major_version = versions_split.length >
|
11
|
+
major_version = versions_split.length > 2 ? versions_split[0] + '.' + versions_split[1] : versions_split[0]
|
12
12
|
Facter::ResolvedFact.new(FACT_NAME, major_version)
|
13
13
|
end
|
14
14
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Solaris
|
5
|
+
class Ldom
|
6
|
+
FACT_NAME = 'ldom'
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
@log = Facter::Log.new(self)
|
10
|
+
end
|
11
|
+
|
12
|
+
def call_the_resolver
|
13
|
+
fact_value = {
|
14
|
+
domainchassis: resolve(:chassis_serial),
|
15
|
+
domaincontrol: resolve(:control_domain),
|
16
|
+
domainname: resolve(:domain_name),
|
17
|
+
domainrole: {
|
18
|
+
control: resolve(:role_control),
|
19
|
+
impl: resolve(:role_impl),
|
20
|
+
io: resolve(:role_io),
|
21
|
+
root: resolve(:role_root),
|
22
|
+
service: resolve(:role_service)
|
23
|
+
},
|
24
|
+
domainuuid: resolve(:domain_uuid)
|
25
|
+
}
|
26
|
+
|
27
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
28
|
+
end
|
29
|
+
|
30
|
+
def resolve(key)
|
31
|
+
Facter::Resolvers::Solaris::Ldom.resolve(key)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Solaris
|
5
|
+
class Sshalgorithmkey
|
6
|
+
FACT_NAME = 'ssh.*key'
|
7
|
+
TYPE = :legacy
|
8
|
+
|
9
|
+
def call_the_resolver
|
10
|
+
facts = []
|
11
|
+
result = Facter::Resolvers::SshResolver.resolve(:ssh)
|
12
|
+
result.each { |ssh| facts << Facter::ResolvedFact.new("ssh#{ssh.name.to_sym}key", ssh.key, :legacy) }
|
13
|
+
facts
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Solaris
|
5
|
+
class SshfpAlgorithm
|
6
|
+
FACT_NAME = 'sshfp_.*'
|
7
|
+
TYPE = :legacy
|
8
|
+
|
9
|
+
def call_the_resolver
|
10
|
+
facts = []
|
11
|
+
result = Facter::Resolvers::SshResolver.resolve(:ssh)
|
12
|
+
result.each do |ssh|
|
13
|
+
facts << Facter::ResolvedFact.new("sshfp_#{ssh.name.to_sym}",
|
14
|
+
"#{ssh.fingerprint.sha1}\n#{ssh.fingerprint.sha256}", :legacy)
|
15
|
+
end
|
16
|
+
facts
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Solaris
|
5
|
+
class Virtual
|
6
|
+
FACT_NAME = 'virtual'
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
@log = Facter::Log.new(self)
|
10
|
+
end
|
11
|
+
|
12
|
+
def call_the_resolver
|
13
|
+
@log.debug('Solaris Virtual Resolver')
|
14
|
+
|
15
|
+
fact_value = check_ldom || check_zone || check_xen || check_other_facts || 'physical'
|
16
|
+
|
17
|
+
@log.debug("Fact value is: #{fact_value}")
|
18
|
+
|
19
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
20
|
+
end
|
21
|
+
|
22
|
+
def check_ldom
|
23
|
+
@log.debug('Checking LDoms')
|
24
|
+
return unless Facter::Resolvers::Solaris::Ldom.resolve(:role_control) == 'false'
|
25
|
+
|
26
|
+
Facter::Resolvers::Solaris::Ldom.resolve(:role_impl)
|
27
|
+
end
|
28
|
+
|
29
|
+
def check_zone
|
30
|
+
@log.debug('Checking LDoms')
|
31
|
+
zone_name = Facter::Resolvers::Solaris::ZoneName.resolve(:current_zone_name)
|
32
|
+
|
33
|
+
return if zone_name == 'global'
|
34
|
+
|
35
|
+
'zone'
|
36
|
+
end
|
37
|
+
|
38
|
+
def check_xen
|
39
|
+
@log.debug('Checking XEN')
|
40
|
+
Facter::Resolvers::Xen.resolve(:vm)
|
41
|
+
end
|
42
|
+
|
43
|
+
def check_other_facts
|
44
|
+
isa = Facter::Resolvers::Uname.resolve(:processor)
|
45
|
+
klass = isa == 'sparc' ? 'DmiSparc' : 'Dmi'
|
46
|
+
|
47
|
+
product_name = Facter::Resolvers::Solaris.const_get(klass).resolve(:product_name)
|
48
|
+
bios_vendor = Facter::Resolvers::Solaris.const_get(klass).resolve(:bios_vendor)
|
49
|
+
|
50
|
+
return 'kvm' if bios_vendor&.include?('Amazon EC2')
|
51
|
+
|
52
|
+
return unless product_name
|
53
|
+
|
54
|
+
Facter::FactsUtils::HYPERVISORS_HASH.each { |key, value| return value if product_name.include?(key) }
|
55
|
+
|
56
|
+
nil
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|