facter 4.0.47 → 4.0.52

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 (240) hide show
  1. checksums.yaml +4 -4
  2. data/lib/docs/generate_cli.rb +7 -0
  3. data/lib/facter.rb +76 -43
  4. data/lib/facter/config.rb +21 -9
  5. data/lib/facter/custom_facts/core/aggregate.rb +16 -0
  6. data/lib/facter/custom_facts/core/execution/base.rb +3 -2
  7. data/lib/facter/custom_facts/core/execution/popen3.rb +47 -0
  8. data/lib/facter/custom_facts/core/resolvable.rb +11 -0
  9. data/lib/facter/custom_facts/util/fact.rb +22 -3
  10. data/lib/facter/custom_facts/util/resolution.rb +3 -1
  11. data/lib/facter/facts/aix/disks.rb +1 -1
  12. data/lib/facter/facts/aix/ssh.rb +1 -1
  13. data/lib/facter/facts/aix/sshalgorithmkey.rb +1 -1
  14. data/lib/facter/facts/aix/sshfp_algorithm.rb +1 -1
  15. data/lib/facter/facts/alpine/os/release.rb +29 -0
  16. data/lib/facter/facts/amzn/lsbdistcodename.rb +16 -0
  17. data/lib/facter/facts/amzn/lsbdistdescription.rb +16 -0
  18. data/lib/facter/facts/amzn/lsbdistid.rb +16 -0
  19. data/lib/facter/facts/amzn/os/distro/codename.rb +24 -0
  20. data/lib/facter/facts/amzn/os/distro/description.rb +21 -0
  21. data/lib/facter/facts/amzn/os/distro/id.rb +21 -0
  22. data/lib/facter/facts/amzn/os/distro/release.rb +32 -0
  23. data/lib/facter/facts/amzn/os/release.rb +29 -0
  24. data/lib/facter/facts/devuan/os/distro/release.rb +36 -0
  25. data/lib/facter/facts/devuan/os/release.rb +29 -0
  26. data/lib/facter/facts/freebsd/ssh.rb +1 -1
  27. data/lib/facter/facts/freebsd/sshalgorithmkey.rb +1 -1
  28. data/lib/facter/facts/freebsd/sshfp_algorithm.rb +1 -1
  29. data/lib/facter/facts/gentoo/os/release.rb +29 -0
  30. data/lib/facter/facts/linux/az_metadata.rb +27 -0
  31. data/lib/facter/facts/linux/cloud/provider.rb +17 -0
  32. data/lib/facter/facts/linux/dhcp_servers.rb +2 -2
  33. data/lib/facter/facts/linux/disks.rb +1 -1
  34. data/lib/facter/facts/linux/interfaces.rb +1 -1
  35. data/lib/facter/facts/linux/ipaddress6_interfaces.rb +1 -1
  36. data/lib/facter/facts/linux/ipaddress_interfaces.rb +1 -1
  37. data/lib/facter/facts/linux/macaddress_interfaces.rb +1 -1
  38. data/lib/facter/facts/linux/mtu_interfaces.rb +1 -1
  39. data/lib/facter/facts/linux/netmask6_interfaces.rb +1 -1
  40. data/lib/facter/facts/linux/netmask_interfaces.rb +1 -1
  41. data/lib/facter/facts/linux/network6_interfaces.rb +1 -1
  42. data/lib/facter/facts/linux/network_interfaces.rb +1 -1
  43. data/lib/facter/facts/linux/networking/dhcp.rb +1 -1
  44. data/lib/facter/facts/linux/networking/domain.rb +1 -1
  45. data/lib/facter/facts/linux/networking/fqdn.rb +1 -1
  46. data/lib/facter/facts/linux/networking/hostname.rb +1 -1
  47. data/lib/facter/facts/linux/networking/interfaces.rb +1 -1
  48. data/lib/facter/facts/linux/networking/ip.rb +1 -1
  49. data/lib/facter/facts/linux/networking/ip6.rb +1 -1
  50. data/lib/facter/facts/linux/networking/mac.rb +1 -1
  51. data/lib/facter/facts/linux/networking/mtu.rb +1 -1
  52. data/lib/facter/facts/linux/networking/netmask.rb +1 -1
  53. data/lib/facter/facts/linux/networking/netmask6.rb +1 -1
  54. data/lib/facter/facts/linux/networking/network.rb +1 -1
  55. data/lib/facter/facts/linux/networking/network6.rb +1 -1
  56. data/lib/facter/facts/linux/networking/primary.rb +1 -1
  57. data/lib/facter/facts/linux/networking/scope6.rb +1 -1
  58. data/lib/facter/facts/linux/os/family.rb +4 -2
  59. data/lib/facter/facts/linux/scope6_interfaces.rb +1 -1
  60. data/lib/facter/facts/linux/ssh.rb +1 -1
  61. data/lib/facter/facts/linux/sshalgorithmkey.rb +1 -1
  62. data/lib/facter/facts/linux/sshfp_algorithm.rb +1 -1
  63. data/lib/facter/facts/linuxmint/os/name.rb +18 -0
  64. data/lib/facter/facts/linuxmint/os/release.rb +35 -0
  65. data/lib/facter/facts/macosx/ssh.rb +1 -1
  66. data/lib/facter/facts/macosx/sshalgorithmkey.rb +1 -1
  67. data/lib/facter/facts/macosx/sshfp_algorithm.rb +1 -1
  68. data/lib/facter/facts/mageia/os/release.rb +36 -0
  69. data/lib/facter/facts/meego/os/release.rb +29 -0
  70. data/lib/facter/facts/oel/os/release.rb +29 -0
  71. data/lib/facter/facts/ol/os/release.rb +29 -0
  72. data/lib/facter/facts/openwrt/os/release.rb +35 -0
  73. data/lib/facter/facts/ovs/os/release.rb +29 -0
  74. data/lib/facter/facts/photon/os/release.rb +45 -0
  75. data/lib/facter/facts/rhel/lsbdistcodename.rb +16 -0
  76. data/lib/facter/facts/rhel/lsbdistdescription.rb +16 -0
  77. data/lib/facter/facts/rhel/lsbdistid.rb +16 -0
  78. data/lib/facter/facts/rhel/os/distro/codename.rb +2 -4
  79. data/lib/facter/facts/rhel/os/distro/description.rb +2 -4
  80. data/lib/facter/facts/rhel/os/distro/id.rb +2 -4
  81. data/lib/facter/facts/rhel/os/distro/release.rb +13 -12
  82. data/lib/facter/facts/rhel/os/release.rb +1 -8
  83. data/lib/facter/facts/slackware/os/release.rb +35 -0
  84. data/lib/facter/facts/sles/lsbdistcodename.rb +16 -0
  85. data/lib/facter/facts/sles/lsbdistdescription.rb +16 -0
  86. data/lib/facter/facts/sles/lsbdistid.rb +16 -0
  87. data/lib/facter/facts/sles/os/distro/codename.rb +3 -4
  88. data/lib/facter/facts/sles/os/distro/description.rb +2 -5
  89. data/lib/facter/facts/sles/os/distro/id.rb +6 -5
  90. data/lib/facter/facts/sles/os/distro/release.rb +17 -12
  91. data/lib/facter/facts/solaris/disks.rb +1 -1
  92. data/lib/facter/facts/solaris/ssh.rb +1 -1
  93. data/lib/facter/facts/solaris/sshalgorithmkey.rb +1 -1
  94. data/lib/facter/facts/solaris/sshfp_algorithm.rb +1 -1
  95. data/lib/facter/facts/ubuntu/lsbdistrelease.rb +2 -2
  96. data/lib/facter/facts/windows/az_metadata.rb +27 -0
  97. data/lib/facter/facts/windows/cloud/provider.rb +17 -0
  98. data/lib/facter/facts/windows/networking/fqdn.rb +1 -1
  99. data/lib/facter/framework/cli/cli.rb +6 -8
  100. data/lib/facter/framework/config/config_reader.rb +9 -0
  101. data/lib/facter/framework/config/fact_groups.rb +28 -2
  102. data/lib/facter/framework/core/cache_manager.rb +5 -1
  103. data/lib/facter/framework/core/fact_filter.rb +3 -3
  104. data/lib/facter/framework/core/fact_loaders/external_fact_loader.rb +0 -4
  105. data/lib/facter/framework/core/fact_loaders/fact_loader.rb +2 -1
  106. data/lib/facter/framework/core/fact_manager.rb +5 -3
  107. data/lib/facter/framework/core/options.rb +1 -2
  108. data/lib/facter/framework/core/options/option_store.rb +11 -5
  109. data/lib/facter/framework/detector/os_detector.rb +8 -0
  110. data/lib/facter/framework/logging/logger.rb +4 -4
  111. data/lib/facter/framework/parsers/query_parser.rb +13 -6
  112. data/lib/facter/resolvers/aio_agent_version.rb +1 -1
  113. data/lib/facter/resolvers/aix/{architecture_resolver.rb → architecture.rb} +1 -1
  114. data/lib/facter/resolvers/aix/disks.rb +1 -1
  115. data/lib/facter/resolvers/aix/ffi/ffi.rb +63 -0
  116. data/lib/facter/resolvers/aix/ffi/ffi_helper.rb +146 -20
  117. data/lib/facter/resolvers/aix/ffi/structs.rb +69 -0
  118. data/lib/facter/resolvers/aix/{filesystem_resolver.rb → filesystem.rb} +1 -1
  119. data/lib/facter/resolvers/aix/{hardware_resolver.rb → hardware.rb} +1 -1
  120. data/lib/facter/resolvers/aix/{load_averages_resolver.rb → load_averages.rb} +2 -2
  121. data/lib/facter/resolvers/aix/memory.rb +1 -1
  122. data/lib/facter/resolvers/aix/mountpoints.rb +1 -1
  123. data/lib/facter/resolvers/aix/{networking_resolver.rb → networking.rb} +9 -16
  124. data/lib/facter/resolvers/aix/nim.rb +1 -1
  125. data/lib/facter/resolvers/aix/os_level.rb +1 -1
  126. data/lib/facter/resolvers/aix/partitions.rb +1 -1
  127. data/lib/facter/resolvers/aix/processors.rb +1 -1
  128. data/lib/facter/resolvers/aix/serialnumber.rb +1 -1
  129. data/lib/facter/resolvers/{augeas_resolver.rb → augeas.rb} +1 -1
  130. data/lib/facter/resolvers/az.rb +39 -0
  131. data/lib/facter/resolvers/base_resolver.rb +4 -4
  132. data/lib/facter/resolvers/bsd/processors.rb +1 -1
  133. data/lib/facter/resolvers/containers.rb +1 -1
  134. data/lib/facter/resolvers/debian_version.rb +1 -1
  135. data/lib/facter/resolvers/{disk_resolver.rb → disk.rb} +1 -1
  136. data/lib/facter/resolvers/{dmi_resolver.rb → dmi.rb} +1 -1
  137. data/lib/facter/resolvers/dmi_decode.rb +1 -1
  138. data/lib/facter/resolvers/ec2.rb +1 -1
  139. data/lib/facter/resolvers/{eos_release_resolver.rb → eos_release.rb} +1 -1
  140. data/lib/facter/resolvers/{facterversion_resolver.rb → facterversion.rb} +1 -1
  141. data/lib/facter/resolvers/{filesystems_resolver.rb → filesystems.rb} +1 -1
  142. data/lib/facter/resolvers/{fips_enabled_resolver.rb → fips_enabled.rb} +1 -1
  143. data/lib/facter/resolvers/freebsd/{dmi_resolver.rb → dmi.rb} +1 -1
  144. data/lib/facter/resolvers/freebsd/{freebsd_version_resolver.rb → freebsd_version.rb} +1 -1
  145. data/lib/facter/resolvers/freebsd/{geom_resolver.rb → geom.rb} +1 -1
  146. data/lib/facter/resolvers/freebsd/processors.rb +1 -1
  147. data/lib/facter/resolvers/freebsd/{swap_memory_resolver.rb → swap_memory.rb} +1 -1
  148. data/lib/facter/resolvers/freebsd/{system_memory_resolver.rb → system_memory.rb} +1 -1
  149. data/lib/facter/resolvers/freebsd/{virtual_resolver.rb → virtual.rb} +1 -1
  150. data/lib/facter/resolvers/gce.rb +1 -1
  151. data/lib/facter/resolvers/{hostname_resolver.rb → hostname.rb} +1 -1
  152. data/lib/facter/resolvers/{identity_resolver.rb → identity.rb} +1 -1
  153. data/lib/facter/resolvers/linux/docker_uptime.rb +1 -1
  154. data/lib/facter/resolvers/linux/hostname.rb +115 -0
  155. data/lib/facter/resolvers/linux/load_averages.rb +1 -1
  156. data/lib/facter/resolvers/linux/networking.rb +106 -0
  157. data/lib/facter/resolvers/load_averages.rb +1 -1
  158. data/lib/facter/resolvers/{lpar_resolver.rb → lpar.rb} +1 -1
  159. data/lib/facter/resolvers/{lsb_release_resolver.rb → lsb_release.rb} +1 -1
  160. data/lib/facter/resolvers/lspci.rb +1 -1
  161. data/lib/facter/resolvers/macosx/{dmi_resolver.rb → dmi.rb} +1 -1
  162. data/lib/facter/resolvers/macosx/{filesystems_resolver.rb → filesystems.rb} +1 -1
  163. data/lib/facter/resolvers/macosx/{load_averages_resolver.rb → load_averages.rb} +1 -1
  164. data/lib/facter/resolvers/macosx/{mountpoints_resolver.rb → mountpoints.rb} +1 -1
  165. data/lib/facter/resolvers/macosx/{processor_resolver.rb → processor.rb} +1 -1
  166. data/lib/facter/resolvers/macosx/{swap_memory_resolver.rb → swap_memory.rb} +1 -1
  167. data/lib/facter/resolvers/macosx/{system_memory_resolver.rb → system_memory.rb} +1 -1
  168. data/lib/facter/resolvers/macosx/{system_profiler_resolver.rb → system_profiler.rb} +1 -1
  169. data/lib/facter/resolvers/{memory_resolver.rb → memory.rb} +1 -1
  170. data/lib/facter/resolvers/{mountpoints_resolver.rb → mountpoints.rb} +1 -1
  171. data/lib/facter/resolvers/{networking_resolver.rb → networking.rb} +1 -1
  172. data/lib/facter/resolvers/open_vz.rb +1 -1
  173. data/lib/facter/resolvers/{os_release_resolver.rb → os_release.rb} +1 -1
  174. data/lib/facter/resolvers/partitions.rb +1 -1
  175. data/lib/facter/resolvers/{path_resolver.rb → path.rb} +1 -1
  176. data/lib/facter/resolvers/{processors_resolver.rb → processors.rb} +1 -1
  177. data/lib/facter/resolvers/redhat_release.rb +71 -0
  178. data/lib/facter/resolvers/release_from_first_line.rb +41 -0
  179. data/lib/facter/resolvers/{ruby_resolver.rb → ruby.rb} +1 -1
  180. data/lib/facter/resolvers/{selinux_resolver.rb → selinux.rb} +1 -1
  181. data/lib/facter/resolvers/solaris/disks.rb +1 -1
  182. data/lib/facter/resolvers/solaris/dmi.rb +1 -1
  183. data/lib/facter/resolvers/solaris/dmi_sparc.rb +1 -1
  184. data/lib/facter/resolvers/solaris/ffi/functions.rb +1 -1
  185. data/lib/facter/resolvers/solaris/filesystems.rb +1 -1
  186. data/lib/facter/resolvers/solaris/ipaddress.rb +1 -1
  187. data/lib/facter/resolvers/solaris/ldom.rb +1 -1
  188. data/lib/facter/resolvers/solaris/memory.rb +1 -1
  189. data/lib/facter/resolvers/solaris/mountpoints.rb +1 -1
  190. data/lib/facter/resolvers/solaris/networking.rb +1 -1
  191. data/lib/facter/resolvers/solaris/os_release.rb +1 -1
  192. data/lib/facter/resolvers/solaris/processors.rb +1 -1
  193. data/lib/facter/resolvers/solaris/zone.rb +1 -1
  194. data/lib/facter/resolvers/solaris/zone_name.rb +1 -1
  195. data/lib/facter/resolvers/specific_release_file.rb +35 -0
  196. data/lib/facter/resolvers/{ssh_resolver.rb → ssh.rb} +2 -2
  197. data/lib/facter/resolvers/{suse_release_resolver.rb → suse_release.rb} +1 -1
  198. data/lib/facter/resolvers/{sw_vers_resolver.rb → sw_vers.rb} +1 -1
  199. data/lib/facter/resolvers/{timezone_resolver.rb → timezone.rb} +1 -1
  200. data/lib/facter/resolvers/{uname_resolver.rb → uname.rb} +1 -1
  201. data/lib/facter/resolvers/{uptime_resolver.rb → uptime.rb} +1 -1
  202. data/lib/facter/resolvers/virt_what.rb +1 -1
  203. data/lib/facter/resolvers/vmware.rb +1 -1
  204. data/lib/facter/resolvers/windows/aio_agent_version.rb +1 -1
  205. data/lib/facter/resolvers/windows/{dmi_bios_resolver.rb → dmi_bios.rb} +1 -1
  206. data/lib/facter/resolvers/windows/{dmi_computersystem_resolver.rb → dmi_computersystem.rb} +1 -1
  207. data/lib/facter/resolvers/windows/ffi/network_utils.rb +1 -2
  208. data/lib/facter/resolvers/windows/{fips_resolver.rb → fips.rb} +1 -1
  209. data/lib/facter/resolvers/windows/{hardware_architecture_resolver.rb → hardware_architecture.rb} +1 -1
  210. data/lib/facter/resolvers/windows/{identity_resolver.rb → identity.rb} +1 -1
  211. data/lib/facter/resolvers/windows/{kernel_resolver.rb → kernel.rb} +1 -1
  212. data/lib/facter/resolvers/windows/{memory_resolver.rb → memory.rb} +1 -1
  213. data/lib/facter/resolvers/windows/{netkvm_resolver.rb → netkvm.rb} +1 -1
  214. data/lib/facter/resolvers/windows/{networking_resolver.rb → networking.rb} +19 -2
  215. data/lib/facter/resolvers/windows/{processors_resolver.rb → processors.rb} +1 -1
  216. data/lib/facter/resolvers/windows/{product_release_resolver.rb → product_release.rb} +1 -1
  217. data/lib/facter/resolvers/windows/ssh.rb +1 -1
  218. data/lib/facter/resolvers/windows/{system32_resolver.rb → system32.rb} +1 -1
  219. data/lib/facter/resolvers/windows/{uptime_resolver.rb → uptime.rb} +1 -1
  220. data/lib/facter/resolvers/windows/{virtualization_resolver.rb → virtualization.rb} +1 -1
  221. data/lib/facter/resolvers/windows/{win_os_description_resolver.rb → win_os_description.rb} +1 -1
  222. data/lib/facter/resolvers/{wpar_resolver.rb → wpar.rb} +1 -1
  223. data/lib/facter/resolvers/xen.rb +1 -1
  224. data/lib/facter/resolvers/zfs.rb +1 -1
  225. data/lib/facter/resolvers/zpool.rb +1 -1
  226. data/lib/facter/templates/man.erb +8 -0
  227. data/lib/facter/util/facts/facts_utils.rb +33 -0
  228. data/lib/facter/util/facts/unit_converter.rb +11 -4
  229. data/lib/facter/util/linux/dhcp.rb +86 -0
  230. data/lib/facter/util/linux/routing_table.rb +60 -0
  231. data/lib/facter/util/linux/socket_parser.rb +114 -0
  232. data/lib/facter/util/resolvers/ffi/hostname.rb +70 -0
  233. data/lib/facter/util/utils.rb +0 -4
  234. data/lib/facter/version.rb +1 -1
  235. metadata +124 -83
  236. data/lib/facter/facts/linux/cloud.rb +0 -15
  237. data/lib/facter/resolvers/cloud.rb +0 -39
  238. data/lib/facter/resolvers/networking_linux_resolver.rb +0 -258
  239. data/lib/facter/resolvers/redhat_release_resolver.rb +0 -55
  240. data/lib/facter/util/resolvers/networking.rb +0 -90
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Meego
5
+ module Os
6
+ class Release
7
+ FACT_NAME = 'os.release'
8
+ ALIASES = %w[operatingsystemmajrelease operatingsystemrelease].freeze
9
+
10
+ def call_the_resolver
11
+ version = determine_release_version
12
+
13
+ return Facter::ResolvedFact.new(FACT_NAME, nil) unless version
14
+
15
+ [Facter::ResolvedFact.new(FACT_NAME, version),
16
+ Facter::ResolvedFact.new(ALIASES.first, version['major'], :legacy),
17
+ Facter::ResolvedFact.new(ALIASES.last, version['full'], :legacy)]
18
+ end
19
+
20
+ def determine_release_version
21
+ version = Facter::Resolvers::ReleaseFromFirstLine.resolve(:release, release_file: '/etc/meego-release')
22
+ version ||= Facter::Resolvers::OsRelease.resolve(:version_id)
23
+
24
+ Facter::Util::Facts.release_hash_from_string(version)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Oel
5
+ module Os
6
+ class Release
7
+ FACT_NAME = 'os.release'
8
+ ALIASES = %w[operatingsystemmajrelease operatingsystemrelease].freeze
9
+
10
+ def call_the_resolver
11
+ version = determine_release_version
12
+
13
+ return Facter::ResolvedFact.new(FACT_NAME, nil) unless version
14
+
15
+ [Facter::ResolvedFact.new(FACT_NAME, version),
16
+ Facter::ResolvedFact.new(ALIASES.first, version['major'], :legacy),
17
+ Facter::ResolvedFact.new(ALIASES.last, version['full'], :legacy)]
18
+ end
19
+
20
+ def determine_release_version
21
+ version = Facter::Resolvers::ReleaseFromFirstLine.resolve(:release, release_file: '/etc/enterprise-release')
22
+ version ||= Facter::Resolvers::OsRelease.resolve(:version_id)
23
+
24
+ Facter::Util::Facts.release_hash_from_string(version)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Ol
5
+ module Os
6
+ class Release
7
+ FACT_NAME = 'os.release'
8
+ ALIASES = %w[operatingsystemmajrelease operatingsystemrelease].freeze
9
+
10
+ def call_the_resolver
11
+ version = determine_release_version
12
+
13
+ return Facter::ResolvedFact.new(FACT_NAME, nil) unless version
14
+
15
+ [Facter::ResolvedFact.new(FACT_NAME, version),
16
+ Facter::ResolvedFact.new(ALIASES.first, version['major'], :legacy),
17
+ Facter::ResolvedFact.new(ALIASES.last, version['full'], :legacy)]
18
+ end
19
+
20
+ def determine_release_version
21
+ version = Facter::Resolvers::ReleaseFromFirstLine.resolve(:release, release_file: '/etc/oracle-release')
22
+ version ||= Facter::Resolvers::OsRelease.resolve(:version_id)
23
+
24
+ Facter::Util::Facts.release_hash_from_string(version)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Openwrt
5
+ module Os
6
+ class Release
7
+ FACT_NAME = 'os.release'
8
+ ALIASES = %w[operatingsystemmajrelease operatingsystemrelease].freeze
9
+
10
+ def call_the_resolver
11
+ version = from_specific_file || from_os_release
12
+
13
+ return Facter::ResolvedFact.new(FACT_NAME, nil) unless version
14
+
15
+ [Facter::ResolvedFact.new(FACT_NAME, version),
16
+ Facter::ResolvedFact.new(ALIASES.first, version['major'], :legacy),
17
+ Facter::ResolvedFact.new(ALIASES.last, version['full'], :legacy)]
18
+ end
19
+
20
+ def from_specific_file
21
+ version = Facter::Resolvers::SpecificReleaseFile.resolve(:release,
22
+ { release_file: '/etc/openwrt_version',
23
+ regex: /^(\d+.\d+.*)/ })
24
+ Facter::Util::Facts.release_hash_from_matchdata(version)
25
+ end
26
+
27
+ def from_os_release
28
+ version = Facter::Resolvers::OsRelease.resolve(:version_id)
29
+
30
+ Facter::Util::Facts.release_hash_from_string(version)
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Ovs
5
+ module Os
6
+ class Release
7
+ FACT_NAME = 'os.release'
8
+ ALIASES = %w[operatingsystemmajrelease operatingsystemrelease].freeze
9
+
10
+ def call_the_resolver
11
+ version = determine_release_version
12
+
13
+ return Facter::ResolvedFact.new(FACT_NAME, nil) unless version
14
+
15
+ [Facter::ResolvedFact.new(FACT_NAME, version),
16
+ Facter::ResolvedFact.new(ALIASES.first, version['major'], :legacy),
17
+ Facter::ResolvedFact.new(ALIASES.last, version['full'], :legacy)]
18
+ end
19
+
20
+ def determine_release_version
21
+ version = Facter::Resolvers::ReleaseFromFirstLine.resolve(:release, release_file: '/etc/ovs-release')
22
+ version ||= Facter::Resolvers::OsRelease.resolve(:version_id)
23
+
24
+ Facter::Util::Facts.release_hash_from_string(version)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Photon
5
+ module Os
6
+ class Release
7
+ FACT_NAME = 'os.release'
8
+ ALIASES = %w[operatingsystemmajrelease operatingsystemrelease].freeze
9
+
10
+ def call_the_resolver
11
+ version = from_specific_file || from_os_release
12
+
13
+ return Facter::ResolvedFact.new(FACT_NAME, nil) unless version
14
+
15
+ [Facter::ResolvedFact.new(FACT_NAME, version),
16
+ Facter::ResolvedFact.new(ALIASES.first, version['major'], :legacy),
17
+ Facter::ResolvedFact.new(ALIASES.last, version['full'], :legacy)]
18
+ end
19
+
20
+ def from_specific_file
21
+ version = Facter::Resolvers::SpecificReleaseFile.resolve(:release,
22
+ { release_file: '/etc/lsb-release',
23
+ regex: /DISTRIB_RELEASE="(\d+)\.(\d+)/ })
24
+ return if version.nil? || version[1].nil? || version[2].nil?
25
+
26
+ major = version[1].to_s
27
+ minor = version[2].to_s
28
+ version_data = major + '.' + minor
29
+
30
+ {
31
+ 'full' => version_data,
32
+ 'major' => major,
33
+ 'minor' => minor
34
+ }
35
+ end
36
+
37
+ def from_os_release
38
+ version = Facter::Resolvers::OsRelease.resolve(:version_id)
39
+
40
+ Facter::Util::Facts.release_hash_from_string(version)
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Rhel
5
+ class Lsbdistcodename
6
+ FACT_NAME = 'lsbdistcodename'
7
+ TYPE = :legacy
8
+
9
+ def call_the_resolver
10
+ fact_value = Facter::Resolvers::LsbRelease.resolve(:codename)
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 Rhel
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 Rhel
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,11 @@ 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::LsbRelease.resolve(:codename)
11
+ fact_value = Facter::Resolvers::RedHatRelease.resolve(:codename)
13
12
 
14
- [Facter::ResolvedFact.new(FACT_NAME, fact_value),
15
- Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
13
+ Facter::ResolvedFact.new(FACT_NAME, fact_value)
16
14
  end
17
15
  end
18
16
  end
@@ -6,13 +6,11 @@ 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::LsbRelease.resolve(:description)
11
+ fact_value = Facter::Resolvers::RedHatRelease.resolve(:description)
13
12
 
14
- [Facter::ResolvedFact.new(FACT_NAME, fact_value),
15
- Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
13
+ Facter::ResolvedFact.new(FACT_NAME, fact_value)
16
14
  end
17
15
  end
18
16
  end
@@ -6,13 +6,11 @@ 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::LsbRelease.resolve(:distributor_id)
11
+ fact_value = Facter::Resolvers::RedHatRelease.resolve(:distributor_id)
13
12
 
14
- [Facter::ResolvedFact.new(FACT_NAME, fact_value),
15
- Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
13
+ Facter::ResolvedFact.new(FACT_NAME, fact_value)
16
14
  end
17
15
  end
18
16
  end
@@ -9,20 +9,21 @@ module Facts
9
9
  ALIASES = %w[lsbdistrelease lsbmajdistrelease lsbminordistrelease].freeze
10
10
 
11
11
  def call_the_resolver
12
- fact_value = Facter::Resolvers::LsbRelease.resolve(:release)
13
- return Facter::ResolvedFact.new(FACT_NAME, nil) unless fact_value
12
+ version = determine_release_version
14
13
 
15
- versions = fact_value.split('.')
16
- release = {
17
- 'full' => fact_value,
18
- 'major' => versions[0],
19
- 'minor' => versions[1]
20
- }
14
+ return Facter::ResolvedFact.new(FACT_NAME, nil) unless version
21
15
 
22
- [Facter::ResolvedFact.new(FACT_NAME, release),
23
- Facter::ResolvedFact.new(ALIASES[0], fact_value, :legacy),
24
- Facter::ResolvedFact.new(ALIASES[1], versions[0], :legacy),
25
- Facter::ResolvedFact.new(ALIASES[2], versions[1], :legacy)]
16
+ [Facter::ResolvedFact.new(FACT_NAME, version),
17
+ Facter::ResolvedFact.new(ALIASES[0], version['full'], :legacy),
18
+ Facter::ResolvedFact.new(ALIASES[1], version['major'], :legacy),
19
+ Facter::ResolvedFact.new(ALIASES[2], version['minor'], :legacy)]
20
+ end
21
+
22
+ def determine_release_version
23
+ version = Facter::Resolvers::RedHatRelease.resolve(:version)
24
+ version ||= Facter::Resolvers::OsRelease.resolve(:version_id)
25
+
26
+ Facter::Util::Facts.release_hash_from_string(version)
26
27
  end
27
28
  end
28
29
  end
@@ -21,14 +21,7 @@ module Facts
21
21
  version = Facter::Resolvers::RedHatRelease.resolve(:version)
22
22
  version ||= Facter::Resolvers::OsRelease.resolve(:version_id)
23
23
 
24
- return unless version
25
-
26
- versions = version.split('.')
27
- fact_value = {}
28
- fact_value['full'] = version
29
- fact_value['major'] = versions[0]
30
- fact_value['minor'] = versions[1] if versions[1]
31
- fact_value
24
+ Facter::Util::Facts.release_hash_from_string(version)
32
25
  end
33
26
  end
34
27
  end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Slackware
5
+ module Os
6
+ class Release
7
+ FACT_NAME = 'os.release'
8
+ ALIASES = %w[operatingsystemmajrelease operatingsystemrelease].freeze
9
+
10
+ def call_the_resolver
11
+ version = from_specific_file || from_os_release
12
+
13
+ return Facter::ResolvedFact.new(FACT_NAME, nil) unless version
14
+
15
+ [Facter::ResolvedFact.new(FACT_NAME, version),
16
+ Facter::ResolvedFact.new(ALIASES.first, version['major'], :legacy),
17
+ Facter::ResolvedFact.new(ALIASES.last, version['full'], :legacy)]
18
+ end
19
+
20
+ def from_specific_file
21
+ version = Facter::Resolvers::SpecificReleaseFile.resolve(:release,
22
+ { release_file: '/etc/slackware-version',
23
+ regex: /Slackware ([0-9.]+)/ })
24
+ Facter::Util::Facts.release_hash_from_matchdata(version)
25
+ end
26
+
27
+ def from_os_release
28
+ version = Facter::Resolvers::OsRelease.resolve(:version_id)
29
+
30
+ Facter::Util::Facts.release_hash_from_string(version)
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Sles
5
+ class Lsbdistcodename
6
+ FACT_NAME = 'lsbdistcodename'
7
+ TYPE = :legacy
8
+
9
+ def call_the_resolver
10
+ fact_value = Facter::Resolvers::LsbRelease.resolve(:codename)
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 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