facter 4.0.50 → 4.2.0
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/docs/generate_cli.rb +7 -0
- data/lib/facter.rb +90 -56
- data/lib/facter/config.rb +2 -0
- data/lib/facter/custom_facts/core/aggregate.rb +9 -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/core/resolvable.rb +11 -0
- 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/resolution.rb +2 -0
- 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/amzn/lsbdistcodename.rb +16 -0
- data/lib/facter/facts/amzn/lsbdistdescription.rb +16 -0
- data/lib/facter/facts/amzn/lsbdistid.rb +16 -0
- data/lib/facter/facts/amzn/os/distro/codename.rb +24 -0
- data/lib/facter/facts/amzn/os/distro/description.rb +21 -0
- data/lib/facter/facts/amzn/os/distro/id.rb +21 -0
- data/lib/facter/facts/amzn/os/distro/release.rb +32 -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 +23 -0
- data/lib/facter/facts/linux/cloud/provider.rb +20 -0
- data/lib/facter/facts/linux/dhcp_servers.rb +2 -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/interfaces.rb +1 -1
- data/lib/facter/facts/linux/ipaddress6_interfaces.rb +1 -1
- data/lib/facter/facts/linux/ipaddress_interfaces.rb +1 -1
- data/lib/facter/facts/linux/is_virtual.rb +1 -5
- data/lib/facter/facts/linux/macaddress_interfaces.rb +1 -1
- data/lib/facter/facts/linux/mtu_interfaces.rb +1 -1
- data/lib/facter/facts/linux/netmask6_interfaces.rb +1 -1
- data/lib/facter/facts/linux/netmask_interfaces.rb +1 -1
- data/lib/facter/facts/linux/network6_interfaces.rb +1 -1
- data/lib/facter/facts/linux/network_interfaces.rb +1 -1
- data/lib/facter/facts/linux/networking/dhcp.rb +1 -1
- data/lib/facter/facts/linux/networking/domain.rb +1 -1
- data/lib/facter/facts/linux/networking/fqdn.rb +1 -1
- data/lib/facter/facts/linux/networking/hostname.rb +1 -1
- data/lib/facter/facts/linux/networking/interfaces.rb +1 -1
- data/lib/facter/facts/linux/networking/ip.rb +1 -1
- data/lib/facter/facts/linux/networking/ip6.rb +1 -1
- data/lib/facter/facts/linux/networking/mac.rb +1 -1
- data/lib/facter/facts/linux/networking/mtu.rb +1 -1
- data/lib/facter/facts/linux/networking/netmask.rb +1 -1
- data/lib/facter/facts/linux/networking/netmask6.rb +1 -1
- data/lib/facter/facts/linux/networking/network.rb +1 -1
- data/lib/facter/facts/linux/networking/network6.rb +1 -1
- data/lib/facter/facts/linux/networking/primary.rb +1 -1
- data/lib/facter/facts/linux/networking/scope6.rb +1 -1
- 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/scope6_interfaces.rb +1 -1
- 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/rhel/lsbdistcodename.rb +16 -0
- data/lib/facter/facts/rhel/lsbdistdescription.rb +16 -0
- data/lib/facter/facts/rhel/lsbdistid.rb +16 -0
- data/lib/facter/facts/rhel/os/distro/codename.rb +2 -4
- data/lib/facter/facts/rhel/os/distro/description.rb +2 -4
- data/lib/facter/facts/rhel/os/distro/id.rb +2 -4
- data/lib/facter/facts/rhel/os/distro/release.rb +13 -12
- data/lib/facter/facts/sles/lsbdistcodename.rb +16 -0
- data/lib/facter/facts/sles/lsbdistdescription.rb +16 -0
- data/lib/facter/facts/sles/lsbdistid.rb +16 -0
- data/lib/facter/facts/sles/os/distro/codename.rb +3 -4
- data/lib/facter/facts/sles/os/distro/description.rb +2 -5
- data/lib/facter/facts/sles/os/distro/id.rb +6 -5
- data/lib/facter/facts/sles/os/distro/release.rb +17 -12
- 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/ubuntu/lsbdistrelease.rb +2 -2
- data/lib/facter/facts/windows/az_metadata.rb +23 -0
- data/lib/facter/facts/windows/cloud/provider.rb +21 -0
- 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 +6 -8
- data/lib/facter/framework/config/config_reader.rb +2 -0
- data/lib/facter/framework/config/fact_groups.rb +25 -2
- data/lib/facter/framework/core/cache_manager.rb +7 -3
- 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 +5 -15
- data/lib/facter/framework/core/fact_loaders/external_fact_loader.rb +9 -6
- data/lib/facter/framework/core/fact_loaders/fact_loader.rb +39 -37
- data/lib/facter/framework/core/fact_manager.rb +84 -14
- data/lib/facter/framework/core/file_loader.rb +1 -1
- data/lib/facter/framework/core/options.rb +1 -2
- data/lib/facter/framework/core/options/config_file_options.rb +7 -0
- data/lib/facter/framework/core/options/option_store.rb +12 -6
- data/lib/facter/framework/formatters/formatter_helper.rb +3 -5
- data/lib/facter/framework/logging/logger.rb +4 -4
- data/lib/facter/framework/parsers/query_parser.rb +5 -12
- 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/az.rb +39 -0
- data/lib/facter/resolvers/base_resolver.rb +2 -2
- data/lib/facter/resolvers/dmi_decode.rb +0 -1
- data/lib/facter/resolvers/linux/hostname.rb +126 -0
- data/lib/facter/resolvers/linux/networking.rb +124 -0
- 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 +3 -2
- data/lib/facter/resolvers/partitions.rb +1 -1
- data/lib/facter/resolvers/processors_lscpu.rb +44 -0
- data/lib/facter/resolvers/redhat_release.rb +28 -12
- data/lib/facter/resolvers/ruby.rb +1 -1
- data/lib/facter/resolvers/selinux.rb +5 -7
- data/lib/facter/resolvers/solaris/ffi/functions.rb +1 -1
- 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/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 +13 -5
- 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 +86 -0
- data/lib/facter/util/linux/if_inet6.rb +73 -0
- data/lib/facter/util/linux/routing_table.rb +60 -0
- data/lib/facter/util/linux/socket_parser.rb +114 -0
- data/lib/facter/util/resolvers/ffi/hostname.rb +70 -0
- 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 +63 -13
- data/lib/facter/facts/linux/cloud.rb +0 -15
- data/lib/facter/framework/core/fact_augmenter.rb +0 -37
- data/lib/facter/resolvers/cloud.rb +0 -39
- data/lib/facter/resolvers/networking_linux.rb +0 -296
- 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 Sles
|
|
5
|
+
class Lsbdistdescription
|
|
6
|
+
FACT_NAME = 'lsbdistdescription'
|
|
7
|
+
TYPE = :legacy
|
|
8
|
+
|
|
9
|
+
def call_the_resolver
|
|
10
|
+
fact_value = Facter::Resolvers::LsbRelease.resolve(:description)
|
|
11
|
+
|
|
12
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value, :legacy)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Facts
|
|
4
|
+
module Sles
|
|
5
|
+
class Lsbdistid
|
|
6
|
+
FACT_NAME = 'lsbdistid'
|
|
7
|
+
TYPE = :legacy
|
|
8
|
+
|
|
9
|
+
def call_the_resolver
|
|
10
|
+
fact_value = Facter::Resolvers::LsbRelease.resolve(:distributor_id)
|
|
11
|
+
|
|
12
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value, :legacy)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -6,13 +6,12 @@ module Facts
|
|
|
6
6
|
module Distro
|
|
7
7
|
class Codename
|
|
8
8
|
FACT_NAME = 'os.distro.codename'
|
|
9
|
-
ALIASES = 'lsbdistcodename'
|
|
10
9
|
|
|
11
10
|
def call_the_resolver
|
|
12
|
-
fact_value = Facter::Resolvers::
|
|
11
|
+
fact_value = Facter::Resolvers::OsRelease.resolve(:version_codename)
|
|
12
|
+
fact_value = 'n/a' if !fact_value || fact_value.empty?
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
|
|
14
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
|
16
15
|
end
|
|
17
16
|
end
|
|
18
17
|
end
|
|
@@ -6,13 +6,10 @@ module Facts
|
|
|
6
6
|
module Distro
|
|
7
7
|
class Description
|
|
8
8
|
FACT_NAME = 'os.distro.description'
|
|
9
|
-
ALIASES = 'lsbdistdescription'
|
|
10
9
|
|
|
11
10
|
def call_the_resolver
|
|
12
|
-
fact_value = Facter::Resolvers::
|
|
13
|
-
|
|
14
|
-
[Facter::ResolvedFact.new(FACT_NAME, fact_value),
|
|
15
|
-
Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
|
|
11
|
+
fact_value = Facter::Resolvers::OsRelease.resolve(:pretty_name)
|
|
12
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
|
16
13
|
end
|
|
17
14
|
end
|
|
18
15
|
end
|
|
@@ -6,13 +6,14 @@ module Facts
|
|
|
6
6
|
module Distro
|
|
7
7
|
class Id
|
|
8
8
|
FACT_NAME = 'os.distro.id'
|
|
9
|
-
ALIASES = 'lsbdistid'
|
|
10
9
|
|
|
11
10
|
def call_the_resolver
|
|
12
|
-
fact_value = Facter::Resolvers::
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
fact_value = if Facter::Resolvers::OsRelease.resolve(:version_id).start_with?('12')
|
|
12
|
+
'SUSE LINUX'
|
|
13
|
+
else
|
|
14
|
+
'SUSE'
|
|
15
|
+
end
|
|
16
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
|
16
17
|
end
|
|
17
18
|
end
|
|
18
19
|
end
|
|
@@ -9,20 +9,25 @@ module Facts
|
|
|
9
9
|
ALIASES = %w[lsbdistrelease lsbmajdistrelease lsbminordistrelease].freeze
|
|
10
10
|
|
|
11
11
|
def call_the_resolver
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
version = Facter::Resolvers::OsRelease.resolve(:version_id)
|
|
13
|
+
fact_value = build_fact_list(version)
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
15
|
+
[Facter::ResolvedFact.new(FACT_NAME, fact_value),
|
|
16
|
+
Facter::ResolvedFact.new(ALIASES[0], fact_value[:full], :legacy),
|
|
17
|
+
Facter::ResolvedFact.new(ALIASES[1], fact_value[:major], :legacy),
|
|
18
|
+
Facter::ResolvedFact.new(ALIASES[2], fact_value[:minor], :legacy)]
|
|
19
|
+
end
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
def build_fact_list(version)
|
|
22
|
+
if version.include?('.')
|
|
23
|
+
{
|
|
24
|
+
full: version,
|
|
25
|
+
major: version.split('.').first,
|
|
26
|
+
minor: version.split('.').last
|
|
27
|
+
}
|
|
28
|
+
else
|
|
29
|
+
{ full: version, major: version, minor: nil }
|
|
30
|
+
end
|
|
26
31
|
end
|
|
27
32
|
end
|
|
28
33
|
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
|
|
@@ -15,8 +15,8 @@ module Facts
|
|
|
15
15
|
version = fact_value.split('.')
|
|
16
16
|
|
|
17
17
|
[Facter::ResolvedFact.new(FACT_NAME, fact_value, :legacy),
|
|
18
|
-
Facter::ResolvedFact.new(ALIASES[0], version[0], :legacy),
|
|
19
|
-
Facter::ResolvedFact.new(ALIASES[1], version[
|
|
18
|
+
Facter::ResolvedFact.new(ALIASES[0], "#{version[0]}.#{version[1]}", :legacy),
|
|
19
|
+
Facter::ResolvedFact.new(ALIASES[1], version[2], :legacy)]
|
|
20
20
|
end
|
|
21
21
|
end
|
|
22
22
|
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Facts
|
|
4
|
+
module Windows
|
|
5
|
+
class AzMetadata
|
|
6
|
+
FACT_NAME = 'az_metadata'
|
|
7
|
+
|
|
8
|
+
def call_the_resolver
|
|
9
|
+
return Facter::ResolvedFact.new(FACT_NAME, nil) unless azure_hypervisor?
|
|
10
|
+
|
|
11
|
+
fact_value = Facter::Resolvers::Az.resolve(:metadata)
|
|
12
|
+
|
|
13
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value&.empty? ? nil : fact_value)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
private
|
|
17
|
+
|
|
18
|
+
def azure_hypervisor?
|
|
19
|
+
Facter::Resolvers::Windows::Virtualization.resolve(:virtual) == 'hyperv'
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Facts
|
|
4
|
+
module Windows
|
|
5
|
+
module Cloud
|
|
6
|
+
class Provider
|
|
7
|
+
FACT_NAME = 'cloud.provider'
|
|
8
|
+
|
|
9
|
+
def call_the_resolver
|
|
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
|
|
15
|
+
|
|
16
|
+
Facter::ResolvedFact.new(FACT_NAME, provider)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
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 = ''
|
|
@@ -15,7 +15,7 @@ module Facts
|
|
|
15
15
|
private
|
|
16
16
|
|
|
17
17
|
def vmware?
|
|
18
|
-
Facter::Resolvers::Virtualization.resolve(:virtual) == 'vmware' ||
|
|
18
|
+
Facter::Resolvers::Windows::Virtualization.resolve(:virtual) == 'vmware' ||
|
|
19
19
|
Facter::Resolvers::DMIBios.resolve(:manufacturer) == 'VMware, Inc.'
|
|
20
20
|
end
|
|
21
21
|
end
|
|
@@ -7,7 +7,9 @@ module Facts
|
|
|
7
7
|
FACT_NAME = 'hypervisors.xen'
|
|
8
8
|
|
|
9
9
|
def call_the_resolver
|
|
10
|
-
|
|
10
|
+
if Facter::Resolvers::Windows::Virtualization.resolve(:virtual) == 'xen'
|
|
11
|
+
fact_value = { context: hvm? ? 'hvm' : 'pv' }
|
|
12
|
+
end
|
|
11
13
|
|
|
12
14
|
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
|
13
15
|
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Facts
|
|
4
|
+
module Windows
|
|
5
|
+
class IsVirtual
|
|
6
|
+
FACT_NAME = 'is_virtual'
|
|
7
|
+
|
|
8
|
+
def call_the_resolver
|
|
9
|
+
fact_value = Facter::Resolvers::Windows::Virtualization.resolve(:is_virtual)
|
|
10
|
+
|
|
11
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
module Facts
|
|
4
4
|
module Windows
|
|
5
|
-
module
|
|
6
|
-
class
|
|
7
|
-
FACT_NAME = '
|
|
5
|
+
module Processors
|
|
6
|
+
class Cores
|
|
7
|
+
FACT_NAME = 'processors.cores'
|
|
8
8
|
|
|
9
9
|
def call_the_resolver
|
|
10
|
-
fact_value = Facter::Resolvers::
|
|
10
|
+
fact_value = Facter::Resolvers::Processors.resolve(:cores_per_socket)
|
|
11
11
|
|
|
12
12
|
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
|
13
13
|
end
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
module Facts
|
|
4
4
|
module Windows
|
|
5
|
-
module
|
|
6
|
-
class
|
|
7
|
-
FACT_NAME = '
|
|
5
|
+
module Processors
|
|
6
|
+
class Threads
|
|
7
|
+
FACT_NAME = 'processors.threads'
|
|
8
8
|
|
|
9
9
|
def call_the_resolver
|
|
10
|
-
fact_value = Facter::Resolvers::
|
|
10
|
+
fact_value = Facter::Resolvers::Processors.resolve(:threads_per_core)
|
|
11
11
|
|
|
12
12
|
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
|
13
13
|
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Facts
|
|
4
|
+
module Windows
|
|
5
|
+
class Virtual
|
|
6
|
+
FACT_NAME = 'virtual'
|
|
7
|
+
|
|
8
|
+
def call_the_resolver
|
|
9
|
+
fact_value = Facter::Resolvers::Windows::Virtualization.resolve(:virtual)
|
|
10
|
+
|
|
11
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -134,9 +134,9 @@ module Facter
|
|
|
134
134
|
|
|
135
135
|
desc '--list-block-groups', 'List block groups'
|
|
136
136
|
map ['--list-block-groups'] => :list_block_groups
|
|
137
|
-
def list_block_groups
|
|
137
|
+
def list_block_groups
|
|
138
138
|
options = @options.map { |(k, v)| [k.to_sym, v] }.to_h
|
|
139
|
-
Facter::Options.init_from_cli(options
|
|
139
|
+
Facter::Options.init_from_cli(options)
|
|
140
140
|
|
|
141
141
|
block_groups = Facter::FactGroups.new.groups.to_yaml.lines[1..-1].join
|
|
142
142
|
block_groups.gsub!(/:\s*\n/, "\n")
|
|
@@ -146,9 +146,9 @@ module Facter
|
|
|
146
146
|
|
|
147
147
|
desc '--list-cache-groups', 'List cache groups'
|
|
148
148
|
map ['--list-cache-groups'] => :list_cache_groups
|
|
149
|
-
def list_cache_groups
|
|
149
|
+
def list_cache_groups
|
|
150
150
|
options = @options.map { |(k, v)| [k.to_sym, v] }.to_h
|
|
151
|
-
Facter::Options.init_from_cli(options
|
|
151
|
+
Facter::Options.init_from_cli(options)
|
|
152
152
|
|
|
153
153
|
cache_groups = Facter::FactGroups.new.groups.to_yaml.lines[1..-1].join
|
|
154
154
|
cache_groups.gsub!(/:\s*\n/, "\n")
|
|
@@ -156,12 +156,10 @@ module Facter
|
|
|
156
156
|
puts cache_groups
|
|
157
157
|
end
|
|
158
158
|
|
|
159
|
-
desc '--puppet, -p', '
|
|
159
|
+
desc '--puppet, -p', 'Load the Puppet libraries, thus allowing Facter to load Puppet-specific facts.'
|
|
160
160
|
map ['--puppet', '-p'] => :puppet
|
|
161
161
|
def puppet(*args)
|
|
162
|
-
|
|
163
|
-
log.warn('`facter --puppet` and `facter -p` are no longer supported, use `puppet facts show` instead')
|
|
164
|
-
log.warn('the output does not contain puppet facts!')
|
|
162
|
+
Facter.puppet_facts
|
|
165
163
|
|
|
166
164
|
output, status = Facter.to_user_output(@options, *args)
|
|
167
165
|
puts output
|