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.
- checksums.yaml +4 -4
- data/lib/facter/config.rb +20 -7
- data/lib/facter/custom_facts/core/execution/base.rb +3 -2
- data/lib/facter/custom_facts/core/execution/popen3.rb +47 -0
- data/lib/facter/custom_facts/util/fact.rb +2 -2
- data/lib/facter/facts/alpine/os/release.rb +29 -0
- data/lib/facter/facts/amzn/os/release.rb +29 -0
- data/lib/facter/facts/devuan/os/distro/release.rb +36 -0
- data/lib/facter/facts/devuan/os/release.rb +29 -0
- data/lib/facter/facts/gentoo/os/release.rb +29 -0
- data/lib/facter/facts/linuxmint/os/name.rb +18 -0
- data/lib/facter/facts/linuxmint/os/release.rb +35 -0
- data/lib/facter/facts/mageia/os/release.rb +36 -0
- data/lib/facter/facts/meego/os/release.rb +29 -0
- data/lib/facter/facts/oel/os/release.rb +29 -0
- data/lib/facter/facts/ol/os/release.rb +29 -0
- data/lib/facter/facts/openwrt/os/release.rb +35 -0
- data/lib/facter/facts/ovs/os/release.rb +29 -0
- data/lib/facter/facts/photon/os/release.rb +45 -0
- data/lib/facter/facts/rhel/os/release.rb +1 -8
- data/lib/facter/facts/slackware/os/release.rb +35 -0
- data/lib/facter/framework/config/config_reader.rb +7 -0
- data/lib/facter/framework/config/fact_groups.rb +3 -0
- data/lib/facter/framework/core/fact_loaders/external_fact_loader.rb +0 -4
- data/lib/facter/framework/core/fact_loaders/fact_loader.rb +2 -0
- data/lib/facter/framework/detector/os_detector.rb +7 -0
- data/lib/facter/resolvers/aio_agent_version.rb +1 -1
- data/lib/facter/resolvers/aix/architecture.rb +1 -1
- data/lib/facter/resolvers/aix/disks.rb +1 -1
- data/lib/facter/resolvers/aix/ffi/ffi.rb +63 -0
- data/lib/facter/resolvers/aix/ffi/ffi_helper.rb +146 -20
- data/lib/facter/resolvers/aix/ffi/structs.rb +69 -0
- data/lib/facter/resolvers/aix/filesystem.rb +1 -1
- data/lib/facter/resolvers/aix/hardware.rb +1 -1
- data/lib/facter/resolvers/aix/load_averages.rb +2 -2
- data/lib/facter/resolvers/aix/memory.rb +1 -1
- data/lib/facter/resolvers/aix/mountpoints.rb +1 -1
- data/lib/facter/resolvers/aix/networking.rb +9 -16
- data/lib/facter/resolvers/aix/nim.rb +1 -1
- data/lib/facter/resolvers/aix/os_level.rb +1 -1
- data/lib/facter/resolvers/aix/partitions.rb +1 -1
- data/lib/facter/resolvers/aix/processors.rb +1 -1
- data/lib/facter/resolvers/aix/serialnumber.rb +1 -1
- data/lib/facter/resolvers/augeas.rb +1 -1
- data/lib/facter/resolvers/base_resolver.rb +4 -4
- data/lib/facter/resolvers/bsd/processors.rb +1 -1
- data/lib/facter/resolvers/cloud.rb +1 -1
- data/lib/facter/resolvers/containers.rb +1 -1
- data/lib/facter/resolvers/debian_version.rb +1 -1
- data/lib/facter/resolvers/disk.rb +1 -1
- data/lib/facter/resolvers/dmi.rb +1 -1
- data/lib/facter/resolvers/dmi_decode.rb +1 -1
- data/lib/facter/resolvers/ec2.rb +1 -1
- data/lib/facter/resolvers/eos_release.rb +1 -1
- data/lib/facter/resolvers/facterversion.rb +1 -1
- data/lib/facter/resolvers/filesystems.rb +1 -1
- data/lib/facter/resolvers/fips_enabled.rb +1 -1
- data/lib/facter/resolvers/freebsd/dmi.rb +1 -1
- data/lib/facter/resolvers/freebsd/freebsd_version.rb +1 -1
- data/lib/facter/resolvers/freebsd/geom.rb +1 -1
- data/lib/facter/resolvers/freebsd/processors.rb +1 -1
- data/lib/facter/resolvers/freebsd/swap_memory.rb +1 -1
- data/lib/facter/resolvers/freebsd/system_memory.rb +1 -1
- data/lib/facter/resolvers/freebsd/virtual.rb +1 -1
- data/lib/facter/resolvers/gce.rb +1 -1
- data/lib/facter/resolvers/hostname.rb +1 -1
- data/lib/facter/resolvers/identity.rb +1 -1
- data/lib/facter/resolvers/linux/docker_uptime.rb +1 -1
- data/lib/facter/resolvers/linux/load_averages.rb +1 -1
- data/lib/facter/resolvers/load_averages.rb +1 -1
- data/lib/facter/resolvers/lpar.rb +1 -1
- data/lib/facter/resolvers/lsb_release.rb +1 -1
- data/lib/facter/resolvers/lspci.rb +1 -1
- data/lib/facter/resolvers/macosx/dmi.rb +1 -1
- data/lib/facter/resolvers/macosx/filesystems.rb +1 -1
- data/lib/facter/resolvers/macosx/load_averages.rb +1 -1
- data/lib/facter/resolvers/macosx/mountpoints.rb +1 -1
- data/lib/facter/resolvers/macosx/processor.rb +1 -1
- data/lib/facter/resolvers/macosx/swap_memory.rb +1 -1
- data/lib/facter/resolvers/macosx/system_memory.rb +1 -1
- data/lib/facter/resolvers/macosx/system_profiler.rb +1 -1
- data/lib/facter/resolvers/memory.rb +1 -1
- data/lib/facter/resolvers/mountpoints.rb +1 -1
- data/lib/facter/resolvers/networking.rb +1 -1
- data/lib/facter/resolvers/networking_linux.rb +1 -1
- data/lib/facter/resolvers/open_vz.rb +1 -1
- data/lib/facter/resolvers/os_release.rb +1 -1
- data/lib/facter/resolvers/partitions.rb +1 -1
- data/lib/facter/resolvers/path.rb +1 -1
- data/lib/facter/resolvers/processors.rb +1 -1
- data/lib/facter/resolvers/redhat_release.rb +1 -1
- data/lib/facter/resolvers/release_from_first_line.rb +41 -0
- data/lib/facter/resolvers/ruby.rb +1 -1
- data/lib/facter/resolvers/selinux.rb +1 -1
- data/lib/facter/resolvers/solaris/disks.rb +1 -1
- data/lib/facter/resolvers/solaris/dmi.rb +1 -1
- data/lib/facter/resolvers/solaris/dmi_sparc.rb +1 -1
- data/lib/facter/resolvers/solaris/filesystems.rb +1 -1
- data/lib/facter/resolvers/solaris/ipaddress.rb +1 -1
- data/lib/facter/resolvers/solaris/ldom.rb +1 -1
- data/lib/facter/resolvers/solaris/memory.rb +1 -1
- data/lib/facter/resolvers/solaris/mountpoints.rb +1 -1
- data/lib/facter/resolvers/solaris/networking.rb +1 -1
- data/lib/facter/resolvers/solaris/os_release.rb +1 -1
- data/lib/facter/resolvers/solaris/processors.rb +1 -1
- data/lib/facter/resolvers/solaris/zone.rb +1 -1
- data/lib/facter/resolvers/solaris/zone_name.rb +1 -1
- data/lib/facter/resolvers/specific_release_file.rb +35 -0
- data/lib/facter/resolvers/ssh.rb +1 -1
- data/lib/facter/resolvers/suse_release.rb +1 -1
- data/lib/facter/resolvers/sw_vers.rb +1 -1
- data/lib/facter/resolvers/timezone.rb +1 -1
- data/lib/facter/resolvers/uname.rb +1 -1
- data/lib/facter/resolvers/uptime.rb +1 -1
- data/lib/facter/resolvers/virt_what.rb +1 -1
- data/lib/facter/resolvers/vmware.rb +1 -1
- data/lib/facter/resolvers/windows/aio_agent_version.rb +1 -1
- data/lib/facter/resolvers/windows/dmi_bios.rb +1 -1
- data/lib/facter/resolvers/windows/dmi_computersystem.rb +1 -1
- data/lib/facter/resolvers/windows/ffi/network_utils.rb +1 -2
- data/lib/facter/resolvers/windows/fips.rb +1 -1
- data/lib/facter/resolvers/windows/hardware_architecture.rb +1 -1
- data/lib/facter/resolvers/windows/identity.rb +1 -1
- data/lib/facter/resolvers/windows/kernel.rb +1 -1
- data/lib/facter/resolvers/windows/memory.rb +1 -1
- data/lib/facter/resolvers/windows/netkvm.rb +1 -1
- data/lib/facter/resolvers/windows/networking.rb +8 -4
- data/lib/facter/resolvers/windows/processors.rb +1 -1
- data/lib/facter/resolvers/windows/product_release.rb +1 -1
- data/lib/facter/resolvers/windows/ssh.rb +1 -1
- data/lib/facter/resolvers/windows/system32.rb +1 -1
- data/lib/facter/resolvers/windows/uptime.rb +1 -1
- data/lib/facter/resolvers/windows/virtualization.rb +1 -1
- data/lib/facter/resolvers/windows/win_os_description.rb +1 -1
- data/lib/facter/resolvers/wpar.rb +1 -1
- data/lib/facter/resolvers/xen.rb +1 -1
- data/lib/facter/resolvers/zfs.rb +1 -1
- data/lib/facter/resolvers/zpool.rb +1 -1
- data/lib/facter/util/facts/facts_utils.rb +17 -0
- data/lib/facter/util/facts/unit_converter.rb +11 -4
- data/lib/facter/util/utils.rb +0 -4
- data/lib/facter/version.rb +1 -1
- metadata +22 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c40ef2043f777620f54c82fc1ee3e746a9b881b74771b3e6ed693773e2ae2e57
|
|
4
|
+
data.tar.gz: d6f1f89339c820f37f0a37b07ae42085a231468ce759c9d1a92b0fc7963e7f9e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 91d8d74575aeff6e4b31445a362019fd8f2200f888478b3e2c019a5ccf740b1f9a8590f3edde89f69a66af3bca778d3ab6b73b658c04853122507633221066e3
|
|
7
|
+
data.tar.gz: e6cf614befcb67eea1ac89c35a22532c04e40225a87b1d81a6dbf00d227ff55f29630a8637239daf44e4f4ab5de13cb5c9c29b4b612358a8063ee36985d243f8
|
data/lib/facter/config.rb
CHANGED
|
@@ -7,10 +7,13 @@ module Facter
|
|
|
7
7
|
{
|
|
8
8
|
'Linux' => [
|
|
9
9
|
{
|
|
10
|
-
'Debian' =>
|
|
11
|
-
Elementary
|
|
12
|
-
Ubuntu
|
|
13
|
-
|
|
10
|
+
'Debian' => [
|
|
11
|
+
'Elementary',
|
|
12
|
+
{ 'Ubuntu' => [
|
|
13
|
+
'Linuxmint'
|
|
14
|
+
] },
|
|
15
|
+
'Raspbian',
|
|
16
|
+
'Devuan'
|
|
14
17
|
]
|
|
15
18
|
},
|
|
16
19
|
{
|
|
@@ -20,13 +23,23 @@ module Facter
|
|
|
20
23
|
Centos
|
|
21
24
|
Ol
|
|
22
25
|
Scientific
|
|
26
|
+
Meego
|
|
27
|
+
Oel
|
|
28
|
+
Ovs
|
|
23
29
|
]
|
|
24
30
|
},
|
|
25
31
|
{
|
|
26
|
-
'Sles' => [
|
|
27
|
-
|
|
32
|
+
'Sles' => %w[
|
|
33
|
+
Opensuse
|
|
34
|
+
Sled
|
|
28
35
|
]
|
|
29
|
-
}
|
|
36
|
+
},
|
|
37
|
+
'Gentoo',
|
|
38
|
+
'Alpine',
|
|
39
|
+
'Photon',
|
|
40
|
+
'Slackware',
|
|
41
|
+
'Mageia',
|
|
42
|
+
'Openwrt'
|
|
30
43
|
]
|
|
31
44
|
},
|
|
32
45
|
{
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require_relative 'popen3'
|
|
4
|
+
|
|
3
5
|
module Facter
|
|
4
6
|
module Core
|
|
5
7
|
module Execution
|
|
@@ -70,8 +72,7 @@ module Facter
|
|
|
70
72
|
opts = { 'LC_ALL' => 'C', 'LANG' => 'C' }
|
|
71
73
|
require 'timeout'
|
|
72
74
|
@log.debug("Executing command: #{command}")
|
|
73
|
-
out, stderr =
|
|
74
|
-
pid = wait_thr.pid
|
|
75
|
+
out, stderr = Popen3.popen3e(opts, command.to_s) do |_, stdout, stderr, pid|
|
|
75
76
|
stdout_messages = +''
|
|
76
77
|
stderr_messages = +''
|
|
77
78
|
out_reader = Thread.new { stdout.read }
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
#
|
|
4
|
+
# Because Open3 uses Process.detach the env $? is not set so
|
|
5
|
+
# this class reimplements Open3.popen3 with Process.wait instead.
|
|
6
|
+
# [FACT-2934] When calling Facter::Core::Execution, $? and $CHILD_STATUS
|
|
7
|
+
# ruby env variables should be set.
|
|
8
|
+
#
|
|
9
|
+
|
|
10
|
+
module Facter
|
|
11
|
+
module Core
|
|
12
|
+
module Execution
|
|
13
|
+
class Popen3
|
|
14
|
+
def self.popen_rune(cmd, opts, child_io, parent_io) # :nodoc:
|
|
15
|
+
pid = spawn(*cmd, opts)
|
|
16
|
+
child_io.each(&:close)
|
|
17
|
+
result = [*parent_io, pid]
|
|
18
|
+
if defined? yield
|
|
19
|
+
begin
|
|
20
|
+
return yield(*result)
|
|
21
|
+
ensure
|
|
22
|
+
parent_io.each(&:close)
|
|
23
|
+
Process.wait(pid)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
result
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def self.popen3e(*cmd, &block)
|
|
30
|
+
opts = if cmd.last.is_a? Hash
|
|
31
|
+
cmd.pop.dup
|
|
32
|
+
else
|
|
33
|
+
{}
|
|
34
|
+
end
|
|
35
|
+
in_r, in_w = IO.pipe
|
|
36
|
+
opts[:in] = in_r
|
|
37
|
+
in_w.sync = true
|
|
38
|
+
out_r, out_w = IO.pipe
|
|
39
|
+
opts[:out] = out_w
|
|
40
|
+
err_r, err_w = IO.pipe
|
|
41
|
+
opts[:err] = err_w
|
|
42
|
+
popen_rune(cmd, opts, [in_r, out_w, err_w], [in_w, out_r, err_r], &block)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -37,7 +37,7 @@ module Facter
|
|
|
37
37
|
def initialize(name, options = {})
|
|
38
38
|
@name = name.to_s.downcase.intern
|
|
39
39
|
|
|
40
|
-
@options =
|
|
40
|
+
@options = options.dup
|
|
41
41
|
extract_ldapname_option!(options)
|
|
42
42
|
|
|
43
43
|
@ldapname ||= @name.to_s
|
|
@@ -61,7 +61,7 @@ module Facter
|
|
|
61
61
|
#
|
|
62
62
|
# @api private
|
|
63
63
|
def add(options = {}, &block)
|
|
64
|
-
@options =
|
|
64
|
+
@options = @options.merge(options)
|
|
65
65
|
|
|
66
66
|
@location = options[:file]
|
|
67
67
|
@location ||= block.source_location if block_given?
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Facts
|
|
4
|
+
module Alpine
|
|
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::SpecificReleaseFile.resolve(:release, release_file: '/etc/alpine-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 Amzn
|
|
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/system-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,36 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Facts
|
|
4
|
+
module Devuan
|
|
5
|
+
module Os
|
|
6
|
+
module Distro
|
|
7
|
+
class Release
|
|
8
|
+
FACT_NAME = 'os.distro.release'
|
|
9
|
+
ALIASES = %w[lsbdistrelease lsbmajdistrelease lsbminordistrelease].freeze
|
|
10
|
+
|
|
11
|
+
def call_the_resolver
|
|
12
|
+
fact_value = Facter::Resolvers::LsbRelease.resolve(:release)
|
|
13
|
+
return Facter::ResolvedFact.new(FACT_NAME, nil) unless fact_value
|
|
14
|
+
|
|
15
|
+
release = construct_release(fact_value)
|
|
16
|
+
|
|
17
|
+
[Facter::ResolvedFact.new(FACT_NAME, release),
|
|
18
|
+
Facter::ResolvedFact.new(ALIASES[0], fact_value, :legacy),
|
|
19
|
+
Facter::ResolvedFact.new(ALIASES[1], release['major'], :legacy),
|
|
20
|
+
Facter::ResolvedFact.new(ALIASES[2], release['minor'], :legacy)]
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def construct_release(version)
|
|
24
|
+
versions = version.split('.')
|
|
25
|
+
|
|
26
|
+
{}.tap do |release|
|
|
27
|
+
release['full'] = version
|
|
28
|
+
release['major'] = versions[0]
|
|
29
|
+
release['minor'] = versions[1] if versions[1]
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Facts
|
|
4
|
+
module Devuan
|
|
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::SpecificReleaseFile.resolve(:release, release_file: '/etc/devuan_version')
|
|
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 Gentoo
|
|
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/gentoo-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,18 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Facts
|
|
4
|
+
module Linuxmint
|
|
5
|
+
module Os
|
|
6
|
+
class Name
|
|
7
|
+
FACT_NAME = 'os.name'
|
|
8
|
+
ALIASES = 'operatingsystem'
|
|
9
|
+
|
|
10
|
+
def call_the_resolver
|
|
11
|
+
fact_value = Facter::Resolvers::OsRelease.resolve(:id)&.capitalize
|
|
12
|
+
|
|
13
|
+
[Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Facts
|
|
4
|
+
module Linuxmint
|
|
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/linuxmint/info',
|
|
23
|
+
regex: /^RELEASE=(\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,36 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Facts
|
|
4
|
+
module Mageia
|
|
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/mageia-release',
|
|
23
|
+
regex: /Mageia release ([0-9.]+)/ })
|
|
24
|
+
|
|
25
|
+
Facter::Util::Facts.release_hash_from_matchdata(version)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def from_os_release
|
|
29
|
+
version = Facter::Resolvers::OsRelease.resolve(:version_id)
|
|
30
|
+
|
|
31
|
+
Facter::Util::Facts.release_hash_from_string(version)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -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
|