ohai 17.6.0 → 17.7.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/ohai/mixin/constant_helper.rb +1 -1
- data/lib/ohai/mixin/network_helper.rb +18 -0
- data/lib/ohai/mixin/os.rb +2 -2
- data/lib/ohai/plugins/cpu.rb +1 -1
- data/lib/ohai/plugins/hostname.rb +9 -87
- data/lib/ohai/plugins/os.rb +6 -0
- data/lib/ohai/plugins/packages.rb +2 -2
- data/lib/ohai/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: 19b09efb3e8a7318b9401b9faf1fb17a472544ec5c7f45e7be090bcaafac9d93
|
4
|
+
data.tar.gz: d6deeb673906082bda7ab8ac7b4b1b5fb8dc41c22720ab4f4d47dfa994479be6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a8aec83f05fb402a2cc08efa9ce6d6fc81a0c2133bc57f60c9cbedff90236812e30e65373b5bb4813590ea2c7d5ae6c763caa58bbf56ef10c4ac5362df1dbc59
|
7
|
+
data.tar.gz: 948e93dddd2a283f43350795e15b46d83fe31db12d9f988bbe594882295fb7c57e576bc18be0a4db1d22002a177a6dddcce49f041dbc24cd777c75b59e62bce4
|
@@ -23,7 +23,7 @@ module Ohai
|
|
23
23
|
module ConstantHelper
|
24
24
|
|
25
25
|
def remove_constants
|
26
|
-
new_object_constants = Object.constants - @object_pristine.constants
|
26
|
+
new_object_constants = Object.constants - @object_pristine.constants - [ :SortedSet ]
|
27
27
|
new_object_constants.each do |constant|
|
28
28
|
Object.send(:remove_const, constant) unless Object.const_get(constant).is_a?(Module)
|
29
29
|
end
|
@@ -32,6 +32,24 @@ module Ohai
|
|
32
32
|
[2, 4, 6].each { |n| dec = dec + "." + netmask[n..n + 1].to_i(16).to_s(10) }
|
33
33
|
dec
|
34
34
|
end
|
35
|
+
|
36
|
+
# This does a forward and reverse lookup on the hostname to return what should be
|
37
|
+
# the FQDN for the host determined by name lookup (generally DNS)
|
38
|
+
#
|
39
|
+
def canonicalize_hostname(hostname)
|
40
|
+
Addrinfo.getaddrinfo(hostname, nil).first.getnameinfo.first
|
41
|
+
end
|
42
|
+
|
43
|
+
def canonicalize_hostname_with_retries(hostname)
|
44
|
+
retries = 3
|
45
|
+
begin
|
46
|
+
canonicalize_hostname(hostname)
|
47
|
+
rescue
|
48
|
+
retries -= 1
|
49
|
+
retry if retries > 0
|
50
|
+
nil
|
51
|
+
end
|
52
|
+
end
|
35
53
|
end
|
36
54
|
end
|
37
55
|
end
|
data/lib/ohai/mixin/os.rb
CHANGED
@@ -82,13 +82,13 @@ module Ohai
|
|
82
82
|
else
|
83
83
|
# now we have something like an IPMI console that isn't Unix-like or Windows, presumably cannot run ruby, and
|
84
84
|
# so we just trust the train O/S information.
|
85
|
-
transport_connection.os
|
85
|
+
transport_connection.os.name
|
86
86
|
end
|
87
87
|
end
|
88
88
|
|
89
89
|
# @api private
|
90
90
|
def nonruby_target?
|
91
|
-
transport_connection && !transport_connection.os.unix? && !transport_connection.os.windows
|
91
|
+
transport_connection && !transport_connection.os.unix? && !transport_connection.os.windows?
|
92
92
|
end
|
93
93
|
|
94
94
|
# @api private
|
data/lib/ohai/plugins/cpu.rb
CHANGED
@@ -499,7 +499,7 @@ Ohai.plugin(:CPU) do
|
|
499
499
|
|
500
500
|
cpu[:total] = shell_out("pmcycles -m").stdout.lines.length
|
501
501
|
|
502
|
-
# The below is only
|
502
|
+
# The below is only relevant on an LPAR
|
503
503
|
if shell_out("uname -W").stdout.strip == "0"
|
504
504
|
|
505
505
|
# At least one CPU will be available, but we'll wait to increment this later.
|
@@ -26,7 +26,11 @@
|
|
26
26
|
# limitations under the License.
|
27
27
|
#
|
28
28
|
|
29
|
+
require_relative "../mixin/network_helper"
|
30
|
+
|
29
31
|
Ohai.plugin(:Hostname) do
|
32
|
+
include Ohai::Mixin::NetworkHelper
|
33
|
+
|
30
34
|
provides "domain", "hostname", "fqdn", "machinename"
|
31
35
|
|
32
36
|
# hostname : short hostname
|
@@ -42,38 +46,8 @@ Ohai.plugin(:Hostname) do
|
|
42
46
|
end
|
43
47
|
|
44
48
|
# forward and reverse lookup to canonicalize FQDN (hostname -f equivalent)
|
45
|
-
# this is ipv6-safe, works on ruby 1.8.7+
|
46
49
|
def resolve_fqdn
|
47
|
-
|
48
|
-
require "ipaddr" unless defined?(IPAddr)
|
49
|
-
|
50
|
-
hostname = from_cmd("hostname")
|
51
|
-
begin
|
52
|
-
addrinfo = Socket.getaddrinfo(hostname, nil).first
|
53
|
-
rescue SocketError
|
54
|
-
# In the event that we got an exception from Socket, it's possible
|
55
|
-
# that it will work if we restrict it to IPv4 only either because of
|
56
|
-
# IPv6 misconfiguration or other bugs.
|
57
|
-
#
|
58
|
-
# Specifically it's worth noting that on macOS, getaddrinfo() will choke
|
59
|
-
# if it gets back a link-local address (say if you have 'fe80::1 myhost'
|
60
|
-
# in /etc/hosts). This will raise:
|
61
|
-
# SocketError (getnameinfo: Non-recoverable failure in name resolution)
|
62
|
-
#
|
63
|
-
# But general misconfiguration could cause similar issues, so attempt to
|
64
|
-
# fall back to v4-only
|
65
|
-
begin
|
66
|
-
addrinfo = Socket.getaddrinfo(hostname, nil, :INET).first
|
67
|
-
rescue
|
68
|
-
# and if *that* fails, then try v6-only, in case we're in a v6-only
|
69
|
-
# environment with v4 config issues
|
70
|
-
addrinfo = Socket.getaddrinfo(hostname, nil, :INET6).first
|
71
|
-
end
|
72
|
-
end
|
73
|
-
iaddr = IPAddr.new(addrinfo[3])
|
74
|
-
Socket.gethostbyaddr(iaddr.hton)[0]
|
75
|
-
rescue
|
76
|
-
nil
|
50
|
+
canonicalize_hostname_with_retries(from_cmd("hostname"))
|
77
51
|
end
|
78
52
|
|
79
53
|
def collect_domain
|
@@ -119,58 +93,21 @@ Ohai.plugin(:Hostname) do
|
|
119
93
|
collect_data(:darwin) do
|
120
94
|
hostname from_cmd("hostname -s")
|
121
95
|
machinename from_cmd("hostname")
|
122
|
-
|
123
|
-
our_fqdn = resolve_fqdn
|
124
|
-
# Sometimes... very rarely, but sometimes, 'hostname --fqdn' falsely
|
125
|
-
# returns a blank string. WTF.
|
126
|
-
if our_fqdn.nil? || our_fqdn.empty?
|
127
|
-
logger.trace("Plugin Hostname: hostname returned an empty string, retrying once.")
|
128
|
-
our_fqdn = resolve_fqdn
|
129
|
-
end
|
130
|
-
|
131
|
-
if our_fqdn.nil? || our_fqdn.empty?
|
132
|
-
logger.trace("Plugin Hostname: hostname returned an empty string twice and will" +
|
133
|
-
"not be set.")
|
134
|
-
else
|
135
|
-
fqdn our_fqdn
|
136
|
-
end
|
137
|
-
rescue
|
138
|
-
logger.trace(
|
139
|
-
"Plugin Hostname: hostname returned an error, probably no domain set"
|
140
|
-
)
|
141
|
-
end
|
96
|
+
fqdn resolve_fqdn
|
142
97
|
domain collect_domain
|
143
98
|
end
|
144
99
|
|
145
100
|
collect_data(:freebsd) do
|
146
101
|
hostname from_cmd("hostname -s")
|
147
102
|
machinename from_cmd("hostname")
|
148
|
-
fqdn
|
103
|
+
fqdn resolve_fqdn
|
149
104
|
collect_domain
|
150
105
|
end
|
151
106
|
|
152
107
|
collect_data(:linux) do
|
153
108
|
hostname from_cmd("hostname -s")
|
154
109
|
machinename from_cmd("hostname")
|
155
|
-
|
156
|
-
our_fqdn = from_cmd("hostname --fqdn")
|
157
|
-
# Sometimes... very rarely, but sometimes, 'hostname --fqdn' falsely
|
158
|
-
# returns a blank string. WTF.
|
159
|
-
if our_fqdn.nil? || our_fqdn.empty?
|
160
|
-
logger.trace("Plugin Hostname: hostname --fqdn returned an empty string, retrying " +
|
161
|
-
"once.")
|
162
|
-
our_fqdn = from_cmd("hostname --fqdn")
|
163
|
-
end
|
164
|
-
|
165
|
-
if our_fqdn.nil? || our_fqdn.empty?
|
166
|
-
logger.trace("Plugin Hostname: hostname --fqdn returned an empty string twice and " +
|
167
|
-
"will not be set.")
|
168
|
-
else
|
169
|
-
fqdn our_fqdn
|
170
|
-
end
|
171
|
-
rescue
|
172
|
-
logger.trace("Plugin Hostname: hostname --fqdn returned an error, probably no domain set")
|
173
|
-
end
|
110
|
+
fqdn resolve_fqdn
|
174
111
|
domain collect_domain
|
175
112
|
end
|
176
113
|
|
@@ -190,22 +127,7 @@ Ohai.plugin(:Hostname) do
|
|
190
127
|
|
191
128
|
hostname host["dnshostname"].to_s
|
192
129
|
machinename host["name"].to_s
|
193
|
-
|
194
|
-
info = Socket.gethostbyname(Socket.gethostname)
|
195
|
-
if /.+?\.(.*)/.match?(info.first)
|
196
|
-
fqdn info.first
|
197
|
-
else
|
198
|
-
# host is not in dns. optionally use:
|
199
|
-
# C:\WINDOWS\system32\drivers\etc\hosts
|
200
|
-
info[3..info.length].reverse_each do |addr|
|
201
|
-
hostent = Socket.gethostbyaddr(addr)
|
202
|
-
if /.+?\.(.*)/.match?(hostent.first)
|
203
|
-
fqdn hostent.first
|
204
|
-
break
|
205
|
-
end
|
206
|
-
end
|
207
|
-
fqdn info.first unless fqdn
|
208
|
-
end
|
130
|
+
fqdn canonicalize_hostname_with_retries(Socket.gethostname)
|
209
131
|
domain collect_domain
|
210
132
|
end
|
211
133
|
end
|
data/lib/ohai/plugins/os.rb
CHANGED
@@ -134,9 +134,9 @@ Ohai.plugin(:Packages) do
|
|
134
134
|
require "win32/registry" unless defined?(Win32::Registry)
|
135
135
|
packages Mash.new
|
136
136
|
collect_programs_from_registry_key(Win32::Registry::HKEY_LOCAL_MACHINE, 'Software\Microsoft\Windows\CurrentVersion\Uninstall')
|
137
|
-
|
137
|
+
# on 64 bit systems, 32 bit programs are stored here moved before HKEY_CURRENT_USER otherwise it is not collected (impacts both ohai 16 & 17)
|
138
138
|
collect_programs_from_registry_key(Win32::Registry::HKEY_LOCAL_MACHINE, 'Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall')
|
139
|
-
|
139
|
+
collect_programs_from_registry_key(Win32::Registry::HKEY_CURRENT_USER, 'Software\Microsoft\Windows\CurrentVersion\Uninstall') rescue nil
|
140
140
|
end
|
141
141
|
|
142
142
|
collect_data(:aix) do
|
data/lib/ohai/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ohai
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 17.
|
4
|
+
version: 17.7.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Jacob
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-10-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chef-config
|