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.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/lib/facter.rb +0 -1
  3. data/lib/facter/config.rb +1 -2
  4. data/lib/facter/custom_facts/util/fact.rb +19 -1
  5. data/lib/facter/custom_facts/util/resolution.rb +1 -1
  6. data/lib/facter/facts/aix/disks.rb +1 -1
  7. data/lib/facter/facts/aix/ssh.rb +1 -1
  8. data/lib/facter/facts/aix/sshalgorithmkey.rb +1 -1
  9. data/lib/facter/facts/aix/sshfp_algorithm.rb +1 -1
  10. data/lib/facter/facts/freebsd/ssh.rb +1 -1
  11. data/lib/facter/facts/freebsd/sshalgorithmkey.rb +1 -1
  12. data/lib/facter/facts/freebsd/sshfp_algorithm.rb +1 -1
  13. data/lib/facter/facts/linux/disks.rb +1 -1
  14. data/lib/facter/facts/linux/os/family.rb +4 -2
  15. data/lib/facter/facts/linux/ssh.rb +1 -1
  16. data/lib/facter/facts/linux/sshalgorithmkey.rb +1 -1
  17. data/lib/facter/facts/linux/sshfp_algorithm.rb +1 -1
  18. data/lib/facter/facts/macosx/ssh.rb +1 -1
  19. data/lib/facter/facts/macosx/sshalgorithmkey.rb +1 -1
  20. data/lib/facter/facts/macosx/sshfp_algorithm.rb +1 -1
  21. data/lib/facter/facts/solaris/disks.rb +1 -1
  22. data/lib/facter/facts/solaris/ssh.rb +1 -1
  23. data/lib/facter/facts/solaris/sshalgorithmkey.rb +1 -1
  24. data/lib/facter/facts/solaris/sshfp_algorithm.rb +1 -1
  25. data/lib/facter/facts/windows/networking/fqdn.rb +1 -1
  26. data/lib/facter/framework/core/options/option_store.rb +3 -1
  27. data/lib/facter/framework/detector/os_detector.rb +1 -0
  28. data/lib/facter/resolvers/aix/{architecture_resolver.rb → architecture.rb} +0 -0
  29. data/lib/facter/resolvers/aix/{filesystem_resolver.rb → filesystem.rb} +0 -0
  30. data/lib/facter/resolvers/aix/{hardware_resolver.rb → hardware.rb} +0 -0
  31. data/lib/facter/resolvers/aix/{load_averages_resolver.rb → load_averages.rb} +0 -0
  32. data/lib/facter/resolvers/aix/{networking_resolver.rb → networking.rb} +0 -0
  33. data/lib/facter/resolvers/{augeas_resolver.rb → augeas.rb} +0 -0
  34. data/lib/facter/resolvers/{disk_resolver.rb → disk.rb} +0 -0
  35. data/lib/facter/resolvers/{dmi_resolver.rb → dmi.rb} +0 -0
  36. data/lib/facter/resolvers/{eos_release_resolver.rb → eos_release.rb} +0 -0
  37. data/lib/facter/resolvers/{facterversion_resolver.rb → facterversion.rb} +0 -0
  38. data/lib/facter/resolvers/{filesystems_resolver.rb → filesystems.rb} +0 -0
  39. data/lib/facter/resolvers/{fips_enabled_resolver.rb → fips_enabled.rb} +0 -0
  40. data/lib/facter/resolvers/freebsd/{dmi_resolver.rb → dmi.rb} +0 -0
  41. data/lib/facter/resolvers/freebsd/{freebsd_version_resolver.rb → freebsd_version.rb} +0 -0
  42. data/lib/facter/resolvers/freebsd/{geom_resolver.rb → geom.rb} +0 -0
  43. data/lib/facter/resolvers/freebsd/{swap_memory_resolver.rb → swap_memory.rb} +0 -0
  44. data/lib/facter/resolvers/freebsd/{system_memory_resolver.rb → system_memory.rb} +0 -0
  45. data/lib/facter/resolvers/freebsd/{virtual_resolver.rb → virtual.rb} +0 -0
  46. data/lib/facter/resolvers/{hostname_resolver.rb → hostname.rb} +0 -0
  47. data/lib/facter/resolvers/{identity_resolver.rb → identity.rb} +0 -0
  48. data/lib/facter/resolvers/{lpar_resolver.rb → lpar.rb} +0 -0
  49. data/lib/facter/resolvers/{lsb_release_resolver.rb → lsb_release.rb} +0 -0
  50. data/lib/facter/resolvers/macosx/{dmi_resolver.rb → dmi.rb} +0 -0
  51. data/lib/facter/resolvers/macosx/{filesystems_resolver.rb → filesystems.rb} +0 -0
  52. data/lib/facter/resolvers/macosx/{load_averages_resolver.rb → load_averages.rb} +0 -0
  53. data/lib/facter/resolvers/macosx/{mountpoints_resolver.rb → mountpoints.rb} +0 -0
  54. data/lib/facter/resolvers/macosx/{processor_resolver.rb → processor.rb} +0 -0
  55. data/lib/facter/resolvers/macosx/{swap_memory_resolver.rb → swap_memory.rb} +0 -0
  56. data/lib/facter/resolvers/macosx/{system_memory_resolver.rb → system_memory.rb} +0 -0
  57. data/lib/facter/resolvers/macosx/{system_profiler_resolver.rb → system_profiler.rb} +0 -0
  58. data/lib/facter/resolvers/{memory_resolver.rb → memory.rb} +0 -0
  59. data/lib/facter/resolvers/{mountpoints_resolver.rb → mountpoints.rb} +0 -0
  60. data/lib/facter/resolvers/{networking_resolver.rb → networking.rb} +0 -0
  61. data/lib/facter/resolvers/networking_linux.rb +296 -0
  62. data/lib/facter/resolvers/{os_release_resolver.rb → os_release.rb} +0 -0
  63. data/lib/facter/resolvers/{path_resolver.rb → path.rb} +0 -0
  64. data/lib/facter/resolvers/{processors_resolver.rb → processors.rb} +0 -0
  65. data/lib/facter/resolvers/{redhat_release_resolver.rb → redhat_release.rb} +0 -0
  66. data/lib/facter/resolvers/{ruby_resolver.rb → ruby.rb} +0 -0
  67. data/lib/facter/resolvers/{selinux_resolver.rb → selinux.rb} +0 -0
  68. data/lib/facter/resolvers/{ssh_resolver.rb → ssh.rb} +1 -1
  69. data/lib/facter/resolvers/{suse_release_resolver.rb → suse_release.rb} +0 -0
  70. data/lib/facter/resolvers/{sw_vers_resolver.rb → sw_vers.rb} +0 -0
  71. data/lib/facter/resolvers/{timezone_resolver.rb → timezone.rb} +0 -0
  72. data/lib/facter/resolvers/{uname_resolver.rb → uname.rb} +0 -0
  73. data/lib/facter/resolvers/{uptime_resolver.rb → uptime.rb} +0 -0
  74. data/lib/facter/resolvers/windows/{dmi_bios_resolver.rb → dmi_bios.rb} +0 -0
  75. data/lib/facter/resolvers/windows/{dmi_computersystem_resolver.rb → dmi_computersystem.rb} +0 -0
  76. data/lib/facter/resolvers/windows/{fips_resolver.rb → fips.rb} +0 -0
  77. data/lib/facter/resolvers/windows/{hardware_architecture_resolver.rb → hardware_architecture.rb} +0 -0
  78. data/lib/facter/resolvers/windows/{identity_resolver.rb → identity.rb} +0 -0
  79. data/lib/facter/resolvers/windows/{kernel_resolver.rb → kernel.rb} +0 -0
  80. data/lib/facter/resolvers/windows/{memory_resolver.rb → memory.rb} +0 -0
  81. data/lib/facter/resolvers/windows/{netkvm_resolver.rb → netkvm.rb} +0 -0
  82. data/lib/facter/resolvers/windows/{networking_resolver.rb → networking.rb} +13 -0
  83. data/lib/facter/resolvers/windows/{processors_resolver.rb → processors.rb} +0 -0
  84. data/lib/facter/resolvers/windows/{product_release_resolver.rb → product_release.rb} +0 -0
  85. data/lib/facter/resolvers/windows/{system32_resolver.rb → system32.rb} +0 -0
  86. data/lib/facter/resolvers/windows/{uptime_resolver.rb → uptime.rb} +0 -0
  87. data/lib/facter/resolvers/windows/{virtualization_resolver.rb → virtualization.rb} +0 -0
  88. data/lib/facter/resolvers/windows/{win_os_description_resolver.rb → win_os_description.rb} +0 -0
  89. data/lib/facter/resolvers/{wpar_resolver.rb → wpar.rb} +0 -0
  90. data/lib/facter/util/facts/facts_utils.rb +16 -0
  91. data/lib/facter/version.rb +1 -1
  92. metadata +78 -79
  93. data/lib/facter/resolvers/networking_linux_resolver.rb +0 -258
  94. data/lib/facter/util/resolvers/networking.rb +0 -90
@@ -1,90 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'ipaddr'
4
-
5
- module Facter
6
- module Util
7
- module Resolvers
8
- module Networking
9
- class << self
10
- # Creates a hash with IP, netmask and network. Works for IPV4 and IPV6
11
- # @param [String] addr The IP address
12
- # @param [Integer] mask_length Number of 1 bits the netmask has
13
- #
14
- # @return [Hash] Hash containing ip address, netmask and network
15
- def build_binding(addr, mask_length)
16
- return if !addr || !mask_length
17
-
18
- ip = IPAddr.new(addr)
19
- mask_helper = ip.ipv6? ? 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff' : '255.255.255.255'
20
- mask = IPAddr.new(mask_helper).mask(mask_length)
21
-
22
- { address: addr, netmask: mask.to_s, network: ip.mask(mask_length).to_s }
23
- end
24
-
25
- def expand_main_bindings(networking_facts)
26
- primary = networking_facts[:primary_interface]
27
- interfaces = networking_facts[:interfaces]
28
-
29
- expand_interfaces(interfaces) unless interfaces.nil?
30
- expand_primary_interface(networking_facts, primary) unless primary.nil? || interfaces.nil?
31
- end
32
-
33
- def get_scope(ip)
34
- require 'socket'
35
-
36
- scope6 = []
37
- addrinfo = Addrinfo.new(['AF_INET6', 0, nil, ip], :INET6)
38
-
39
- scope6 << 'compat,' if IPAddr.new(ip).ipv4_compat?
40
- scope6 << if addrinfo.ipv6_linklocal?
41
- 'link'
42
- elsif addrinfo.ipv6_sitelocal?
43
- 'site'
44
- elsif addrinfo.ipv6_loopback?
45
- 'host'
46
- else 'global'
47
- end
48
- scope6.join
49
- end
50
-
51
- def find_valid_binding(bindings)
52
- bindings.each do |binding|
53
- return binding unless ignored_ip_address(binding[:address])
54
- end
55
- bindings.empty? ? nil : bindings.first
56
- end
57
-
58
- def ignored_ip_address(addr)
59
- addr.empty? || addr.start_with?('127.', '169.254.') || addr.start_with?('fe80') || addr.eql?('::1')
60
- end
61
-
62
- private
63
-
64
- def expand_interfaces(interfaces)
65
- interfaces.each_value do |values|
66
- expand_binding(values, values[:bindings]) if values[:bindings]
67
- expand_binding(values, values[:bindings6], false) if values[:bindings6]
68
- end
69
- end
70
-
71
- def expand_primary_interface(networking_facts, primary)
72
- networking_facts[:interfaces][primary].each do |key, value|
73
- networking_facts[key] = value unless %i[bindings bindings6].include?(key)
74
- end
75
- end
76
-
77
- def expand_binding(values, bindings, ipv4_type = true)
78
- binding = find_valid_binding(bindings)
79
- ip_protocol_type = ipv4_type ? '' : '6'
80
-
81
- values["ip#{ip_protocol_type}".to_sym] = binding[:address]
82
- values["netmask#{ip_protocol_type}".to_sym] = binding[:netmask]
83
- values["network#{ip_protocol_type}".to_sym] = binding[:network]
84
- values[:scope6] = get_scope(binding[:address]) unless ipv4_type
85
- end
86
- end
87
- end
88
- end
89
- end
90
- end