facter 4.0.49 → 4.0.50

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 (143) hide show
  1. checksums.yaml +4 -4
  2. data/lib/facter/config.rb +20 -7
  3. data/lib/facter/custom_facts/core/execution/base.rb +3 -2
  4. data/lib/facter/custom_facts/core/execution/popen3.rb +47 -0
  5. data/lib/facter/custom_facts/util/fact.rb +2 -2
  6. data/lib/facter/facts/alpine/os/release.rb +29 -0
  7. data/lib/facter/facts/amzn/os/release.rb +29 -0
  8. data/lib/facter/facts/devuan/os/distro/release.rb +36 -0
  9. data/lib/facter/facts/devuan/os/release.rb +29 -0
  10. data/lib/facter/facts/gentoo/os/release.rb +29 -0
  11. data/lib/facter/facts/linuxmint/os/name.rb +18 -0
  12. data/lib/facter/facts/linuxmint/os/release.rb +35 -0
  13. data/lib/facter/facts/mageia/os/release.rb +36 -0
  14. data/lib/facter/facts/meego/os/release.rb +29 -0
  15. data/lib/facter/facts/oel/os/release.rb +29 -0
  16. data/lib/facter/facts/ol/os/release.rb +29 -0
  17. data/lib/facter/facts/openwrt/os/release.rb +35 -0
  18. data/lib/facter/facts/ovs/os/release.rb +29 -0
  19. data/lib/facter/facts/photon/os/release.rb +45 -0
  20. data/lib/facter/facts/rhel/os/release.rb +1 -8
  21. data/lib/facter/facts/slackware/os/release.rb +35 -0
  22. data/lib/facter/framework/config/config_reader.rb +7 -0
  23. data/lib/facter/framework/config/fact_groups.rb +3 -0
  24. data/lib/facter/framework/core/fact_loaders/external_fact_loader.rb +0 -4
  25. data/lib/facter/framework/core/fact_loaders/fact_loader.rb +2 -0
  26. data/lib/facter/framework/detector/os_detector.rb +7 -0
  27. data/lib/facter/resolvers/aio_agent_version.rb +1 -1
  28. data/lib/facter/resolvers/aix/architecture.rb +1 -1
  29. data/lib/facter/resolvers/aix/disks.rb +1 -1
  30. data/lib/facter/resolvers/aix/ffi/ffi.rb +63 -0
  31. data/lib/facter/resolvers/aix/ffi/ffi_helper.rb +146 -20
  32. data/lib/facter/resolvers/aix/ffi/structs.rb +69 -0
  33. data/lib/facter/resolvers/aix/filesystem.rb +1 -1
  34. data/lib/facter/resolvers/aix/hardware.rb +1 -1
  35. data/lib/facter/resolvers/aix/load_averages.rb +2 -2
  36. data/lib/facter/resolvers/aix/memory.rb +1 -1
  37. data/lib/facter/resolvers/aix/mountpoints.rb +1 -1
  38. data/lib/facter/resolvers/aix/networking.rb +9 -16
  39. data/lib/facter/resolvers/aix/nim.rb +1 -1
  40. data/lib/facter/resolvers/aix/os_level.rb +1 -1
  41. data/lib/facter/resolvers/aix/partitions.rb +1 -1
  42. data/lib/facter/resolvers/aix/processors.rb +1 -1
  43. data/lib/facter/resolvers/aix/serialnumber.rb +1 -1
  44. data/lib/facter/resolvers/augeas.rb +1 -1
  45. data/lib/facter/resolvers/base_resolver.rb +4 -4
  46. data/lib/facter/resolvers/bsd/processors.rb +1 -1
  47. data/lib/facter/resolvers/cloud.rb +1 -1
  48. data/lib/facter/resolvers/containers.rb +1 -1
  49. data/lib/facter/resolvers/debian_version.rb +1 -1
  50. data/lib/facter/resolvers/disk.rb +1 -1
  51. data/lib/facter/resolvers/dmi.rb +1 -1
  52. data/lib/facter/resolvers/dmi_decode.rb +1 -1
  53. data/lib/facter/resolvers/ec2.rb +1 -1
  54. data/lib/facter/resolvers/eos_release.rb +1 -1
  55. data/lib/facter/resolvers/facterversion.rb +1 -1
  56. data/lib/facter/resolvers/filesystems.rb +1 -1
  57. data/lib/facter/resolvers/fips_enabled.rb +1 -1
  58. data/lib/facter/resolvers/freebsd/dmi.rb +1 -1
  59. data/lib/facter/resolvers/freebsd/freebsd_version.rb +1 -1
  60. data/lib/facter/resolvers/freebsd/geom.rb +1 -1
  61. data/lib/facter/resolvers/freebsd/processors.rb +1 -1
  62. data/lib/facter/resolvers/freebsd/swap_memory.rb +1 -1
  63. data/lib/facter/resolvers/freebsd/system_memory.rb +1 -1
  64. data/lib/facter/resolvers/freebsd/virtual.rb +1 -1
  65. data/lib/facter/resolvers/gce.rb +1 -1
  66. data/lib/facter/resolvers/hostname.rb +1 -1
  67. data/lib/facter/resolvers/identity.rb +1 -1
  68. data/lib/facter/resolvers/linux/docker_uptime.rb +1 -1
  69. data/lib/facter/resolvers/linux/load_averages.rb +1 -1
  70. data/lib/facter/resolvers/load_averages.rb +1 -1
  71. data/lib/facter/resolvers/lpar.rb +1 -1
  72. data/lib/facter/resolvers/lsb_release.rb +1 -1
  73. data/lib/facter/resolvers/lspci.rb +1 -1
  74. data/lib/facter/resolvers/macosx/dmi.rb +1 -1
  75. data/lib/facter/resolvers/macosx/filesystems.rb +1 -1
  76. data/lib/facter/resolvers/macosx/load_averages.rb +1 -1
  77. data/lib/facter/resolvers/macosx/mountpoints.rb +1 -1
  78. data/lib/facter/resolvers/macosx/processor.rb +1 -1
  79. data/lib/facter/resolvers/macosx/swap_memory.rb +1 -1
  80. data/lib/facter/resolvers/macosx/system_memory.rb +1 -1
  81. data/lib/facter/resolvers/macosx/system_profiler.rb +1 -1
  82. data/lib/facter/resolvers/memory.rb +1 -1
  83. data/lib/facter/resolvers/mountpoints.rb +1 -1
  84. data/lib/facter/resolvers/networking.rb +1 -1
  85. data/lib/facter/resolvers/networking_linux.rb +1 -1
  86. data/lib/facter/resolvers/open_vz.rb +1 -1
  87. data/lib/facter/resolvers/os_release.rb +1 -1
  88. data/lib/facter/resolvers/partitions.rb +1 -1
  89. data/lib/facter/resolvers/path.rb +1 -1
  90. data/lib/facter/resolvers/processors.rb +1 -1
  91. data/lib/facter/resolvers/redhat_release.rb +1 -1
  92. data/lib/facter/resolvers/release_from_first_line.rb +41 -0
  93. data/lib/facter/resolvers/ruby.rb +1 -1
  94. data/lib/facter/resolvers/selinux.rb +1 -1
  95. data/lib/facter/resolvers/solaris/disks.rb +1 -1
  96. data/lib/facter/resolvers/solaris/dmi.rb +1 -1
  97. data/lib/facter/resolvers/solaris/dmi_sparc.rb +1 -1
  98. data/lib/facter/resolvers/solaris/filesystems.rb +1 -1
  99. data/lib/facter/resolvers/solaris/ipaddress.rb +1 -1
  100. data/lib/facter/resolvers/solaris/ldom.rb +1 -1
  101. data/lib/facter/resolvers/solaris/memory.rb +1 -1
  102. data/lib/facter/resolvers/solaris/mountpoints.rb +1 -1
  103. data/lib/facter/resolvers/solaris/networking.rb +1 -1
  104. data/lib/facter/resolvers/solaris/os_release.rb +1 -1
  105. data/lib/facter/resolvers/solaris/processors.rb +1 -1
  106. data/lib/facter/resolvers/solaris/zone.rb +1 -1
  107. data/lib/facter/resolvers/solaris/zone_name.rb +1 -1
  108. data/lib/facter/resolvers/specific_release_file.rb +35 -0
  109. data/lib/facter/resolvers/ssh.rb +1 -1
  110. data/lib/facter/resolvers/suse_release.rb +1 -1
  111. data/lib/facter/resolvers/sw_vers.rb +1 -1
  112. data/lib/facter/resolvers/timezone.rb +1 -1
  113. data/lib/facter/resolvers/uname.rb +1 -1
  114. data/lib/facter/resolvers/uptime.rb +1 -1
  115. data/lib/facter/resolvers/virt_what.rb +1 -1
  116. data/lib/facter/resolvers/vmware.rb +1 -1
  117. data/lib/facter/resolvers/windows/aio_agent_version.rb +1 -1
  118. data/lib/facter/resolvers/windows/dmi_bios.rb +1 -1
  119. data/lib/facter/resolvers/windows/dmi_computersystem.rb +1 -1
  120. data/lib/facter/resolvers/windows/ffi/network_utils.rb +1 -2
  121. data/lib/facter/resolvers/windows/fips.rb +1 -1
  122. data/lib/facter/resolvers/windows/hardware_architecture.rb +1 -1
  123. data/lib/facter/resolvers/windows/identity.rb +1 -1
  124. data/lib/facter/resolvers/windows/kernel.rb +1 -1
  125. data/lib/facter/resolvers/windows/memory.rb +1 -1
  126. data/lib/facter/resolvers/windows/netkvm.rb +1 -1
  127. data/lib/facter/resolvers/windows/networking.rb +8 -4
  128. data/lib/facter/resolvers/windows/processors.rb +1 -1
  129. data/lib/facter/resolvers/windows/product_release.rb +1 -1
  130. data/lib/facter/resolvers/windows/ssh.rb +1 -1
  131. data/lib/facter/resolvers/windows/system32.rb +1 -1
  132. data/lib/facter/resolvers/windows/uptime.rb +1 -1
  133. data/lib/facter/resolvers/windows/virtualization.rb +1 -1
  134. data/lib/facter/resolvers/windows/win_os_description.rb +1 -1
  135. data/lib/facter/resolvers/wpar.rb +1 -1
  136. data/lib/facter/resolvers/xen.rb +1 -1
  137. data/lib/facter/resolvers/zfs.rb +1 -1
  138. data/lib/facter/resolvers/zpool.rb +1 -1
  139. data/lib/facter/util/facts/facts_utils.rb +17 -0
  140. data/lib/facter/util/facts/unit_converter.rb +11 -4
  141. data/lib/facter/util/utils.rb +0 -4
  142. data/lib/facter/version.rb +1 -1
  143. metadata +22 -2
@@ -19,7 +19,7 @@ module Facter
19
19
 
20
20
  private
21
21
 
22
- def post_resolve(fact_name)
22
+ def post_resolve(fact_name, _options)
23
23
  @fact_list.fetch(fact_name) { read_facts(fact_name) }
24
24
  end
25
25
 
@@ -11,7 +11,7 @@ module Facter
11
11
  class << self
12
12
  private
13
13
 
14
- def post_resolve(fact_name)
14
+ def post_resolve(fact_name, _options)
15
15
  log.debug('reading Gce metadata')
16
16
  @fact_list.fetch(fact_name) { read_facts(fact_name) }
17
17
  end
@@ -12,7 +12,7 @@ module Facter
12
12
  class << self
13
13
  private
14
14
 
15
- def post_resolve(fact_name)
15
+ def post_resolve(fact_name, _options)
16
16
  @fact_list.fetch(fact_name) { retrieve_info(fact_name) }
17
17
  end
18
18
 
@@ -10,7 +10,7 @@ module Facter
10
10
  class << self
11
11
  private
12
12
 
13
- def post_resolve(fact_name)
13
+ def post_resolve(fact_name, _options)
14
14
  @fact_list.fetch(fact_name) { retrieve_identity(fact_name) }
15
15
  end
16
16
 
@@ -9,7 +9,7 @@ module Facter
9
9
  class << self
10
10
  private
11
11
 
12
- def post_resolve(fact_name)
12
+ def post_resolve(fact_name, _options)
13
13
  @fact_list.fetch(fact_name) { detect_uptime(fact_name) }
14
14
  end
15
15
 
@@ -9,7 +9,7 @@ module Facter
9
9
  class << self
10
10
  private
11
11
 
12
- def post_resolve(fact_name)
12
+ def post_resolve(fact_name, _options)
13
13
  @fact_list.fetch(fact_name) { read_load_averages_file(fact_name) }
14
14
  end
15
15
 
@@ -8,7 +8,7 @@ module Facter
8
8
  class << self
9
9
  private
10
10
 
11
- def post_resolve(fact_name)
11
+ def post_resolve(fact_name, _options)
12
12
  @fact_list.fetch(fact_name) { read_load_averages(fact_name) }
13
13
  end
14
14
 
@@ -8,7 +8,7 @@ module Facter
8
8
  class << self
9
9
  private
10
10
 
11
- def post_resolve(fact_name)
11
+ def post_resolve(fact_name, _options)
12
12
  @fact_list.fetch(fact_name) { read_lpar(fact_name) }
13
13
  end
14
14
 
@@ -14,7 +14,7 @@ module Facter
14
14
  class << self
15
15
  private
16
16
 
17
- def post_resolve(fact_name)
17
+ def post_resolve(fact_name, _options)
18
18
  @fact_list.fetch(fact_name) { retrieve_facts(fact_name) }
19
19
  end
20
20
 
@@ -13,7 +13,7 @@ module Facter
13
13
  class << self
14
14
  private
15
15
 
16
- def post_resolve(fact_name)
16
+ def post_resolve(fact_name, _options)
17
17
  @fact_list.fetch(fact_name) { lspci_command(fact_name) }
18
18
  end
19
19
 
@@ -11,7 +11,7 @@ module Facter
11
11
 
12
12
  private
13
13
 
14
- def post_resolve(fact_name)
14
+ def post_resolve(fact_name, _options)
15
15
  @fact_list.fetch(fact_name) { read_facts }
16
16
  end
17
17
 
@@ -10,7 +10,7 @@ module Facter
10
10
  class << self
11
11
  private
12
12
 
13
- def post_resolve(fact_name)
13
+ def post_resolve(fact_name, _options)
14
14
  @fact_list.fetch(fact_name) { read_filesystems(fact_name) }
15
15
  end
16
16
 
@@ -9,7 +9,7 @@ module Facter
9
9
  class << self
10
10
  private
11
11
 
12
- def post_resolve(fact_name)
12
+ def post_resolve(fact_name, _options)
13
13
  @fact_list.fetch(fact_name) { read_load_averages_file(fact_name) }
14
14
  end
15
15
 
@@ -10,7 +10,7 @@ module Facter
10
10
  class << self
11
11
  private
12
12
 
13
- def post_resolve(fact_name)
13
+ def post_resolve(fact_name, _options)
14
14
  @fact_list.fetch(fact_name) { read_mounts }
15
15
  end
16
16
 
@@ -18,7 +18,7 @@ module Facter
18
18
 
19
19
  private
20
20
 
21
- def post_resolve(fact_name)
21
+ def post_resolve(fact_name, _options)
22
22
  @fact_list.fetch(fact_name) { read_processor_data(fact_name) }
23
23
  end
24
24
 
@@ -9,7 +9,7 @@ module Facter
9
9
  class << self
10
10
  private
11
11
 
12
- def post_resolve(fact_name)
12
+ def post_resolve(fact_name, _options)
13
13
  @fact_list.fetch(fact_name) { read_swap_memory(fact_name) }
14
14
  end
15
15
 
@@ -9,7 +9,7 @@ module Facter
9
9
  class << self
10
10
  private
11
11
 
12
- def post_resolve(fact_name)
12
+ def post_resolve(fact_name, _options)
13
13
  @fact_list.fetch(fact_name) { calculate_system_memory(fact_name) }
14
14
  end
15
15
 
@@ -20,7 +20,7 @@ module Facter
20
20
  class << self
21
21
  private
22
22
 
23
- def post_resolve(fact_name)
23
+ def post_resolve(fact_name, _options)
24
24
  @fact_list.fetch(fact_name) { retrieve_system_profiler(fact_name) }
25
25
  end
26
26
 
@@ -11,7 +11,7 @@ module Facter
11
11
  class << self
12
12
  private
13
13
 
14
- def post_resolve(fact_name)
14
+ def post_resolve(fact_name, _options)
15
15
  @fact_list.fetch(fact_name) { read_meminfo_file(fact_name) }
16
16
  end
17
17
 
@@ -12,7 +12,7 @@ module Facter
12
12
  class << self
13
13
  private
14
14
 
15
- def post_resolve(fact_name)
15
+ def post_resolve(fact_name, _options)
16
16
  @fact_list.fetch(fact_name) { read_mounts(fact_name) }
17
17
  end
18
18
 
@@ -8,7 +8,7 @@ module Facter
8
8
  class << self
9
9
  private
10
10
 
11
- def post_resolve(fact_name)
11
+ def post_resolve(fact_name, _options)
12
12
  @fact_list.fetch(fact_name) { read_facts(fact_name) }
13
13
  end
14
14
 
@@ -19,7 +19,7 @@ module Facter
19
19
  class << self
20
20
  private
21
21
 
22
- def post_resolve(fact_name)
22
+ def post_resolve(fact_name, _options)
23
23
  @fact_list.fetch(fact_name) { retrieve_network_info(fact_name) }
24
24
 
25
25
  @fact_list[fact_name]
@@ -10,7 +10,7 @@ module Facter
10
10
  class << self
11
11
  private
12
12
 
13
- def post_resolve(fact_name)
13
+ def post_resolve(fact_name, _options)
14
14
  @fact_list.fetch(fact_name) { check_proc_vz(fact_name) }
15
15
  end
16
16
 
@@ -19,7 +19,7 @@ module Facter
19
19
  class << self
20
20
  private
21
21
 
22
- def post_resolve(fact_name)
22
+ def post_resolve(fact_name, _options)
23
23
  @fact_list.fetch(fact_name) { read_os_release_file(fact_name) }
24
24
  end
25
25
 
@@ -11,7 +11,7 @@ module Facter
11
11
  class << self
12
12
  private
13
13
 
14
- def post_resolve(fact_name)
14
+ def post_resolve(fact_name, _options)
15
15
  @fact_list.fetch(fact_name) { read_partitions(fact_name) }
16
16
  end
17
17
 
@@ -8,7 +8,7 @@ module Facter
8
8
  class << self
9
9
  private
10
10
 
11
- def post_resolve(fact_name)
11
+ def post_resolve(fact_name, _options)
12
12
  @fact_list.fetch(fact_name) { read_path_from_env }
13
13
  end
14
14
 
@@ -18,7 +18,7 @@ module Facter
18
18
 
19
19
  private
20
20
 
21
- def post_resolve(fact_name)
21
+ def post_resolve(fact_name, _options)
22
22
  @fact_list.fetch(fact_name) { read_cpuinfo(fact_name) }
23
23
  end
24
24
 
@@ -12,7 +12,7 @@ module Facter
12
12
  class << self
13
13
  private
14
14
 
15
- def post_resolve(fact_name)
15
+ def post_resolve(fact_name, _options)
16
16
  @fact_list.fetch(fact_name) { read_redhat_release(fact_name) }
17
17
  end
18
18
 
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facter
4
+ module Resolvers
5
+ class ReleaseFromFirstLine < BaseResolver
6
+ # :release
7
+
8
+ init_resolver
9
+
10
+ class << self
11
+ private
12
+
13
+ def post_resolve(fact_name, options)
14
+ @fact_list.fetch(fact_name) { read_release_file(fact_name, options) }
15
+ end
16
+
17
+ def read_release_file(fact_name, options)
18
+ release_file = options[:release_file]
19
+ return unless release_file
20
+
21
+ output = Facter::Util::FileHelper.safe_read(release_file, nil)
22
+ return @fact_list[fact_name] = nil if output.nil?
23
+
24
+ @fact_list[:release] = retrieve_version(output)
25
+
26
+ @fact_list[fact_name]
27
+ end
28
+
29
+ def retrieve_version(output)
30
+ if output[/(Rawhide)$/]
31
+ 'Rawhide'
32
+ elsif output['release']
33
+ output.strip =~ /release (\d[\d.]*)/ ? Regexp.last_match(1) : nil
34
+ else
35
+ output.strip =~ /Amazon Linux (\d+)/ ? Regexp.last_match(1) : nil
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -8,7 +8,7 @@ module Facter
8
8
  class << self
9
9
  private
10
10
 
11
- def post_resolve(fact_name)
11
+ def post_resolve(fact_name, _options)
12
12
  @fact_list.fetch(fact_name) { retrieve_ruby_information(fact_name) }
13
13
  end
14
14
 
@@ -8,7 +8,7 @@ module Facter
8
8
  class << self
9
9
  private
10
10
 
11
- def post_resolve(fact_name)
11
+ def post_resolve(fact_name, _options)
12
12
  @fact_list.fetch(fact_name) { retrieve_facts(fact_name) }
13
13
  end
14
14
 
@@ -9,7 +9,7 @@ module Facter
9
9
  class << self
10
10
  private
11
11
 
12
- def post_resolve(fact_name)
12
+ def post_resolve(fact_name, _options)
13
13
  @fact_list.fetch(fact_name) { read_disks_info(fact_name) }
14
14
  end
15
15
 
@@ -9,7 +9,7 @@ module Facter
9
9
  class << self
10
10
  private
11
11
 
12
- def post_resolve(fact_name)
12
+ def post_resolve(fact_name, _options)
13
13
  @fact_list.fetch(fact_name) { read_facts(fact_name) }
14
14
  end
15
15
 
@@ -9,7 +9,7 @@ module Facter
9
9
  class << self
10
10
  private
11
11
 
12
- def post_resolve(fact_name)
12
+ def post_resolve(fact_name, _options)
13
13
  @fact_list.fetch(fact_name) { read_facts(fact_name) }
14
14
  end
15
15
 
@@ -9,7 +9,7 @@ module Facter
9
9
  class << self
10
10
  private
11
11
 
12
- def post_resolve(fact_name)
12
+ def post_resolve(fact_name, _options)
13
13
  @fact_list.fetch(fact_name) { read_sysdef_file(fact_name) }
14
14
  end
15
15
 
@@ -9,7 +9,7 @@ module Facter
9
9
  class << self
10
10
  private
11
11
 
12
- def post_resolve(fact_name)
12
+ def post_resolve(fact_name, _options)
13
13
  @fact_list.fetch(fact_name) { read_ipaddress(fact_name) }
14
14
  end
15
15
 
@@ -31,7 +31,7 @@ module Facter
31
31
  class << self
32
32
  private
33
33
 
34
- def post_resolve(fact_name)
34
+ def post_resolve(fact_name, _options)
35
35
  @fact_list.fetch(fact_name) { call_virtinfo(fact_name) }
36
36
  end
37
37
 
@@ -12,7 +12,7 @@ module Facter
12
12
  class << self
13
13
  private
14
14
 
15
- def post_resolve(fact_name)
15
+ def post_resolve(fact_name, _options)
16
16
  @fact_list.fetch(fact_name) { calculate_memory(fact_name) }
17
17
  end
18
18
 
@@ -10,7 +10,7 @@ module Facter
10
10
  class << self
11
11
  private
12
12
 
13
- def post_resolve(fact_name)
13
+ def post_resolve(fact_name, _options)
14
14
  @fact_list.fetch(fact_name) { read_mounts(fact_name) }
15
15
  end
16
16
 
@@ -11,7 +11,7 @@ module Facter
11
11
  class << self
12
12
  private
13
13
 
14
- def post_resolve(fact_name)
14
+ def post_resolve(fact_name, _options)
15
15
  @fact_list.fetch(fact_name) { read_facts(fact_name) }
16
16
  end
17
17
 
@@ -12,7 +12,7 @@ module Facter
12
12
  class << self
13
13
  private
14
14
 
15
- def post_resolve(fact_name)
15
+ def post_resolve(fact_name, _options)
16
16
  @fact_list.fetch(fact_name) { build_release_facts(fact_name) }
17
17
  end
18
18