facter 4.0.19 → 4.0.20
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/.rubocop_todo.yml +4 -2
- data/CHANGELOG.md +17 -0
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/lib/facts/bsd/kernelmajversion.rb +16 -0
- data/lib/facts/bsd/kernelversion.rb +14 -0
- data/lib/facts/bsd/load_averages.rb +14 -0
- data/lib/facts/bsd/os/family.rb +18 -0
- data/lib/facts/debian/os/distro/release.rb +17 -10
- data/lib/facts/debian/os/release.rb +20 -12
- data/lib/framework/detector/os_detector.rb +10 -2
- data/lib/resolvers/bsd/ffi/ffi_helper.rb +25 -0
- data/lib/resolvers/bsd/load_averages_resolver.rb +26 -0
- data/lib/resolvers/os_release_resolver.rb +5 -0
- data/os_hierarchy.json +2 -1
- metadata +8 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: baceb04e072102e0f18534a903fc7e0ead2f76d2d4f81dd49a64e325a22a0f7d
|
|
4
|
+
data.tar.gz: b63826bac2fef312e1745b2b2591e77a3d8a1e4b7fd019d3f77019660161d48c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 205b507dab7c7253b8d58f8e76ba664ac10545bfb3fca3b5d7649248546edf5f31fccd52c654d2d38691b48f8a30bf70b7731008b747260ba0a258775fdf231a
|
|
7
|
+
data.tar.gz: 5ca2bf79afe491abe2b8ace592ab269eedb9ff97e041cd39ea145c7d4da055863076432acb0eecd64a367b326c1d06621aab6545d9109093f99783c409e06945
|
data/.rubocop_todo.yml
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
|
8
8
|
|
|
9
|
-
# Offense count:
|
|
9
|
+
# Offense count: 81
|
|
10
10
|
# Configuration parameters: CustomTransform, IgnoreMethods.
|
|
11
11
|
RSpec/FilePath:
|
|
12
12
|
Exclude:
|
|
@@ -37,6 +37,7 @@ RSpec/FilePath:
|
|
|
37
37
|
- 'spec/facter/resolvers/aix/architecture_resolver_spec.rb'
|
|
38
38
|
- 'spec/facter/resolvers/aix/ffi_helper_spec.rb'
|
|
39
39
|
- 'spec/facter/resolvers/aix/hardware_resolver_spec.rb'
|
|
40
|
+
- 'spec/facter/resolvers/bsd/ffi_helper_spec.rb'
|
|
40
41
|
- 'spec/facter/resolvers/disk_resolver_spec.rb'
|
|
41
42
|
- 'spec/facter/resolvers/dmi_resolver_spec.rb'
|
|
42
43
|
- 'spec/facter/resolvers/filesystems_resolver_spec.rb'
|
|
@@ -191,7 +192,7 @@ RSpec/SubjectStub:
|
|
|
191
192
|
- 'spec/custom_facts/util/fact_spec.rb'
|
|
192
193
|
- 'spec/custom_facts/util/resolution_spec.rb'
|
|
193
194
|
|
|
194
|
-
# Offense count:
|
|
195
|
+
# Offense count: 180
|
|
195
196
|
# Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
|
|
196
197
|
RSpec/VerifiedDoubles:
|
|
197
198
|
Exclude:
|
|
@@ -227,6 +228,7 @@ RSpec/VerifiedDoubles:
|
|
|
227
228
|
- 'spec/facter/resolvers/aix/architecture_resolver_spec.rb'
|
|
228
229
|
- 'spec/facter/resolvers/aix/ffi_helper_spec.rb'
|
|
229
230
|
- 'spec/facter/resolvers/aix/hardware_resolver_spec.rb'
|
|
231
|
+
- 'spec/facter/resolvers/bsd/ffi_helper_spec.rb'
|
|
230
232
|
- 'spec/facter/resolvers/macosx/mountpoints_resolver_spec.rb'
|
|
231
233
|
- 'spec/facter/resolvers/mountpoints_resolver_spec.rb'
|
|
232
234
|
- 'spec/facter/resolvers/solaris/current_zone_resolver_spec.rb'
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
+
## [4.0.20](https://github.com/puppetlabs/facter-ng/tree/4.0.20) (2020-05-06)
|
|
4
|
+
|
|
5
|
+
[Full Changelog](https://github.com/puppetlabs/facter-ng/compare/4.0.19...4.0.20)
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Add \*BSD kernelversion and kernelmajversion facts [\#462](https://github.com/puppetlabs/facter-ng/pull/462) ([smortex](https://github.com/smortex))
|
|
10
|
+
- Fix os.family fact on \*BSD [\#461](https://github.com/puppetlabs/facter-ng/pull/461) ([smortex](https://github.com/smortex))
|
|
11
|
+
- Add support for \*BSD load averages [\#460](https://github.com/puppetlabs/facter-ng/pull/460) ([smortex](https://github.com/smortex))
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- \(FACT-2590\) No facts are displayed on Redhat 5 and Centos6 [\#484](https://github.com/puppetlabs/facter-ng/pull/484) ([IrimieBogdan](https://github.com/IrimieBogdan))
|
|
16
|
+
- \(FACT-2530\) Fix for tests/facts/os\_processors\_and\_kernel.rb [\#449](https://github.com/puppetlabs/facter-ng/pull/449) ([oanatmaria](https://github.com/oanatmaria))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
3
20
|
## [4.0.19](https://github.com/puppetlabs/facter-ng/tree/4.0.19) (2020-04-29)
|
|
4
21
|
|
|
5
22
|
[Full Changelog](https://github.com/puppetlabs/facter-ng/compare/4.0.18...4.0.19)
|
data/Rakefile
CHANGED
|
@@ -9,7 +9,7 @@ Dir.glob(File.join('tasks/**/*.rake')).each { |file| load file }
|
|
|
9
9
|
task default: :spec
|
|
10
10
|
|
|
11
11
|
def retrieve_from_keyboard
|
|
12
|
-
return unless ARGV
|
|
12
|
+
return unless ARGV.include?('changelog')
|
|
13
13
|
|
|
14
14
|
puts "Please provide the next release tag:\n"
|
|
15
15
|
next_version = $stdin.gets.chomp
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
4.0.
|
|
1
|
+
4.0.20
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Facts
|
|
4
|
+
module Bsd
|
|
5
|
+
class Kernelmajversion
|
|
6
|
+
FACT_NAME = 'kernelmajversion'
|
|
7
|
+
|
|
8
|
+
def call_the_resolver
|
|
9
|
+
full_version = Facter::Resolvers::Uname.resolve(:kernelrelease)
|
|
10
|
+
versions_split = full_version.split('.')
|
|
11
|
+
major_version = versions_split[0]
|
|
12
|
+
Facter::ResolvedFact.new(FACT_NAME, major_version)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Facts
|
|
4
|
+
module Bsd
|
|
5
|
+
class Kernelversion
|
|
6
|
+
FACT_NAME = 'kernelversion'
|
|
7
|
+
|
|
8
|
+
def call_the_resolver
|
|
9
|
+
fact_value = Facter::Resolvers::Uname.resolve(:kernelrelease).sub(/\A(\d+(\.\d+)*).*/, '\1')
|
|
10
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Facts
|
|
4
|
+
module Bsd
|
|
5
|
+
class LoadAverages
|
|
6
|
+
FACT_NAME = 'load_averages'
|
|
7
|
+
|
|
8
|
+
def call_the_resolver
|
|
9
|
+
fact_value = Facter::Resolvers::Bsd::LoadAverages.resolve(:load_averages)
|
|
10
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Facts
|
|
4
|
+
module Bsd
|
|
5
|
+
module Os
|
|
6
|
+
class Family
|
|
7
|
+
FACT_NAME = 'os.family'
|
|
8
|
+
ALIASES = 'osfamily'
|
|
9
|
+
|
|
10
|
+
def call_the_resolver
|
|
11
|
+
fact_value = Facter::Resolvers::Uname.resolve(:kernelname)
|
|
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
|
|
@@ -10,14 +10,7 @@ module Facts
|
|
|
10
10
|
def call_the_resolver
|
|
11
11
|
fact_value = determine_release_for_os
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
versions = fact_value.split('.')
|
|
16
|
-
release = {}
|
|
17
|
-
release['full'] = fact_value
|
|
18
|
-
release['major'] = versions[0]
|
|
19
|
-
release['minor'] = versions[1].gsub(/^0([1-9])/, '\1') if versions[1]
|
|
20
|
-
Facter::ResolvedFact.new(FACT_NAME, release)
|
|
13
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
|
21
14
|
end
|
|
22
15
|
|
|
23
16
|
private
|
|
@@ -26,9 +19,23 @@ module Facts
|
|
|
26
19
|
os_name = Facter::Resolvers::OsRelease.resolve(:name)
|
|
27
20
|
|
|
28
21
|
if os_name =~ /Debian|Raspbian/
|
|
29
|
-
Facter::Resolvers::DebianVersion.resolve(:version)
|
|
22
|
+
release = Facter::Resolvers::DebianVersion.resolve(:version)
|
|
23
|
+
return unless release
|
|
24
|
+
|
|
25
|
+
versions = release.split('.')
|
|
26
|
+
fact_value = {}
|
|
27
|
+
fact_value['full'] = release
|
|
28
|
+
fact_value['major'] = versions[0]
|
|
29
|
+
fact_value['minor'] = versions[1].gsub(/^0([1-9])/, '\1') if versions[1]
|
|
30
|
+
fact_value
|
|
30
31
|
else
|
|
31
|
-
Facter::Resolvers::OsRelease.resolve(:version_id)
|
|
32
|
+
release = Facter::Resolvers::OsRelease.resolve(:version_id)
|
|
33
|
+
return unless release
|
|
34
|
+
|
|
35
|
+
{
|
|
36
|
+
'full' => release,
|
|
37
|
+
'major' => release
|
|
38
|
+
}
|
|
32
39
|
end
|
|
33
40
|
end
|
|
34
41
|
end
|
|
@@ -10,17 +10,11 @@ module Facts
|
|
|
10
10
|
def call_the_resolver
|
|
11
11
|
fact_value = determine_release_for_os
|
|
12
12
|
|
|
13
|
-
return Facter::ResolvedFact.new(FACT_NAME,
|
|
13
|
+
return Facter::ResolvedFact.new(FACT_NAME, fact_value) unless fact_value
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
release['major'] = versions[0]
|
|
19
|
-
release['minor'] = versions[1].gsub(/^0([1-9])/, '\1') if versions[1]
|
|
20
|
-
|
|
21
|
-
[Facter::ResolvedFact.new(FACT_NAME, release),
|
|
22
|
-
Facter::ResolvedFact.new(ALIASES.first, versions[0], :legacy),
|
|
23
|
-
Facter::ResolvedFact.new(ALIASES.last, fact_value, :legacy)]
|
|
15
|
+
[Facter::ResolvedFact.new(FACT_NAME, fact_value),
|
|
16
|
+
Facter::ResolvedFact.new(ALIASES.first, fact_value['major'], :legacy),
|
|
17
|
+
Facter::ResolvedFact.new(ALIASES.last, fact_value['full'], :legacy)]
|
|
24
18
|
end
|
|
25
19
|
|
|
26
20
|
private
|
|
@@ -29,9 +23,23 @@ module Facts
|
|
|
29
23
|
os_name = Facter::Resolvers::OsRelease.resolve(:name)
|
|
30
24
|
|
|
31
25
|
if os_name =~ /Debian|Raspbian/
|
|
32
|
-
Facter::Resolvers::DebianVersion.resolve(:version)
|
|
26
|
+
release = Facter::Resolvers::DebianVersion.resolve(:version)
|
|
27
|
+
return unless release
|
|
28
|
+
|
|
29
|
+
versions = release.split('.')
|
|
30
|
+
fact_value = {}
|
|
31
|
+
fact_value['full'] = release
|
|
32
|
+
fact_value['major'] = versions[0]
|
|
33
|
+
fact_value['minor'] = versions[1].gsub(/^0([1-9])/, '\1') if versions[1]
|
|
34
|
+
fact_value
|
|
33
35
|
else
|
|
34
|
-
Facter::Resolvers::OsRelease.resolve(:version_id)
|
|
36
|
+
release = Facter::Resolvers::OsRelease.resolve(:version_id)
|
|
37
|
+
return unless release
|
|
38
|
+
|
|
39
|
+
{
|
|
40
|
+
'full' => release,
|
|
41
|
+
'major' => release
|
|
42
|
+
}
|
|
35
43
|
end
|
|
36
44
|
end
|
|
37
45
|
end
|
|
@@ -8,6 +8,7 @@ class OsDetector
|
|
|
8
8
|
attr_reader :identifier, :version, :hierarchy
|
|
9
9
|
|
|
10
10
|
def initialize(*_args)
|
|
11
|
+
@log = Facter::Log.new(self)
|
|
11
12
|
@os_hierarchy = Facter::OsHierarchy.new
|
|
12
13
|
@identifier = detect
|
|
13
14
|
end
|
|
@@ -39,8 +40,15 @@ class OsDetector
|
|
|
39
40
|
|
|
40
41
|
def detect_hierarchy(identifier)
|
|
41
42
|
hierarchy = @os_hierarchy.construct_hierarchy(identifier)
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
if hierarchy.empty?
|
|
44
|
+
@log.debug("Could not detect hierarchy using os identifier: #{identifier} , trying with family")
|
|
45
|
+
hierarchy = @os_hierarchy.construct_hierarchy(detect_family)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
if hierarchy.empty?
|
|
49
|
+
@log.debug("Could not detect hierarchy using family #{detect_family}, falling back to Linux")
|
|
50
|
+
hierarchy = @os_hierarchy.construct_hierarchy(:linux)
|
|
51
|
+
end
|
|
44
52
|
|
|
45
53
|
hierarchy
|
|
46
54
|
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'ffi'
|
|
4
|
+
|
|
5
|
+
module Facter
|
|
6
|
+
module Bsd
|
|
7
|
+
module FfiHelper
|
|
8
|
+
module Libc
|
|
9
|
+
extend FFI::Library
|
|
10
|
+
|
|
11
|
+
ffi_lib 'c'
|
|
12
|
+
attach_function :getloadavg, %i[pointer int], :int
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def self.read_load_averages
|
|
16
|
+
raw_loadavg = FFI::MemoryPointer.new(:double, 3)
|
|
17
|
+
|
|
18
|
+
res = Libc.getloadavg(raw_loadavg, 3)
|
|
19
|
+
return unless res == 3
|
|
20
|
+
|
|
21
|
+
raw_loadavg.read_array_of_double(res)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Facter
|
|
4
|
+
module Resolvers
|
|
5
|
+
module Bsd
|
|
6
|
+
class LoadAverages < BaseResolver
|
|
7
|
+
@semaphore = Mutex.new
|
|
8
|
+
@fact_list ||= {}
|
|
9
|
+
class << self
|
|
10
|
+
private
|
|
11
|
+
|
|
12
|
+
def post_resolve(fact_name)
|
|
13
|
+
@fact_list.fetch(fact_name) { read_load_averages(fact_name) }
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def read_load_averages(fact_name)
|
|
17
|
+
require_relative 'ffi/ffi_helper'
|
|
18
|
+
@fact_list[:load_averages] = %w[1m 5m 15m].zip(Facter::Bsd::FfiHelper.read_load_averages).to_h
|
|
19
|
+
|
|
20
|
+
@fact_list[fact_name]
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -36,6 +36,7 @@ module Facter
|
|
|
36
36
|
|
|
37
37
|
fill_fact_list(pairs)
|
|
38
38
|
process_name
|
|
39
|
+
pad_version_id
|
|
39
40
|
|
|
40
41
|
@fact_list[fact_name]
|
|
41
42
|
end
|
|
@@ -47,6 +48,10 @@ module Facter
|
|
|
47
48
|
@fact_list[:identifier] = @fact_list[:id]
|
|
48
49
|
end
|
|
49
50
|
|
|
51
|
+
def pad_version_id
|
|
52
|
+
@fact_list[:version_id] = "#{@fact_list[:version_id]}.0" unless @fact_list[:version_id] =~ /\./
|
|
53
|
+
end
|
|
54
|
+
|
|
50
55
|
def process_name
|
|
51
56
|
return unless @fact_list[:name]
|
|
52
57
|
|
data/os_hierarchy.json
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
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.20
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Puppet
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-05-06 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -287,6 +287,10 @@ files:
|
|
|
287
287
|
- lib/facts/aix/system_uptime/uptime.rb
|
|
288
288
|
- lib/facts/aix/timezone.rb
|
|
289
289
|
- lib/facts/bsd/bsd_example_fact.rb
|
|
290
|
+
- lib/facts/bsd/kernelmajversion.rb
|
|
291
|
+
- lib/facts/bsd/kernelversion.rb
|
|
292
|
+
- lib/facts/bsd/load_averages.rb
|
|
293
|
+
- lib/facts/bsd/os/family.rb
|
|
290
294
|
- lib/facts/debian/augeas/version.rb
|
|
291
295
|
- lib/facts/debian/disks.rb
|
|
292
296
|
- lib/facts/debian/dmi/bios/release_date.rb
|
|
@@ -803,6 +807,8 @@ files:
|
|
|
803
807
|
- lib/resolvers/aix/utils/odm_query.rb
|
|
804
808
|
- lib/resolvers/augeas_resolver.rb
|
|
805
809
|
- lib/resolvers/base_resolver.rb
|
|
810
|
+
- lib/resolvers/bsd/ffi/ffi_helper.rb
|
|
811
|
+
- lib/resolvers/bsd/load_averages_resolver.rb
|
|
806
812
|
- lib/resolvers/debian_version.rb
|
|
807
813
|
- lib/resolvers/disk_resolver.rb
|
|
808
814
|
- lib/resolvers/dmi_resolver.rb
|