facter 4.0.47 → 4.0.48
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.rb +0 -1
- data/lib/facter/config.rb +1 -2
- data/lib/facter/custom_facts/util/fact.rb +19 -1
- data/lib/facter/custom_facts/util/resolution.rb +1 -1
- data/lib/facter/facts/aix/disks.rb +1 -1
- data/lib/facter/facts/aix/ssh.rb +1 -1
- data/lib/facter/facts/aix/sshalgorithmkey.rb +1 -1
- data/lib/facter/facts/aix/sshfp_algorithm.rb +1 -1
- data/lib/facter/facts/freebsd/ssh.rb +1 -1
- data/lib/facter/facts/freebsd/sshalgorithmkey.rb +1 -1
- data/lib/facter/facts/freebsd/sshfp_algorithm.rb +1 -1
- data/lib/facter/facts/linux/disks.rb +1 -1
- data/lib/facter/facts/linux/os/family.rb +4 -2
- data/lib/facter/facts/linux/ssh.rb +1 -1
- data/lib/facter/facts/linux/sshalgorithmkey.rb +1 -1
- data/lib/facter/facts/linux/sshfp_algorithm.rb +1 -1
- data/lib/facter/facts/macosx/ssh.rb +1 -1
- data/lib/facter/facts/macosx/sshalgorithmkey.rb +1 -1
- data/lib/facter/facts/macosx/sshfp_algorithm.rb +1 -1
- data/lib/facter/facts/solaris/disks.rb +1 -1
- data/lib/facter/facts/solaris/ssh.rb +1 -1
- data/lib/facter/facts/solaris/sshalgorithmkey.rb +1 -1
- data/lib/facter/facts/solaris/sshfp_algorithm.rb +1 -1
- data/lib/facter/facts/windows/networking/fqdn.rb +1 -1
- data/lib/facter/framework/core/options/option_store.rb +3 -1
- data/lib/facter/framework/detector/os_detector.rb +1 -0
- data/lib/facter/resolvers/aix/{architecture_resolver.rb → architecture.rb} +0 -0
- data/lib/facter/resolvers/aix/{filesystem_resolver.rb → filesystem.rb} +0 -0
- data/lib/facter/resolvers/aix/{hardware_resolver.rb → hardware.rb} +0 -0
- data/lib/facter/resolvers/aix/{load_averages_resolver.rb → load_averages.rb} +0 -0
- data/lib/facter/resolvers/aix/{networking_resolver.rb → networking.rb} +0 -0
- data/lib/facter/resolvers/{augeas_resolver.rb → augeas.rb} +0 -0
- data/lib/facter/resolvers/{disk_resolver.rb → disk.rb} +0 -0
- data/lib/facter/resolvers/{dmi_resolver.rb → dmi.rb} +0 -0
- data/lib/facter/resolvers/{eos_release_resolver.rb → eos_release.rb} +0 -0
- data/lib/facter/resolvers/{facterversion_resolver.rb → facterversion.rb} +0 -0
- data/lib/facter/resolvers/{filesystems_resolver.rb → filesystems.rb} +0 -0
- data/lib/facter/resolvers/{fips_enabled_resolver.rb → fips_enabled.rb} +0 -0
- data/lib/facter/resolvers/freebsd/{dmi_resolver.rb → dmi.rb} +0 -0
- data/lib/facter/resolvers/freebsd/{freebsd_version_resolver.rb → freebsd_version.rb} +0 -0
- data/lib/facter/resolvers/freebsd/{geom_resolver.rb → geom.rb} +0 -0
- data/lib/facter/resolvers/freebsd/{swap_memory_resolver.rb → swap_memory.rb} +0 -0
- data/lib/facter/resolvers/freebsd/{system_memory_resolver.rb → system_memory.rb} +0 -0
- data/lib/facter/resolvers/freebsd/{virtual_resolver.rb → virtual.rb} +0 -0
- data/lib/facter/resolvers/{hostname_resolver.rb → hostname.rb} +0 -0
- data/lib/facter/resolvers/{identity_resolver.rb → identity.rb} +0 -0
- data/lib/facter/resolvers/{lpar_resolver.rb → lpar.rb} +0 -0
- data/lib/facter/resolvers/{lsb_release_resolver.rb → lsb_release.rb} +0 -0
- data/lib/facter/resolvers/macosx/{dmi_resolver.rb → dmi.rb} +0 -0
- data/lib/facter/resolvers/macosx/{filesystems_resolver.rb → filesystems.rb} +0 -0
- data/lib/facter/resolvers/macosx/{load_averages_resolver.rb → load_averages.rb} +0 -0
- data/lib/facter/resolvers/macosx/{mountpoints_resolver.rb → mountpoints.rb} +0 -0
- data/lib/facter/resolvers/macosx/{processor_resolver.rb → processor.rb} +0 -0
- data/lib/facter/resolvers/macosx/{swap_memory_resolver.rb → swap_memory.rb} +0 -0
- data/lib/facter/resolvers/macosx/{system_memory_resolver.rb → system_memory.rb} +0 -0
- data/lib/facter/resolvers/macosx/{system_profiler_resolver.rb → system_profiler.rb} +0 -0
- data/lib/facter/resolvers/{memory_resolver.rb → memory.rb} +0 -0
- data/lib/facter/resolvers/{mountpoints_resolver.rb → mountpoints.rb} +0 -0
- data/lib/facter/resolvers/{networking_resolver.rb → networking.rb} +0 -0
- data/lib/facter/resolvers/networking_linux.rb +296 -0
- data/lib/facter/resolvers/{os_release_resolver.rb → os_release.rb} +0 -0
- data/lib/facter/resolvers/{path_resolver.rb → path.rb} +0 -0
- data/lib/facter/resolvers/{processors_resolver.rb → processors.rb} +0 -0
- data/lib/facter/resolvers/{redhat_release_resolver.rb → redhat_release.rb} +0 -0
- data/lib/facter/resolvers/{ruby_resolver.rb → ruby.rb} +0 -0
- data/lib/facter/resolvers/{selinux_resolver.rb → selinux.rb} +0 -0
- data/lib/facter/resolvers/{ssh_resolver.rb → ssh.rb} +1 -1
- data/lib/facter/resolvers/{suse_release_resolver.rb → suse_release.rb} +0 -0
- data/lib/facter/resolvers/{sw_vers_resolver.rb → sw_vers.rb} +0 -0
- data/lib/facter/resolvers/{timezone_resolver.rb → timezone.rb} +0 -0
- data/lib/facter/resolvers/{uname_resolver.rb → uname.rb} +0 -0
- data/lib/facter/resolvers/{uptime_resolver.rb → uptime.rb} +0 -0
- data/lib/facter/resolvers/windows/{dmi_bios_resolver.rb → dmi_bios.rb} +0 -0
- data/lib/facter/resolvers/windows/{dmi_computersystem_resolver.rb → dmi_computersystem.rb} +0 -0
- data/lib/facter/resolvers/windows/{fips_resolver.rb → fips.rb} +0 -0
- data/lib/facter/resolvers/windows/{hardware_architecture_resolver.rb → hardware_architecture.rb} +0 -0
- data/lib/facter/resolvers/windows/{identity_resolver.rb → identity.rb} +0 -0
- data/lib/facter/resolvers/windows/{kernel_resolver.rb → kernel.rb} +0 -0
- data/lib/facter/resolvers/windows/{memory_resolver.rb → memory.rb} +0 -0
- data/lib/facter/resolvers/windows/{netkvm_resolver.rb → netkvm.rb} +0 -0
- data/lib/facter/resolvers/windows/{networking_resolver.rb → networking.rb} +13 -0
- data/lib/facter/resolvers/windows/{processors_resolver.rb → processors.rb} +0 -0
- data/lib/facter/resolvers/windows/{product_release_resolver.rb → product_release.rb} +0 -0
- data/lib/facter/resolvers/windows/{system32_resolver.rb → system32.rb} +0 -0
- data/lib/facter/resolvers/windows/{uptime_resolver.rb → uptime.rb} +0 -0
- data/lib/facter/resolvers/windows/{virtualization_resolver.rb → virtualization.rb} +0 -0
- data/lib/facter/resolvers/windows/{win_os_description_resolver.rb → win_os_description.rb} +0 -0
- data/lib/facter/resolvers/{wpar_resolver.rb → wpar.rb} +0 -0
- data/lib/facter/util/facts/facts_utils.rb +16 -0
- data/lib/facter/version.rb +1 -1
- metadata +78 -79
- data/lib/facter/resolvers/networking_linux_resolver.rb +0 -258
- data/lib/facter/util/resolvers/networking.rb +0 -90
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/lib/facter/resolvers/windows/{hardware_architecture_resolver.rb → hardware_architecture.rb}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -28,6 +28,8 @@ module Facter
|
|
|
28
28
|
|
|
29
29
|
Facter::Util::Resolvers::Networking.expand_main_bindings(@fact_list)
|
|
30
30
|
|
|
31
|
+
retrieve_domain_from_registry if !@fact_list[:domain] || @fact_list[:domain].empty?
|
|
32
|
+
|
|
31
33
|
@fact_list[fact_name]
|
|
32
34
|
end
|
|
33
35
|
|
|
@@ -130,6 +132,17 @@ module Facter
|
|
|
130
132
|
@fact_list[:primary_interface] = name.to_s
|
|
131
133
|
end
|
|
132
134
|
end
|
|
135
|
+
|
|
136
|
+
def retrieve_domain_from_registry
|
|
137
|
+
::Win32::Registry::HKEY_LOCAL_MACHINE.open('SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters') do |rg|
|
|
138
|
+
rg.each do |name, _value|
|
|
139
|
+
@fact_list[:domain] = rg[name] if name == 'Domain'
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
rescue Win32::Registry::Error
|
|
143
|
+
@log.debug('Could not read TCPIP Parameters from registry')
|
|
144
|
+
nil
|
|
145
|
+
end
|
|
133
146
|
end
|
|
134
147
|
end
|
|
135
148
|
end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -9,6 +9,22 @@ module Facter
|
|
|
9
9
|
'BHYVE' => 'bhyve' }.freeze
|
|
10
10
|
|
|
11
11
|
PHYSICAL_HYPERVISORS = %w[physical xen0 vmware_server vmware_workstation openvzhn vserver_host].freeze
|
|
12
|
+
REDHAT_FAMILY = %w[redhat rhel fedora centos scientific ascendos cloudlinux psbm
|
|
13
|
+
oraclelinux ovs oel amazon xenserver xcp-ng virtuozzo photon].freeze
|
|
14
|
+
DEBIAN_FAMILY = %w[debian ubuntu huaweios linuxmint devuan kde].freeze
|
|
15
|
+
SUSE_FAMILY = %w[sles sled suse].freeze
|
|
16
|
+
GENTOO_FAMILY = ['gentoo'].freeze
|
|
17
|
+
ARCH_FAMILY = %w[arch manjaro].freeze
|
|
18
|
+
MANDRAKE_FAMILY = %w[mandrake mandriva mageia].freeze
|
|
19
|
+
FAMILY_HASH = { 'RedHat' => REDHAT_FAMILY, 'Debian' => DEBIAN_FAMILY, 'Suse' => SUSE_FAMILY,
|
|
20
|
+
'Gentoo' => GENTOO_FAMILY, 'Archlinux' => ARCH_FAMILY, 'Mandrake' => MANDRAKE_FAMILY }.freeze
|
|
21
|
+
|
|
22
|
+
class << self
|
|
23
|
+
def discover_family(os)
|
|
24
|
+
FAMILY_HASH.each { |key, array_value| return key if array_value.any? { |os_flavour| os =~ /#{os_flavour}/i } }
|
|
25
|
+
os
|
|
26
|
+
end
|
|
27
|
+
end
|
|
12
28
|
end
|
|
13
29
|
end
|
|
14
30
|
end
|
data/lib/facter/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,29 +1,15 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: facter
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.0.
|
|
4
|
+
version: 4.0.48
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Puppet
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-01-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
|
-
- !ruby/object:Gem::Dependency
|
|
14
|
-
name: coveralls
|
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
|
16
|
-
requirements:
|
|
17
|
-
- - "~>"
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: 0.8.23
|
|
20
|
-
type: :development
|
|
21
|
-
prerelease: false
|
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
-
requirements:
|
|
24
|
-
- - "~>"
|
|
25
|
-
- !ruby/object:Gem::Version
|
|
26
|
-
version: 0.8.23
|
|
27
13
|
- !ruby/object:Gem::Dependency
|
|
28
14
|
name: rake
|
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -94,6 +80,20 @@ dependencies:
|
|
|
94
80
|
- - "~>"
|
|
95
81
|
- !ruby/object:Gem::Version
|
|
96
82
|
version: '1.38'
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: simplecov
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - "~>"
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: 0.17.1
|
|
90
|
+
type: :development
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - "~>"
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: 0.17.1
|
|
97
97
|
- !ruby/object:Gem::Dependency
|
|
98
98
|
name: sys-filesystem
|
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -834,72 +834,72 @@ files:
|
|
|
834
834
|
- lib/facter/models/searched_fact.rb
|
|
835
835
|
- lib/facter/patches/sysfilesystem/sys/statvfs.rb
|
|
836
836
|
- lib/facter/resolvers/aio_agent_version.rb
|
|
837
|
-
- lib/facter/resolvers/aix/
|
|
837
|
+
- lib/facter/resolvers/aix/architecture.rb
|
|
838
838
|
- lib/facter/resolvers/aix/disks.rb
|
|
839
839
|
- lib/facter/resolvers/aix/ffi/ffi_helper.rb
|
|
840
|
-
- lib/facter/resolvers/aix/
|
|
841
|
-
- lib/facter/resolvers/aix/
|
|
842
|
-
- lib/facter/resolvers/aix/
|
|
840
|
+
- lib/facter/resolvers/aix/filesystem.rb
|
|
841
|
+
- lib/facter/resolvers/aix/hardware.rb
|
|
842
|
+
- lib/facter/resolvers/aix/load_averages.rb
|
|
843
843
|
- lib/facter/resolvers/aix/memory.rb
|
|
844
844
|
- lib/facter/resolvers/aix/mountpoints.rb
|
|
845
|
-
- lib/facter/resolvers/aix/
|
|
845
|
+
- lib/facter/resolvers/aix/networking.rb
|
|
846
846
|
- lib/facter/resolvers/aix/nim.rb
|
|
847
847
|
- lib/facter/resolvers/aix/os_level.rb
|
|
848
848
|
- lib/facter/resolvers/aix/partitions.rb
|
|
849
849
|
- lib/facter/resolvers/aix/processors.rb
|
|
850
850
|
- lib/facter/resolvers/aix/serialnumber.rb
|
|
851
|
-
- lib/facter/resolvers/
|
|
851
|
+
- lib/facter/resolvers/augeas.rb
|
|
852
852
|
- lib/facter/resolvers/base_resolver.rb
|
|
853
853
|
- lib/facter/resolvers/bsd/ffi/ffi_helper.rb
|
|
854
854
|
- lib/facter/resolvers/bsd/processors.rb
|
|
855
855
|
- lib/facter/resolvers/cloud.rb
|
|
856
856
|
- lib/facter/resolvers/containers.rb
|
|
857
857
|
- lib/facter/resolvers/debian_version.rb
|
|
858
|
-
- lib/facter/resolvers/
|
|
858
|
+
- lib/facter/resolvers/disk.rb
|
|
859
|
+
- lib/facter/resolvers/dmi.rb
|
|
859
860
|
- lib/facter/resolvers/dmi_decode.rb
|
|
860
|
-
- lib/facter/resolvers/dmi_resolver.rb
|
|
861
861
|
- lib/facter/resolvers/ec2.rb
|
|
862
|
-
- lib/facter/resolvers/
|
|
863
|
-
- lib/facter/resolvers/
|
|
864
|
-
- lib/facter/resolvers/
|
|
865
|
-
- lib/facter/resolvers/
|
|
866
|
-
- lib/facter/resolvers/freebsd/
|
|
862
|
+
- lib/facter/resolvers/eos_release.rb
|
|
863
|
+
- lib/facter/resolvers/facterversion.rb
|
|
864
|
+
- lib/facter/resolvers/filesystems.rb
|
|
865
|
+
- lib/facter/resolvers/fips_enabled.rb
|
|
866
|
+
- lib/facter/resolvers/freebsd/dmi.rb
|
|
867
867
|
- lib/facter/resolvers/freebsd/ffi/ffi_helper.rb
|
|
868
|
-
- lib/facter/resolvers/freebsd/
|
|
869
|
-
- lib/facter/resolvers/freebsd/
|
|
868
|
+
- lib/facter/resolvers/freebsd/freebsd_version.rb
|
|
869
|
+
- lib/facter/resolvers/freebsd/geom.rb
|
|
870
870
|
- lib/facter/resolvers/freebsd/processors.rb
|
|
871
|
-
- lib/facter/resolvers/freebsd/
|
|
872
|
-
- lib/facter/resolvers/freebsd/
|
|
873
|
-
- lib/facter/resolvers/freebsd/
|
|
871
|
+
- lib/facter/resolvers/freebsd/swap_memory.rb
|
|
872
|
+
- lib/facter/resolvers/freebsd/system_memory.rb
|
|
873
|
+
- lib/facter/resolvers/freebsd/virtual.rb
|
|
874
874
|
- lib/facter/resolvers/gce.rb
|
|
875
|
-
- lib/facter/resolvers/
|
|
876
|
-
- lib/facter/resolvers/
|
|
875
|
+
- lib/facter/resolvers/hostname.rb
|
|
876
|
+
- lib/facter/resolvers/identity.rb
|
|
877
877
|
- lib/facter/resolvers/linux/docker_uptime.rb
|
|
878
878
|
- lib/facter/resolvers/linux/load_averages.rb
|
|
879
879
|
- lib/facter/resolvers/load_averages.rb
|
|
880
|
-
- lib/facter/resolvers/
|
|
881
|
-
- lib/facter/resolvers/
|
|
880
|
+
- lib/facter/resolvers/lpar.rb
|
|
881
|
+
- lib/facter/resolvers/lsb_release.rb
|
|
882
882
|
- lib/facter/resolvers/lspci.rb
|
|
883
|
-
- lib/facter/resolvers/macosx/
|
|
884
|
-
- lib/facter/resolvers/macosx/
|
|
885
|
-
- lib/facter/resolvers/macosx/
|
|
886
|
-
- lib/facter/resolvers/macosx/
|
|
887
|
-
- lib/facter/resolvers/macosx/
|
|
888
|
-
- lib/facter/resolvers/macosx/
|
|
889
|
-
- lib/facter/resolvers/macosx/
|
|
890
|
-
- lib/facter/resolvers/macosx/
|
|
891
|
-
- lib/facter/resolvers/
|
|
892
|
-
- lib/facter/resolvers/
|
|
893
|
-
- lib/facter/resolvers/
|
|
894
|
-
- lib/facter/resolvers/
|
|
883
|
+
- lib/facter/resolvers/macosx/dmi.rb
|
|
884
|
+
- lib/facter/resolvers/macosx/filesystems.rb
|
|
885
|
+
- lib/facter/resolvers/macosx/load_averages.rb
|
|
886
|
+
- lib/facter/resolvers/macosx/mountpoints.rb
|
|
887
|
+
- lib/facter/resolvers/macosx/processor.rb
|
|
888
|
+
- lib/facter/resolvers/macosx/swap_memory.rb
|
|
889
|
+
- lib/facter/resolvers/macosx/system_memory.rb
|
|
890
|
+
- lib/facter/resolvers/macosx/system_profiler.rb
|
|
891
|
+
- lib/facter/resolvers/memory.rb
|
|
892
|
+
- lib/facter/resolvers/mountpoints.rb
|
|
893
|
+
- lib/facter/resolvers/networking.rb
|
|
894
|
+
- lib/facter/resolvers/networking_linux.rb
|
|
895
895
|
- lib/facter/resolvers/open_vz.rb
|
|
896
|
-
- lib/facter/resolvers/
|
|
896
|
+
- lib/facter/resolvers/os_release.rb
|
|
897
897
|
- lib/facter/resolvers/partitions.rb
|
|
898
|
-
- lib/facter/resolvers/
|
|
899
|
-
- lib/facter/resolvers/
|
|
900
|
-
- lib/facter/resolvers/
|
|
901
|
-
- lib/facter/resolvers/
|
|
902
|
-
- lib/facter/resolvers/
|
|
898
|
+
- lib/facter/resolvers/path.rb
|
|
899
|
+
- lib/facter/resolvers/processors.rb
|
|
900
|
+
- lib/facter/resolvers/redhat_release.rb
|
|
901
|
+
- lib/facter/resolvers/ruby.rb
|
|
902
|
+
- lib/facter/resolvers/selinux.rb
|
|
903
903
|
- lib/facter/resolvers/solaris/disks.rb
|
|
904
904
|
- lib/facter/resolvers/solaris/dmi.rb
|
|
905
905
|
- lib/facter/resolvers/solaris/dmi_sparc.rb
|
|
@@ -916,17 +916,17 @@ files:
|
|
|
916
916
|
- lib/facter/resolvers/solaris/processors.rb
|
|
917
917
|
- lib/facter/resolvers/solaris/zone.rb
|
|
918
918
|
- lib/facter/resolvers/solaris/zone_name.rb
|
|
919
|
-
- lib/facter/resolvers/
|
|
920
|
-
- lib/facter/resolvers/
|
|
921
|
-
- lib/facter/resolvers/
|
|
922
|
-
- lib/facter/resolvers/
|
|
923
|
-
- lib/facter/resolvers/
|
|
924
|
-
- lib/facter/resolvers/
|
|
919
|
+
- lib/facter/resolvers/ssh.rb
|
|
920
|
+
- lib/facter/resolvers/suse_release.rb
|
|
921
|
+
- lib/facter/resolvers/sw_vers.rb
|
|
922
|
+
- lib/facter/resolvers/timezone.rb
|
|
923
|
+
- lib/facter/resolvers/uname.rb
|
|
924
|
+
- lib/facter/resolvers/uptime.rb
|
|
925
925
|
- lib/facter/resolvers/virt_what.rb
|
|
926
926
|
- lib/facter/resolvers/vmware.rb
|
|
927
927
|
- lib/facter/resolvers/windows/aio_agent_version.rb
|
|
928
|
-
- lib/facter/resolvers/windows/
|
|
929
|
-
- lib/facter/resolvers/windows/
|
|
928
|
+
- lib/facter/resolvers/windows/dmi_bios.rb
|
|
929
|
+
- lib/facter/resolvers/windows/dmi_computersystem.rb
|
|
930
930
|
- lib/facter/resolvers/windows/ffi/ffi.rb
|
|
931
931
|
- lib/facter/resolvers/windows/ffi/hardware_ffi.rb
|
|
932
932
|
- lib/facter/resolvers/windows/ffi/identity_ffi.rb
|
|
@@ -939,21 +939,21 @@ files:
|
|
|
939
939
|
- lib/facter/resolvers/windows/ffi/performance_information.rb
|
|
940
940
|
- lib/facter/resolvers/windows/ffi/system32_ffi.rb
|
|
941
941
|
- lib/facter/resolvers/windows/ffi/system_info.rb
|
|
942
|
-
- lib/facter/resolvers/windows/
|
|
943
|
-
- lib/facter/resolvers/windows/
|
|
944
|
-
- lib/facter/resolvers/windows/
|
|
945
|
-
- lib/facter/resolvers/windows/
|
|
946
|
-
- lib/facter/resolvers/windows/
|
|
947
|
-
- lib/facter/resolvers/windows/
|
|
948
|
-
- lib/facter/resolvers/windows/
|
|
949
|
-
- lib/facter/resolvers/windows/
|
|
950
|
-
- lib/facter/resolvers/windows/
|
|
942
|
+
- lib/facter/resolvers/windows/fips.rb
|
|
943
|
+
- lib/facter/resolvers/windows/hardware_architecture.rb
|
|
944
|
+
- lib/facter/resolvers/windows/identity.rb
|
|
945
|
+
- lib/facter/resolvers/windows/kernel.rb
|
|
946
|
+
- lib/facter/resolvers/windows/memory.rb
|
|
947
|
+
- lib/facter/resolvers/windows/netkvm.rb
|
|
948
|
+
- lib/facter/resolvers/windows/networking.rb
|
|
949
|
+
- lib/facter/resolvers/windows/processors.rb
|
|
950
|
+
- lib/facter/resolvers/windows/product_release.rb
|
|
951
951
|
- lib/facter/resolvers/windows/ssh.rb
|
|
952
|
-
- lib/facter/resolvers/windows/
|
|
953
|
-
- lib/facter/resolvers/windows/
|
|
954
|
-
- lib/facter/resolvers/windows/
|
|
955
|
-
- lib/facter/resolvers/windows/
|
|
956
|
-
- lib/facter/resolvers/
|
|
952
|
+
- lib/facter/resolvers/windows/system32.rb
|
|
953
|
+
- lib/facter/resolvers/windows/uptime.rb
|
|
954
|
+
- lib/facter/resolvers/windows/virtualization.rb
|
|
955
|
+
- lib/facter/resolvers/windows/win_os_description.rb
|
|
956
|
+
- lib/facter/resolvers/wpar.rb
|
|
957
957
|
- lib/facter/resolvers/xen.rb
|
|
958
958
|
- lib/facter/resolvers/zfs.rb
|
|
959
959
|
- lib/facter/resolvers/zpool.rb
|
|
@@ -973,7 +973,6 @@ files:
|
|
|
973
973
|
- lib/facter/util/resolvers/filesystem_helper.rb
|
|
974
974
|
- lib/facter/util/resolvers/fingerprint.rb
|
|
975
975
|
- lib/facter/util/resolvers/http.rb
|
|
976
|
-
- lib/facter/util/resolvers/networking.rb
|
|
977
976
|
- lib/facter/util/resolvers/networking/dhcp.rb
|
|
978
977
|
- lib/facter/util/resolvers/networking/networking.rb
|
|
979
978
|
- lib/facter/util/resolvers/networking/primary_interface.rb
|
|
@@ -1,258 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Facter
|
|
4
|
-
module Resolvers
|
|
5
|
-
class NetworkingLinux < BaseResolver
|
|
6
|
-
init_resolver
|
|
7
|
-
|
|
8
|
-
DIRS = ['/var/lib/dhclient/', '/var/lib/dhcp/', '/var/lib/dhcp3/', '/var/lib/NetworkManager/', '/var/db/'].freeze
|
|
9
|
-
ROUTE_TYPES = %w[anycast
|
|
10
|
-
unicast
|
|
11
|
-
broadcast
|
|
12
|
-
local
|
|
13
|
-
nat
|
|
14
|
-
unreachable
|
|
15
|
-
prohibit
|
|
16
|
-
blackhole
|
|
17
|
-
throw].freeze
|
|
18
|
-
|
|
19
|
-
class << self
|
|
20
|
-
private
|
|
21
|
-
|
|
22
|
-
def post_resolve(fact_name)
|
|
23
|
-
@fact_list.fetch(fact_name) { retrieve_network_info(fact_name) }
|
|
24
|
-
|
|
25
|
-
@fact_list[fact_name]
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def retrieve_network_info(fact_name)
|
|
29
|
-
mtu_and_indexes = interfaces_mtu_and_index
|
|
30
|
-
retrieve_interface_info(mtu_and_indexes)
|
|
31
|
-
add_info_from_routing_table
|
|
32
|
-
retrieve_primary_interface
|
|
33
|
-
Facter::Util::Resolvers::Networking.expand_main_bindings(@fact_list)
|
|
34
|
-
@fact_list[fact_name]
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def interfaces_mtu_and_index
|
|
38
|
-
mtu_and_indexes = {}
|
|
39
|
-
output = Facter::Core::Execution.execute("ip link show", logger: log)
|
|
40
|
-
output.each_line do |line|
|
|
41
|
-
next unless line.include?('mtu')
|
|
42
|
-
|
|
43
|
-
mtu = line.match(/mtu (\d+)/)&.captures&.first&.to_i
|
|
44
|
-
index_tokens = line.split(':')
|
|
45
|
-
index = index_tokens[0].strip
|
|
46
|
-
# vlans are displayed as <vlan_name>@<physical_interface>
|
|
47
|
-
name = index_tokens[1].split('@').first.strip
|
|
48
|
-
mtu_and_indexes[name] = [index, mtu]
|
|
49
|
-
end
|
|
50
|
-
mtu_and_indexes
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
def retrieve_interface_info(mtu_and_indexes)
|
|
54
|
-
require 'socket'
|
|
55
|
-
interfaces = {}
|
|
56
|
-
Socket.getifaddrs.each do |interface|
|
|
57
|
-
interfaces[interface.name] = {} if interfaces[interface.name].nil?
|
|
58
|
-
|
|
59
|
-
if interfaces[interface.name][:mac].nil?
|
|
60
|
-
mac = extract_mac_address(interface)
|
|
61
|
-
interfaces[interface.name][:mac] = mac if mac
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
if interfaces[interface.name][:mtu].nil?
|
|
65
|
-
mtu = mtu_and_indexes.dig(interface.name, 1)
|
|
66
|
-
interfaces[interface.name][:mtu] = mtu unless mtu.nil?
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
if !interface.addr.nil? && !interface.netmask.nil?
|
|
70
|
-
begin
|
|
71
|
-
# ipv6 ips are retrieved as <ip>%<interface_name>
|
|
72
|
-
ip = interface.addr.ip_address.split('%').first if interface.addr.ip?
|
|
73
|
-
netmask = interface.netmask.ip_address
|
|
74
|
-
add_binding(interfaces, interface.name, ip, netmask, interface.addr.ipv4?)
|
|
75
|
-
rescue SocketError => e
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
find_dhcp!(interface.name, mtu_and_indexes, interfaces)
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
@fact_list[:interfaces] = interfaces
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
def extract_mac_address(interface)
|
|
85
|
-
mac = get_bonded_interface_mac(interface.name)
|
|
86
|
-
begin
|
|
87
|
-
if mac.nil?
|
|
88
|
-
if Socket.const_defined? :PF_LINK
|
|
89
|
-
mac = interface.addr&.getnameinfo&.first #sometimes it returns localhost, ip but mac also
|
|
90
|
-
elsif Socket.const_defined? :PF_PACKET
|
|
91
|
-
return if interface.addr.nil? || interface.addr.inspect_sockaddr.nil?
|
|
92
|
-
|
|
93
|
-
mac = interface.addr&.inspect_sockaddr[/hwaddr=([\h:]+)/, 1]
|
|
94
|
-
end
|
|
95
|
-
end
|
|
96
|
-
rescue StandardError => e
|
|
97
|
-
log.debug("Could not read mac, got #{e}")
|
|
98
|
-
end
|
|
99
|
-
mac if !mac.nil? && mac != '00:00:00:00:00:00' && mac =~ /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
def get_bonded_interface_mac(interface_name)
|
|
103
|
-
master = get_bond_master(interface_name)
|
|
104
|
-
return unless master
|
|
105
|
-
|
|
106
|
-
output = Facter::Util::FileHelper.safe_read("/proc/net/bonding/#{master}", nil)
|
|
107
|
-
return unless output
|
|
108
|
-
|
|
109
|
-
right_block = false
|
|
110
|
-
output.each_line do |line|
|
|
111
|
-
if line.strip == "Slave Interface: #{interface_name}"
|
|
112
|
-
right_block = true
|
|
113
|
-
elsif line.include? 'Slave Interface'
|
|
114
|
-
right_block = false
|
|
115
|
-
end
|
|
116
|
-
return Regexp.last_match(1) if right_block && line =~ /Permanent HW addr: (\S*)/
|
|
117
|
-
end
|
|
118
|
-
end
|
|
119
|
-
|
|
120
|
-
def get_bond_master(interface_name)
|
|
121
|
-
content = Facter::Core::Execution.execute("ip link show #{interface_name}", logger: log)
|
|
122
|
-
master = content.match(/master (\S*) /)
|
|
123
|
-
return master[1] if master
|
|
124
|
-
|
|
125
|
-
nil
|
|
126
|
-
end
|
|
127
|
-
|
|
128
|
-
def add_binding(interfaces, name, ip, netmask, ip_v4_type)
|
|
129
|
-
binding = Facter::Util::Resolvers::Networking.build_binding(ip, netmask)
|
|
130
|
-
return if binding.nil?
|
|
131
|
-
|
|
132
|
-
log.debug("Adding to interface #{name}, binding:\n#{binding}")
|
|
133
|
-
binding_key = ip_v4_type == true ? :bindings : :bindings6
|
|
134
|
-
interfaces[name][binding_key] = [] if interfaces[name][binding_key].nil?
|
|
135
|
-
interfaces[name][binding_key] << binding
|
|
136
|
-
end
|
|
137
|
-
|
|
138
|
-
def add_info_from_routing_table
|
|
139
|
-
routes4, routes6 = read_routing_table
|
|
140
|
-
compare_ips(routes4, :bindings)
|
|
141
|
-
compare_ips(routes6, :bindings6)
|
|
142
|
-
end
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
def read_routing_table
|
|
146
|
-
ipv4_output = Facter::Core::Execution.execute('ip route show', logger: log)
|
|
147
|
-
ipv6_output = Facter::Core::Execution.execute('ip -6 route show', logger: log)
|
|
148
|
-
routes4 = parse_routes(ipv4_output, 'ipv4')
|
|
149
|
-
routes6 = parse_routes(ipv6_output, 'ipv6')
|
|
150
|
-
[routes4, routes6]
|
|
151
|
-
end
|
|
152
|
-
|
|
153
|
-
def parse_routes(output, family)
|
|
154
|
-
routes = []
|
|
155
|
-
output.each_line do |line|
|
|
156
|
-
parts = line.split(' ').compact
|
|
157
|
-
next if parts.include?('linkdown')
|
|
158
|
-
|
|
159
|
-
route_type = parts[0]
|
|
160
|
-
parts.delete_at(0) if ROUTE_TYPES.include?(route_type)
|
|
161
|
-
next if family == 'ipv6' && !parts[0].include?(':')
|
|
162
|
-
|
|
163
|
-
route = construct_route(parts)
|
|
164
|
-
routes << route unless route[:ip].nil?
|
|
165
|
-
end
|
|
166
|
-
routes.uniq
|
|
167
|
-
end
|
|
168
|
-
|
|
169
|
-
def construct_route(parts)
|
|
170
|
-
route = {}
|
|
171
|
-
dev_index = parts.find_index { |elem| elem == 'dev' }
|
|
172
|
-
src_index = parts.find_index { |elem| elem == 'src' }
|
|
173
|
-
route[:interface] = parts[dev_index + 1] if dev_index
|
|
174
|
-
route[:ip] = parts[src_index + 1] if src_index
|
|
175
|
-
route
|
|
176
|
-
end
|
|
177
|
-
|
|
178
|
-
def compare_ips(routes, binding_key)
|
|
179
|
-
routes.each do |route|
|
|
180
|
-
# TODO we should simplify this
|
|
181
|
-
if @fact_list[:interfaces].key?(route[:interface])
|
|
182
|
-
if @fact_list[:interfaces][route[:interface]][binding_key].nil?
|
|
183
|
-
@fact_list[:interfaces][route[:interface]][binding_key] = [{ address: route[:ip] }]
|
|
184
|
-
elsif @fact_list[:interfaces][route[:interface]][binding_key].none? { |binding| binding[:address] == route[:ip] }
|
|
185
|
-
@fact_list[:interfaces][route[:interface]][binding_key] << { address: route[:ip] }
|
|
186
|
-
end
|
|
187
|
-
end
|
|
188
|
-
end
|
|
189
|
-
end
|
|
190
|
-
|
|
191
|
-
def find_dhcp!(interface_name, interface_indexes, interfaces)
|
|
192
|
-
return if !interfaces[interface_name] || interfaces[interface_name][:dhcp]
|
|
193
|
-
|
|
194
|
-
log.debug("Get DHCP for interface #{interface_name}")
|
|
195
|
-
unless interface_indexes[interface_name].nil?
|
|
196
|
-
index = interface_indexes[interface_name][0]
|
|
197
|
-
file_content = Facter::Util::FileHelper.safe_read("/run/systemd/netif/leases/#{index}", nil)
|
|
198
|
-
dhcp = file_content.match(/SERVER_ADDRESS=(.*)/) if file_content
|
|
199
|
-
if dhcp
|
|
200
|
-
interfaces[interface_name][:dhcp] = dhcp[1]
|
|
201
|
-
else
|
|
202
|
-
alternate_dhcp = retrieve_from_other_directories(interface_name)
|
|
203
|
-
interfaces[interface_name][:dhcp] = alternate_dhcp if alternate_dhcp
|
|
204
|
-
end
|
|
205
|
-
end
|
|
206
|
-
return unless interfaces[interface_name][:dhcp].nil?
|
|
207
|
-
|
|
208
|
-
output = Facter::Core::Execution.execute("dhcpcd -U #{interface_name}", logger: log)
|
|
209
|
-
result = output.match(/dhcp_server_identifier='(.*)'/)&.captures&.first
|
|
210
|
-
interfaces[interface_name][:dhcp] = result if result
|
|
211
|
-
end
|
|
212
|
-
|
|
213
|
-
def retrieve_from_other_directories(interface_name)
|
|
214
|
-
DIRS.each do |dir|
|
|
215
|
-
next unless File.readable?(dir)
|
|
216
|
-
|
|
217
|
-
lease_files = Dir.entries(dir).select { |file| file =~ /dhclient.*\.lease/ }
|
|
218
|
-
next if lease_files.empty?
|
|
219
|
-
|
|
220
|
-
lease_files.select do |file|
|
|
221
|
-
content = Facter::Util::FileHelper.safe_read("#{dir}#{file}", nil)
|
|
222
|
-
next unless content =~ /interface.*#{interface_name}/
|
|
223
|
-
|
|
224
|
-
dhcp = content.match(/dhcp-server-identifier ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/)
|
|
225
|
-
return dhcp[1] if dhcp
|
|
226
|
-
end
|
|
227
|
-
end
|
|
228
|
-
return unless File.readable?('/var/lib/NetworkManager/')
|
|
229
|
-
|
|
230
|
-
search_internal_leases(interface_name)
|
|
231
|
-
end
|
|
232
|
-
|
|
233
|
-
def search_internal_leases(interface_name)
|
|
234
|
-
files = Dir.entries('/var/lib/NetworkManager/').reject { |dir| dir =~ /^\.+$/ }
|
|
235
|
-
lease_file = files.find { |file| file =~ /internal.*#{interface_name}\.lease/ }
|
|
236
|
-
return unless lease_file
|
|
237
|
-
|
|
238
|
-
dhcp = Facter::Util::FileHelper.safe_read("/var/lib/NetworkManager/#{lease_file}", nil)
|
|
239
|
-
|
|
240
|
-
return unless dhcp
|
|
241
|
-
|
|
242
|
-
dhcp = dhcp.match(/SERVER_ADDRESS=(.*)/)
|
|
243
|
-
dhcp[1] if dhcp
|
|
244
|
-
end
|
|
245
|
-
|
|
246
|
-
def retrieve_primary_interface
|
|
247
|
-
primary_helper = Facter::Util::Resolvers::Networking::PrimaryInterface
|
|
248
|
-
primary_interface = primary_helper.read_from_proc_route
|
|
249
|
-
primary_interface ||= primary_helper.read_from_ip_route
|
|
250
|
-
primary_interface ||= primary_helper.find_in_interfaces(@fact_list[:interfaces])
|
|
251
|
-
|
|
252
|
-
@fact_list[:primary_interface] = primary_interface
|
|
253
|
-
end
|
|
254
|
-
|
|
255
|
-
end
|
|
256
|
-
end
|
|
257
|
-
end
|
|
258
|
-
end
|