facter 4.0.41 → 4.0.42
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/facter/custom_facts/core/execution/base.rb +13 -7
- data/lib/facter/framework/cli/cli.rb +6 -5
- data/lib/facter/framework/core/cache_manager.rb +17 -12
- data/lib/facter/resolvers/aix/os_level.rb +1 -1
- data/lib/facter/resolvers/memory_resolver.rb +12 -14
- data/lib/facter/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ffa55de7f92a74b84788507b7e9667f158edc68abef1412f40ab5d3beb8f6aad
|
4
|
+
data.tar.gz: e92ff5798a9abab30f1887c5e4f934d75cef67975b2485e53ba6dc58b59ee899
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4841268cf5f76f1ad2b0ed2bf16b2527dd73e4d41728c64dbe13986b1a574759f900e2748e72ce72f6c677cf754d8a4f5115530140285412a07943e13b6312a5
|
7
|
+
data.tar.gz: bd48e0942af375429188957956a5555963297d62a9bc6549529ae1713b7670b41bfc5eea6b894d961e3e32507963e394779c372ad3b12a6422b5218f94b0f9e4
|
@@ -90,7 +90,7 @@ module Facter
|
|
90
90
|
end
|
91
91
|
|
92
92
|
def execute_command(command, on_fail, logger = nil, time_limit = nil)
|
93
|
-
time_limit ||=
|
93
|
+
time_limit ||= 300
|
94
94
|
begin
|
95
95
|
# Set LC_ALL and LANG to force i18n to C for the duration of this exec;
|
96
96
|
# this ensures that any code that parses the
|
@@ -100,18 +100,24 @@ module Facter
|
|
100
100
|
@log.debug("Executing command: #{command}")
|
101
101
|
out, stderr = Open3.popen3(opts, command.to_s) do |_, stdout, stderr, wait_thr|
|
102
102
|
pid = wait_thr.pid
|
103
|
-
|
104
|
-
|
103
|
+
stdout_messages = +''
|
104
|
+
stderr_messages = +''
|
105
|
+
out_reader = Thread.new { stdout.read }
|
106
|
+
err_reader = Thread.new { stderr.read }
|
105
107
|
begin
|
106
108
|
Timeout.timeout(time_limit) do
|
107
|
-
|
108
|
-
|
109
|
+
stdout_messages << out_reader.value
|
110
|
+
stderr_messages << err_reader.value
|
109
111
|
end
|
110
112
|
rescue Timeout::Error
|
111
|
-
|
113
|
+
message = "Timeout encounter after #{time_limit}s, killing process with pid: #{pid}"
|
112
114
|
Process.kill('KILL', pid)
|
115
|
+
on_fail == :raise ? (raise StandardError, message) : @log.debug(message)
|
116
|
+
ensure
|
117
|
+
out_reader.kill
|
118
|
+
err_reader.kill
|
113
119
|
end
|
114
|
-
[
|
120
|
+
[stdout_messages, stderr_messages]
|
115
121
|
end
|
116
122
|
log_stderr(stderr, command, logger)
|
117
123
|
rescue StandardError => e
|
@@ -75,11 +75,6 @@ module Facter
|
|
75
75
|
type: :boolean,
|
76
76
|
desc: 'Enable verbose (info) output.'
|
77
77
|
|
78
|
-
class_option :puppet,
|
79
|
-
type: :boolean,
|
80
|
-
aliases: '-p',
|
81
|
-
desc: 'Load the Puppet libraries, thus allowing Facter to load Puppet-specific facts.'
|
82
|
-
|
83
78
|
class_option :show_legacy,
|
84
79
|
type: :boolean,
|
85
80
|
desc: 'Show legacy facts when querying all facts.'
|
@@ -157,6 +152,12 @@ module Facter
|
|
157
152
|
puts cache_groups
|
158
153
|
end
|
159
154
|
|
155
|
+
desc '--puppet, -p', '(NOT SUPPORTED)Load the Puppet libraries, thus allowing Facter to load Puppet-specific facts.'
|
156
|
+
map ['--puppet', '-p'] => :puppet
|
157
|
+
def puppet(*_args)
|
158
|
+
puts '`facter --puppet` and `facter -p` are no longer supported, use `puppet facts show` instead'
|
159
|
+
end
|
160
|
+
|
160
161
|
desc 'help', 'Help for all arguments'
|
161
162
|
def help(*args)
|
162
163
|
help_string = +''
|
@@ -56,13 +56,15 @@ module Facter
|
|
56
56
|
private
|
57
57
|
|
58
58
|
def resolve_fact(searched_fact)
|
59
|
-
|
59
|
+
fact_name = if searched_fact.file
|
60
|
+
File.basename(searched_fact.file)
|
61
|
+
else
|
62
|
+
searched_fact.name
|
63
|
+
end
|
60
64
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
@fact_groups.get_fact(searched_fact.name)
|
65
|
-
end
|
65
|
+
return unless fact_cache_enabled?(fact_name)
|
66
|
+
|
67
|
+
fact = @fact_groups.get_fact(fact_name)
|
66
68
|
|
67
69
|
return unless fact
|
68
70
|
|
@@ -97,14 +99,17 @@ module Facter
|
|
97
99
|
end
|
98
100
|
|
99
101
|
def cache_fact(fact)
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
102
|
+
fact_name = if fact.file
|
103
|
+
File.basename(fact.file)
|
104
|
+
else
|
105
|
+
fact.name
|
106
|
+
end
|
107
|
+
|
108
|
+
group_name = @fact_groups.get_fact_group(fact_name)
|
109
|
+
|
105
110
|
return if !group_name || fact.value.nil?
|
106
111
|
|
107
|
-
return unless fact_cache_enabled?(
|
112
|
+
return unless fact_cache_enabled?(fact_name)
|
108
113
|
|
109
114
|
@groups[group_name] ||= {}
|
110
115
|
@groups[group_name][fact.name] = fact.value
|
@@ -14,7 +14,7 @@ module Facter
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def read_oslevel(fact_name)
|
17
|
-
output = Facter::Core::Execution.execute('/usr/bin/oslevel -s',
|
17
|
+
output = Facter::Core::Execution.execute('/usr/bin/oslevel -s', logger: log)
|
18
18
|
@fact_list[:build] = output unless output.empty?
|
19
19
|
@fact_list[:kernel] = 'AIX'
|
20
20
|
|
@@ -25,11 +25,21 @@ module Facter
|
|
25
25
|
|
26
26
|
def read_system(output)
|
27
27
|
@fact_list[:total] = kilobytes_to_bytes(output.match(/MemTotal:\s+(\d+)\s/)[1])
|
28
|
-
@fact_list[:memfree] =
|
29
|
-
@fact_list[:used_bytes] = compute_used(@fact_list[:total],
|
28
|
+
@fact_list[:memfree] = memfree(output)
|
29
|
+
@fact_list[:used_bytes] = compute_used(@fact_list[:total], @fact_list[:memfree])
|
30
30
|
@fact_list[:capacity] = compute_capacity(@fact_list[:used_bytes], @fact_list[:total])
|
31
31
|
end
|
32
32
|
|
33
|
+
def memfree(output)
|
34
|
+
available = output.match(/MemAvailable:\s+(\d+)\s/)
|
35
|
+
return kilobytes_to_bytes(available[1]) if available
|
36
|
+
|
37
|
+
buffers = kilobytes_to_bytes(output.match(/Buffers:\s+(\d+)\s/)[1])
|
38
|
+
cached = kilobytes_to_bytes(output.match(/Cached:\s+(\d+)\s/)[1])
|
39
|
+
memfree = kilobytes_to_bytes(output.match(/MemFree:\s+(\d+)\s/)[1])
|
40
|
+
memfree + buffers + cached
|
41
|
+
end
|
42
|
+
|
33
43
|
def read_swap(output)
|
34
44
|
total = output.match(/SwapTotal:\s+(\d+)\s/)[1]
|
35
45
|
return if total.to_i.zero?
|
@@ -44,18 +54,6 @@ module Facter
|
|
44
54
|
quantity.to_i * 1024
|
45
55
|
end
|
46
56
|
|
47
|
-
def reclaimable_memory(output)
|
48
|
-
buffers = kilobytes_to_bytes(output.match(/Buffers:\s+(\d+)\s/)[1])
|
49
|
-
cached = kilobytes_to_bytes(output.match(/Cached:\s+(\d+)\s/)[1])
|
50
|
-
s_reclaimable = output.match(/SReclaimable:\s+(\d+)\s/)
|
51
|
-
s_reclaimable = if s_reclaimable
|
52
|
-
kilobytes_to_bytes(s_reclaimable[1])
|
53
|
-
else
|
54
|
-
0
|
55
|
-
end
|
56
|
-
@fact_list[:memfree] + buffers + cached + s_reclaimable
|
57
|
-
end
|
58
|
-
|
59
57
|
def compute_capacity(used, total)
|
60
58
|
format('%<computed_capacity>.2f', computed_capacity: (used / total.to_f * 100)) + '%'
|
61
59
|
end
|
data/lib/facter/version.rb
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.42
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-10-
|
11
|
+
date: 2020-10-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|