facter 4.0.52 → 4.2.2
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 +21 -21
- data/lib/facter/config.rb +2 -0
- data/lib/facter/custom_facts/core/execution/base.rb +7 -3
- data/lib/facter/custom_facts/core/execution/popen3.rb +13 -1
- 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/util/collection.rb +5 -0
- data/lib/facter/custom_facts/util/directory_loader.rb +1 -1
- data/lib/facter/custom_facts/util/normalization.rb +7 -2
- data/lib/facter/custom_facts/util/windows_root.rb +2 -1
- data/lib/facter/facts/aix/processors/cores.rb +16 -0
- data/lib/facter/facts/aix/processors/threads.rb +16 -0
- 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 +5 -2
- 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 -4
- data/lib/facter/facts/linux/is_virtual.rb +1 -5
- data/lib/facter/facts/linux/processors/cores.rb +16 -0
- data/lib/facter/facts/linux/processors/threads.rb +16 -0
- data/lib/facter/facts/linux/virtual.rb +1 -2
- data/lib/facter/facts/macosx/os/macosx/version.rb +15 -4
- data/lib/facter/facts/macosx/processors/cores.rb +16 -0
- data/lib/facter/facts/macosx/processors/threads.rb +16 -0
- data/lib/facter/facts/solaris/hypervisors/ldom.rb +1 -1
- data/lib/facter/facts/solaris/hypervisors/zone.rb +1 -1
- data/lib/facter/facts/solaris/mountpoints.rb +1 -1
- data/lib/facter/facts/solaris/processors/cores.rb +16 -0
- data/lib/facter/facts/solaris/processors/threads.rb +16 -0
- data/lib/facter/facts/windows/az_metadata.rb +1 -5
- data/lib/facter/facts/windows/cloud/provider.rb +6 -2
- 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/{virtualization/is_virtual.rb → processors/cores.rb} +4 -4
- data/lib/facter/facts/windows/{virtualization/virtual.rb → processors/threads.rb} +4 -4
- 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 +41 -39
- data/lib/facter/framework/core/fact_filter.rb +4 -14
- data/lib/facter/framework/core/fact_loaders/external_fact_loader.rb +9 -6
- data/lib/facter/framework/core/fact_loaders/fact_loader.rb +39 -36
- data/lib/facter/framework/core/fact_manager.rb +82 -14
- data/lib/facter/framework/core/file_loader.rb +1 -1
- data/lib/facter/framework/core/options/config_file_options.rb +7 -0
- data/lib/facter/framework/core/options/option_store.rb +3 -1
- data/lib/facter/framework/formatters/formatter_helper.rb +3 -5
- data/lib/facter/framework/parsers/query_parser.rb +10 -24
- data/lib/facter/models/fact_collection.rb +48 -5
- data/lib/facter/models/resolved_fact.rb +2 -3
- data/lib/facter/models/searched_fact.rb +2 -3
- data/lib/facter/resolvers/aix/ffi/ffi_helper.rb +1 -1
- data/lib/facter/resolvers/aix/processors.rb +4 -0
- data/lib/facter/resolvers/base_resolver.rb +2 -2
- data/lib/facter/resolvers/dmi_decode.rb +0 -1
- data/lib/facter/resolvers/ec2.rb +8 -1
- data/lib/facter/resolvers/linux/hostname.rb +16 -5
- data/lib/facter/resolvers/linux/networking.rb +18 -1
- data/lib/facter/resolvers/lsb_release.rb +1 -2
- data/lib/facter/resolvers/macosx/mountpoints.rb +14 -1
- data/lib/facter/resolvers/macosx/processor.rb +16 -1
- data/lib/facter/resolvers/mountpoints.rb +16 -8
- data/lib/facter/resolvers/networking.rb +6 -3
- data/lib/facter/resolvers/partitions.rb +1 -3
- data/lib/facter/resolvers/processors_lscpu.rb +44 -0
- data/lib/facter/resolvers/ruby.rb +1 -1
- data/lib/facter/resolvers/selinux.rb +5 -7
- data/lib/facter/resolvers/solaris/ffi/structs.rb +12 -0
- data/lib/facter/resolvers/solaris/mountpoints.rb +22 -16
- data/lib/facter/resolvers/solaris/networking.rb +20 -5
- data/lib/facter/resolvers/solaris/processors.rb +7 -0
- data/lib/facter/resolvers/solaris/zone.rb +0 -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/processors.rb +41 -4
- data/lib/facter/resolvers/windows/uptime.rb +3 -22
- data/lib/facter/resolvers/windows/virtualization.rb +46 -44
- data/lib/facter/resolvers/xen.rb +6 -1
- data/lib/facter/templates/man.erb +6 -6
- data/lib/facter/util/facts/posix/virtual_detector.rb +74 -0
- data/lib/facter/util/facts/unit_converter.rb +2 -2
- 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 +18 -3
- data/lib/facter/util/resolvers/http.rb +7 -1
- data/lib/facter/util/resolvers/networking/primary_interface.rb +11 -5
- data/lib/facter/util/utils.rb +18 -1
- data/lib/facter/version.rb +1 -1
- metadata +60 -11
- data/lib/facter/framework/core/fact_augmenter.rb +0 -37
- data/lib/facter/util/facts/virtual_detector.rb +0 -90
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Facts
|
|
4
|
+
module Aix
|
|
5
|
+
module Processors
|
|
6
|
+
class Threads
|
|
7
|
+
FACT_NAME = 'processors.threads'
|
|
8
|
+
|
|
9
|
+
def call_the_resolver
|
|
10
|
+
fact_value = Facter::Resolvers::Aix::Processors.resolve(:threads_per_core)
|
|
11
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -5,12 +5,8 @@ module Facts
|
|
|
5
5
|
class IsVirtual
|
|
6
6
|
FACT_NAME = 'is_virtual'
|
|
7
7
|
|
|
8
|
-
def initialize
|
|
9
|
-
@virtual = Facter::Util::Facts::VirtualDetector.new
|
|
10
|
-
end
|
|
11
|
-
|
|
12
8
|
def call_the_resolver
|
|
13
|
-
fact_value =
|
|
9
|
+
fact_value = Facter::Util::Facts::Posix::VirtualDetector.platform
|
|
14
10
|
|
|
15
11
|
Facter::ResolvedFact.new(FACT_NAME, check_if_virtual(fact_value))
|
|
16
12
|
end
|
|
@@ -7,12 +7,11 @@ module Facts
|
|
|
7
7
|
|
|
8
8
|
def initialize
|
|
9
9
|
@log = Facter::Log.new(self)
|
|
10
|
-
@virtual = Facter::Util::Facts::VirtualDetector.new
|
|
11
10
|
end
|
|
12
11
|
|
|
13
12
|
def call_the_resolver
|
|
14
13
|
@log.debug('FreeBSD Virtual Resolver')
|
|
15
|
-
fact_value =
|
|
14
|
+
fact_value = Facter::Util::Facts::Posix::VirtualDetector.platform
|
|
16
15
|
@log.debug("Fact value is: #{fact_value}")
|
|
17
16
|
|
|
18
17
|
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
|
@@ -5,10 +5,6 @@ module Facts
|
|
|
5
5
|
class AzMetadata
|
|
6
6
|
FACT_NAME = 'az_metadata'
|
|
7
7
|
|
|
8
|
-
def initialize
|
|
9
|
-
@virtual = Facter::Util::Facts::VirtualDetector.new
|
|
10
|
-
end
|
|
11
|
-
|
|
12
8
|
def call_the_resolver
|
|
13
9
|
return Facter::ResolvedFact.new(FACT_NAME, nil) unless azure_hypervisor?
|
|
14
10
|
|
|
@@ -20,7 +16,7 @@ module Facts
|
|
|
20
16
|
private
|
|
21
17
|
|
|
22
18
|
def azure_hypervisor?
|
|
23
|
-
|
|
19
|
+
Facter::Util::Facts::Posix::VirtualDetector.platform == 'hyperv'
|
|
24
20
|
end
|
|
25
21
|
end
|
|
26
22
|
end
|
|
@@ -7,9 +7,12 @@ module Facts
|
|
|
7
7
|
FACT_NAME = 'cloud.provider'
|
|
8
8
|
|
|
9
9
|
def call_the_resolver
|
|
10
|
-
|
|
10
|
+
provider = case Facter::Util::Facts::Posix::VirtualDetector.platform
|
|
11
|
+
when 'hyperv'
|
|
12
|
+
'azure' unless Facter::Resolvers::Az.resolve(:metadata).empty?
|
|
13
|
+
end
|
|
11
14
|
|
|
12
|
-
Facter::ResolvedFact.new(FACT_NAME,
|
|
15
|
+
Facter::ResolvedFact.new(FACT_NAME, provider)
|
|
13
16
|
end
|
|
14
17
|
end
|
|
15
18
|
end
|
|
@@ -5,10 +5,6 @@ module Facts
|
|
|
5
5
|
class Ec2Metadata
|
|
6
6
|
FACT_NAME = 'ec2_metadata'
|
|
7
7
|
|
|
8
|
-
def initialize
|
|
9
|
-
@virtual = Facter::Util::Facts::VirtualDetector.new
|
|
10
|
-
end
|
|
11
|
-
|
|
12
8
|
def call_the_resolver
|
|
13
9
|
return Facter::ResolvedFact.new(FACT_NAME, nil) unless aws_hypervisors?
|
|
14
10
|
|
|
@@ -20,7 +16,7 @@ module Facts
|
|
|
20
16
|
private
|
|
21
17
|
|
|
22
18
|
def aws_hypervisors?
|
|
23
|
-
|
|
19
|
+
Facter::Util::Facts::Posix::VirtualDetector.platform =~ /kvm|xen|aws/
|
|
24
20
|
end
|
|
25
21
|
end
|
|
26
22
|
end
|
|
@@ -5,10 +5,6 @@ module Facts
|
|
|
5
5
|
class Ec2Userdata
|
|
6
6
|
FACT_NAME = 'ec2_userdata'
|
|
7
7
|
|
|
8
|
-
def initialize
|
|
9
|
-
@virtual = Facter::Util::Facts::VirtualDetector.new
|
|
10
|
-
end
|
|
11
|
-
|
|
12
8
|
def call_the_resolver
|
|
13
9
|
return Facter::ResolvedFact.new(FACT_NAME, nil) unless aws_hypervisors?
|
|
14
10
|
|
|
@@ -20,7 +16,7 @@ module Facts
|
|
|
20
16
|
private
|
|
21
17
|
|
|
22
18
|
def aws_hypervisors?
|
|
23
|
-
|
|
19
|
+
Facter::Util::Facts::Posix::VirtualDetector.platform =~ /kvm|xen|aws/
|
|
24
20
|
end
|
|
25
21
|
end
|
|
26
22
|
end
|
|
@@ -28,10 +28,7 @@ module Facts
|
|
|
28
28
|
private
|
|
29
29
|
|
|
30
30
|
def xen?
|
|
31
|
-
Facter::
|
|
32
|
-
Facter::Resolvers::Xen.resolve(:vm) =~ /xen/ ||
|
|
33
|
-
discover_hypervisor == 'xenhvm' ||
|
|
34
|
-
Facter::Resolvers::Lspci.resolve(:vm) =~ /xen/
|
|
31
|
+
Facter::Util::Facts::Posix::VirtualDetector.platform =~ /xen/
|
|
35
32
|
end
|
|
36
33
|
|
|
37
34
|
def hvm?
|
|
@@ -5,12 +5,8 @@ module Facts
|
|
|
5
5
|
class IsVirtual
|
|
6
6
|
FACT_NAME = 'is_virtual'
|
|
7
7
|
|
|
8
|
-
def initialize
|
|
9
|
-
@virtual = Facter::Util::Facts::VirtualDetector.new
|
|
10
|
-
end
|
|
11
|
-
|
|
12
8
|
def call_the_resolver
|
|
13
|
-
fact_value =
|
|
9
|
+
fact_value = Facter::Util::Facts::Posix::VirtualDetector.platform
|
|
14
10
|
|
|
15
11
|
Facter::ResolvedFact.new(FACT_NAME, check_if_virtual(fact_value))
|
|
16
12
|
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Facts
|
|
4
|
+
module Linux
|
|
5
|
+
module Processors
|
|
6
|
+
class Cores
|
|
7
|
+
FACT_NAME = 'processors.cores'
|
|
8
|
+
|
|
9
|
+
def call_the_resolver
|
|
10
|
+
fact_value = Facter::Resolvers::Linux::Lscpu.resolve(:cores_per_socket)
|
|
11
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Facts
|
|
4
|
+
module Linux
|
|
5
|
+
module Processors
|
|
6
|
+
class Threads
|
|
7
|
+
FACT_NAME = 'processors.threads'
|
|
8
|
+
|
|
9
|
+
def call_the_resolver
|
|
10
|
+
fact_value = Facter::Resolvers::Linux::Lscpu.resolve(:threads_per_core)
|
|
11
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -7,12 +7,11 @@ module Facts
|
|
|
7
7
|
|
|
8
8
|
def initialize
|
|
9
9
|
@log = Facter::Log.new(self)
|
|
10
|
-
@virtual = Facter::Util::Facts::VirtualDetector.new
|
|
11
10
|
end
|
|
12
11
|
|
|
13
12
|
def call_the_resolver
|
|
14
13
|
@log.debug('Linux Virtual Resolver')
|
|
15
|
-
fact_value =
|
|
14
|
+
fact_value = Facter::Util::Facts::Posix::VirtualDetector.platform
|
|
16
15
|
@log.debug("Fact value is: #{fact_value}")
|
|
17
16
|
|
|
18
17
|
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
|
@@ -6,17 +6,28 @@ module Facts
|
|
|
6
6
|
module Macosx
|
|
7
7
|
class Version
|
|
8
8
|
FACT_NAME = 'os.macosx.version'
|
|
9
|
-
ALIASES = %w[macosx_productversion macosx_productversion_major macosx_productversion_minor
|
|
9
|
+
ALIASES = %w[macosx_productversion macosx_productversion_major macosx_productversion_minor
|
|
10
|
+
macosx_productversion_patch].freeze
|
|
10
11
|
|
|
11
12
|
def call_the_resolver
|
|
12
13
|
fact_value = Facter::Resolvers::SwVers.resolve(:productversion)
|
|
13
|
-
|
|
14
|
-
ver = { 'full' => fact_value, 'major' => "#{versions[0]}.#{versions[1]}", 'minor' => versions[-1] }
|
|
14
|
+
ver = version_hash(fact_value)
|
|
15
15
|
|
|
16
16
|
[Facter::ResolvedFact.new(FACT_NAME, ver),
|
|
17
17
|
Facter::ResolvedFact.new(ALIASES[0], fact_value, :legacy),
|
|
18
18
|
Facter::ResolvedFact.new(ALIASES[1], ver['major'], :legacy),
|
|
19
|
-
Facter::ResolvedFact.new(ALIASES[2], ver['minor'], :legacy)
|
|
19
|
+
Facter::ResolvedFact.new(ALIASES[2], ver['minor'], :legacy),
|
|
20
|
+
Facter::ResolvedFact.new(ALIASES[3], ver['patch'], :legacy)]
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def version_hash(fact_value)
|
|
24
|
+
versions = fact_value.split('.')
|
|
25
|
+
if versions[0] == '10'
|
|
26
|
+
{ 'full' => fact_value, 'major' => "#{versions[0]}.#{versions[1]}", 'minor' => versions[-1] }
|
|
27
|
+
else
|
|
28
|
+
{ 'full' => fact_value, 'major' => versions[0], 'minor' => versions.fetch(1, '0'),
|
|
29
|
+
'patch' => versions.fetch(2, '0') }
|
|
30
|
+
end
|
|
20
31
|
end
|
|
21
32
|
end
|
|
22
33
|
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Facts
|
|
4
|
+
module Macosx
|
|
5
|
+
module Processors
|
|
6
|
+
class Cores
|
|
7
|
+
FACT_NAME = 'processors.cores'
|
|
8
|
+
|
|
9
|
+
def call_the_resolver
|
|
10
|
+
fact_value = Facter::Resolvers::Macosx::Processors.resolve(:cores_per_socket)
|
|
11
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Facts
|
|
4
|
+
module Macosx
|
|
5
|
+
module Processors
|
|
6
|
+
class Threads
|
|
7
|
+
FACT_NAME = 'processors.threads'
|
|
8
|
+
|
|
9
|
+
def call_the_resolver
|
|
10
|
+
fact_value = Facter::Resolvers::Macosx::Processors.resolve(:threads_per_core)
|
|
11
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -17,7 +17,7 @@ module Facts
|
|
|
17
17
|
fact_value = %i[
|
|
18
18
|
chassis_serial control_domain domain_name
|
|
19
19
|
domain_uuid role_control role_io role_root role_service
|
|
20
|
-
].map! { |key| [key, Facter::Resolvers::Solaris::Ldom.resolve(key)] }.to_h
|
|
20
|
+
].map! { |key| [key, Facter::Utils.try_to_bool(Facter::Resolvers::Solaris::Ldom.resolve(key))] }.to_h
|
|
21
21
|
|
|
22
22
|
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
|
23
23
|
end
|
|
@@ -6,7 +6,7 @@ module Facts
|
|
|
6
6
|
FACT_NAME = 'mountpoints'
|
|
7
7
|
|
|
8
8
|
def call_the_resolver
|
|
9
|
-
mountpoints = Facter::Resolvers::Mountpoints.resolve(FACT_NAME.to_sym)
|
|
9
|
+
mountpoints = Facter::Resolvers::Solaris::Mountpoints.resolve(FACT_NAME.to_sym)
|
|
10
10
|
return Facter::ResolvedFact.new(FACT_NAME, nil) unless mountpoints
|
|
11
11
|
|
|
12
12
|
fact = {}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Facts
|
|
4
|
+
module Solaris
|
|
5
|
+
module Processors
|
|
6
|
+
class Cores
|
|
7
|
+
FACT_NAME = 'processors.cores'
|
|
8
|
+
|
|
9
|
+
def call_the_resolver
|
|
10
|
+
fact_value = Facter::Resolvers::Solaris::Processors.resolve(:cores_per_socket)
|
|
11
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Facts
|
|
4
|
+
module Solaris
|
|
5
|
+
module Processors
|
|
6
|
+
class Threads
|
|
7
|
+
FACT_NAME = 'processors.threads'
|
|
8
|
+
|
|
9
|
+
def call_the_resolver
|
|
10
|
+
fact_value = Facter::Resolvers::Solaris::Processors.resolve(:threads_per_core)
|
|
11
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -5,10 +5,6 @@ module Facts
|
|
|
5
5
|
class AzMetadata
|
|
6
6
|
FACT_NAME = 'az_metadata'
|
|
7
7
|
|
|
8
|
-
def initialize
|
|
9
|
-
@virtual = Facter::Util::Facts::VirtualDetector.new
|
|
10
|
-
end
|
|
11
|
-
|
|
12
8
|
def call_the_resolver
|
|
13
9
|
return Facter::ResolvedFact.new(FACT_NAME, nil) unless azure_hypervisor?
|
|
14
10
|
|
|
@@ -20,7 +16,7 @@ module Facts
|
|
|
20
16
|
private
|
|
21
17
|
|
|
22
18
|
def azure_hypervisor?
|
|
23
|
-
|
|
19
|
+
Facter::Resolvers::Windows::Virtualization.resolve(:virtual) == 'hyperv'
|
|
24
20
|
end
|
|
25
21
|
end
|
|
26
22
|
end
|
|
@@ -7,9 +7,13 @@ module Facts
|
|
|
7
7
|
FACT_NAME = 'cloud.provider'
|
|
8
8
|
|
|
9
9
|
def call_the_resolver
|
|
10
|
-
|
|
10
|
+
virtual = Facter::Resolvers::Windows::Virtualization.resolve(:virtual)
|
|
11
|
+
provider = case virtual
|
|
12
|
+
when 'hyperv'
|
|
13
|
+
'azure' unless Facter::Resolvers::Az.resolve(:metadata).empty?
|
|
14
|
+
end
|
|
11
15
|
|
|
12
|
-
Facter::ResolvedFact.new(FACT_NAME,
|
|
16
|
+
Facter::ResolvedFact.new(FACT_NAME, provider)
|
|
13
17
|
end
|
|
14
18
|
end
|
|
15
19
|
end
|
|
@@ -6,7 +6,7 @@ module Facts
|
|
|
6
6
|
FACT_NAME = 'gce'
|
|
7
7
|
|
|
8
8
|
def call_the_resolver
|
|
9
|
-
virtualization = Facter::Resolvers::Virtualization.resolve(:virtual)
|
|
9
|
+
virtualization = Facter::Resolvers::Windows::Virtualization.resolve(:virtual)
|
|
10
10
|
|
|
11
11
|
fact_value = virtualization&.include?('gce') ? Facter::Resolvers::Gce.resolve(:metadata) : nil
|
|
12
12
|
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
|
@@ -15,7 +15,7 @@ module Facts
|
|
|
15
15
|
private
|
|
16
16
|
|
|
17
17
|
def hyperv?
|
|
18
|
-
Facter::Resolvers::Virtualization.resolve(:virtual) == 'hyperv' ||
|
|
18
|
+
Facter::Resolvers::Windows::Virtualization.resolve(:virtual) == 'hyperv' ||
|
|
19
19
|
Facter::Resolvers::DMIBios.resolve(:manufacturer).include?('Microsoft')
|
|
20
20
|
end
|
|
21
21
|
end
|
|
@@ -17,7 +17,8 @@ module Facts
|
|
|
17
17
|
def kvm?
|
|
18
18
|
product_name = Facter::Resolvers::DMIComputerSystem.resolve(:name)
|
|
19
19
|
|
|
20
|
-
(Facter::Resolvers::Virtualization.resolve(:virtual) == 'kvm' ||
|
|
20
|
+
(Facter::Resolvers::Windows::Virtualization.resolve(:virtual) == 'kvm' ||
|
|
21
|
+
Facter::Resolvers::NetKVM.resolve(:kvm)) &&
|
|
21
22
|
product_name != 'VirtualBox' && !product_name.match(/^Parallels/)
|
|
22
23
|
end
|
|
23
24
|
|
|
@@ -15,12 +15,12 @@ module Facts
|
|
|
15
15
|
private
|
|
16
16
|
|
|
17
17
|
def virtualbox?
|
|
18
|
-
Facter::Resolvers::Virtualization.resolve(:virtual) == 'virtualbox' ||
|
|
18
|
+
Facter::Resolvers::Windows::Virtualization.resolve(:virtual) == 'virtualbox' ||
|
|
19
19
|
Facter::Resolvers::DMIComputerSystem.resolve(:name) == 'VirtualBox'
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
def populate_version_and_revision
|
|
23
|
-
oem_strings = Facter::Resolvers::Virtualization.resolve(:oem_strings)
|
|
23
|
+
oem_strings = Facter::Resolvers::Windows::Virtualization.resolve(:oem_strings)
|
|
24
24
|
return unless oem_strings
|
|
25
25
|
|
|
26
26
|
version = revision = ''
|