ohai 18.2.6 → 19.0.3
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/Gemfile +28 -28
- data/LICENSE +201 -201
- data/bin/ohai +25 -25
- data/lib/ohai/application.rb +189 -189
- data/lib/ohai/common/dmi.rb +167 -167
- data/lib/ohai/config.rb +51 -51
- data/lib/ohai/dsl/plugin/versionvii.rb +203 -203
- data/lib/ohai/dsl/plugin.rb +232 -232
- data/lib/ohai/dsl.rb +22 -22
- data/lib/ohai/exception.rb +36 -36
- data/lib/ohai/hints.rb +68 -68
- data/lib/ohai/loader.rb +178 -178
- data/lib/ohai/log.rb +34 -34
- data/lib/ohai/mash.rb +22 -22
- data/lib/ohai/mixin/alibaba_metadata.rb +83 -83
- data/lib/ohai/mixin/azure_metadata.rb +105 -105
- data/lib/ohai/mixin/chef_utils_wiring.rb +52 -52
- data/lib/ohai/mixin/command.rb +4 -4
- data/lib/ohai/mixin/constant_helper.rb +55 -55
- data/lib/ohai/mixin/dmi_decode.rb +54 -54
- data/lib/ohai/mixin/do_metadata.rb +48 -48
- data/lib/ohai/mixin/ec2_metadata.rb +264 -270
- data/lib/ohai/mixin/gce_metadata.rb +79 -79
- data/lib/ohai/mixin/http_helper.rb +64 -64
- data/lib/ohai/mixin/json_helper.rb +36 -36
- data/lib/ohai/mixin/network_helper.rb +92 -92
- data/lib/ohai/mixin/oci_metadata.rb +60 -60
- data/lib/ohai/mixin/os.rb +128 -128
- data/lib/ohai/mixin/scaleway_metadata.rb +51 -51
- data/lib/ohai/mixin/seconds_to_human.rb +52 -52
- data/lib/ohai/mixin/shell_out.rb +51 -51
- data/lib/ohai/mixin/softlayer_metadata.rb +74 -74
- data/lib/ohai/mixin/string.rb +31 -31
- data/lib/ohai/mixin/train_helpers.rb +36 -36
- data/lib/ohai/mixin/which.rb +39 -39
- data/lib/ohai/plugin_config.rb +47 -47
- data/lib/ohai/plugins/aix/kernel.rb +50 -50
- data/lib/ohai/plugins/aix/memory.rb +37 -37
- data/lib/ohai/plugins/aix/network.rb +142 -142
- data/lib/ohai/plugins/aix/platform.rb +30 -30
- data/lib/ohai/plugins/aix/uptime.rb +54 -54
- data/lib/ohai/plugins/aix/virtualization.rb +154 -154
- data/lib/ohai/plugins/alibaba.rb +72 -72
- data/lib/ohai/plugins/azure.rb +154 -154
- data/lib/ohai/plugins/bsd/virtualization.rb +121 -121
- data/lib/ohai/plugins/c.rb +178 -178
- data/lib/ohai/plugins/chef.rb +50 -50
- data/lib/ohai/plugins/cloud.rb +379 -379
- data/lib/ohai/plugins/command.rb +26 -26
- data/lib/ohai/plugins/cpu.rb +642 -642
- data/lib/ohai/plugins/darwin/hardware.rb +99 -99
- data/lib/ohai/plugins/darwin/memory.rb +62 -62
- data/lib/ohai/plugins/darwin/network.rb +207 -207
- data/lib/ohai/plugins/darwin/platform.rb +40 -40
- data/lib/ohai/plugins/darwin/virtualization.rb +104 -104
- data/lib/ohai/plugins/digital_ocean.rb +67 -67
- data/lib/ohai/plugins/dmi.rb +134 -134
- data/lib/ohai/plugins/docker.rb +58 -58
- data/lib/ohai/plugins/dragonflybsd/memory.rb +60 -60
- data/lib/ohai/plugins/dragonflybsd/network.rb +128 -128
- data/lib/ohai/plugins/dragonflybsd/platform.rb +28 -28
- data/lib/ohai/plugins/ec2.rb +148 -148
- data/lib/ohai/plugins/elixir.rb +36 -36
- data/lib/ohai/plugins/erlang.rb +60 -60
- data/lib/ohai/plugins/eucalyptus.rb +86 -86
- data/lib/ohai/plugins/filesystem.rb +753 -753
- data/lib/ohai/plugins/fips.rb +36 -36
- data/lib/ohai/plugins/freebsd/memory.rb +60 -60
- data/lib/ohai/plugins/freebsd/network.rb +128 -128
- data/lib/ohai/plugins/freebsd/platform.rb +28 -28
- data/lib/ohai/plugins/gce.rb +89 -89
- data/lib/ohai/plugins/go.rb +34 -34
- data/lib/ohai/plugins/groovy.rb +38 -38
- data/lib/ohai/plugins/grub2.rb +40 -40
- data/lib/ohai/plugins/habitat.rb +73 -73
- data/lib/ohai/plugins/haskell.rb +96 -96
- data/lib/ohai/plugins/hostname.rb +133 -133
- data/lib/ohai/plugins/init_package.rb +26 -26
- data/lib/ohai/plugins/java.rb +78 -78
- data/lib/ohai/plugins/kernel.rb +292 -292
- data/lib/ohai/plugins/keys.rb +27 -27
- data/lib/ohai/plugins/languages.rb +26 -26
- data/lib/ohai/plugins/libvirt.rb +114 -114
- data/lib/ohai/plugins/linode.rb +73 -73
- data/lib/ohai/plugins/linux/block_device.rb +48 -48
- data/lib/ohai/plugins/linux/hostnamectl.rb +34 -34
- data/lib/ohai/plugins/linux/interrupts.rb +84 -83
- data/lib/ohai/plugins/linux/ipc.rb +52 -52
- data/lib/ohai/plugins/linux/livepatch.rb +38 -38
- data/lib/ohai/plugins/linux/lsb.rb +46 -46
- data/lib/ohai/plugins/linux/lspci.rb +80 -80
- data/lib/ohai/plugins/linux/machineid.rb +36 -36
- data/lib/ohai/plugins/linux/mdadm.rb +120 -120
- data/lib/ohai/plugins/linux/memory.rb +106 -106
- data/lib/ohai/plugins/linux/network.rb +879 -879
- data/lib/ohai/plugins/linux/os_release.rb +38 -38
- data/lib/ohai/plugins/linux/platform.rb +314 -314
- data/lib/ohai/plugins/linux/selinux.rb +69 -69
- data/lib/ohai/plugins/linux/sessions.rb +54 -54
- data/lib/ohai/plugins/linux/sysctl.rb +39 -39
- data/lib/ohai/plugins/linux/systemd_paths.rb +36 -36
- data/lib/ohai/plugins/linux/tc.rb +61 -61
- data/lib/ohai/plugins/linux/virtualization.rb +300 -300
- data/lib/ohai/plugins/lua.rb +39 -39
- data/lib/ohai/plugins/mono.rb +50 -50
- data/lib/ohai/plugins/netbsd/memory.rb +99 -99
- data/lib/ohai/plugins/netbsd/network.rb +122 -122
- data/lib/ohai/plugins/netbsd/platform.rb +28 -28
- data/lib/ohai/plugins/network.rb +186 -186
- data/lib/ohai/plugins/nodejs.rb +40 -40
- data/lib/ohai/plugins/oci.rb +94 -94
- data/lib/ohai/plugins/ohai.rb +29 -29
- data/lib/ohai/plugins/ohai_time.rb +26 -26
- data/lib/ohai/plugins/openbsd/memory.rb +99 -99
- data/lib/ohai/plugins/openbsd/network.rb +122 -122
- data/lib/ohai/plugins/openbsd/platform.rb +28 -28
- data/lib/ohai/plugins/openstack.rb +84 -84
- data/lib/ohai/plugins/os.rb +55 -55
- data/lib/ohai/plugins/packages.rb +234 -234
- data/lib/ohai/plugins/passwd.rb +104 -104
- data/lib/ohai/plugins/perl.rb +45 -45
- data/lib/ohai/plugins/php.rb +52 -52
- data/lib/ohai/plugins/platform.rb +41 -41
- data/lib/ohai/plugins/powershell.rb +82 -82
- data/lib/ohai/plugins/ps.rb +35 -35
- data/lib/ohai/plugins/python.rb +43 -43
- data/lib/ohai/plugins/rackspace.rb +177 -177
- data/lib/ohai/plugins/root_group.rb +41 -41
- data/lib/ohai/plugins/rpm.rb +121 -121
- data/lib/ohai/plugins/ruby.rb +66 -66
- data/lib/ohai/plugins/rust.rb +34 -34
- data/lib/ohai/plugins/scala.rb +38 -38
- data/lib/ohai/plugins/scaleway.rb +58 -58
- data/lib/ohai/plugins/scsi.rb +52 -52
- data/lib/ohai/plugins/shard.rb +142 -142
- data/lib/ohai/plugins/shells.rb +32 -32
- data/lib/ohai/plugins/softlayer.rb +48 -48
- data/lib/ohai/plugins/solaris2/dmi.rb +191 -191
- data/lib/ohai/plugins/solaris2/memory.rb +32 -32
- data/lib/ohai/plugins/solaris2/network.rb +192 -192
- data/lib/ohai/plugins/solaris2/platform.rb +58 -58
- data/lib/ohai/plugins/solaris2/virtualization.rb +90 -90
- data/lib/ohai/plugins/ssh_host_key.rb +84 -84
- data/lib/ohai/plugins/sysconf.rb +46 -46
- data/lib/ohai/plugins/timezone.rb +45 -45
- data/lib/ohai/plugins/train.rb +35 -35
- data/lib/ohai/plugins/uptime.rb +95 -95
- data/lib/ohai/plugins/virtualbox.rb +197 -197
- data/lib/ohai/plugins/vmware.rb +109 -109
- data/lib/ohai/plugins/windows/dmi.rb +95 -95
- data/lib/ohai/plugins/windows/drivers.rb +52 -52
- data/lib/ohai/plugins/windows/memory.rb +39 -39
- data/lib/ohai/plugins/windows/network.rb +222 -222
- data/lib/ohai/plugins/windows/platform.rb +34 -34
- data/lib/ohai/plugins/windows/system_enclosure.rb +29 -29
- data/lib/ohai/plugins/windows/virtualization.rb +45 -45
- data/lib/ohai/plugins/zpools.rb +94 -94
- data/lib/ohai/provides_map.rb +208 -208
- data/lib/ohai/runner.rb +128 -126
- data/lib/ohai/system.rb +258 -258
- data/lib/ohai/train_transport.rb +29 -29
- data/lib/ohai/util/file_helper.rb +6 -6
- data/lib/ohai/util/ip_helper.rb +56 -56
- data/lib/ohai/util/win32.rb +47 -47
- data/lib/ohai/version.rb +23 -23
- data/lib/ohai.rb +23 -23
- data/ohai.gemspec +35 -35
- metadata +9 -15
data/lib/ohai/plugins/c.rb
CHANGED
@@ -1,178 +1,178 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
#
|
3
|
-
# Author:: Doug MacEachern <dougm@vmware.com>
|
4
|
-
# Copyright:: Copyright (c) 2010 VMware, Inc.
|
5
|
-
# License:: Apache License, Version 2.0
|
6
|
-
#
|
7
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
-
# you may not use this file except in compliance with the License.
|
9
|
-
# You may obtain a copy of the License at
|
10
|
-
#
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
-
#
|
13
|
-
# Unless required by applicable law or agreed to in writing, software
|
14
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
-
# See the License for the specific language governing permissions and
|
17
|
-
# limitations under the License.
|
18
|
-
#
|
19
|
-
|
20
|
-
Ohai.plugin(:C) do
|
21
|
-
provides "languages/c"
|
22
|
-
depends "languages"
|
23
|
-
|
24
|
-
def collect(cmd, &block)
|
25
|
-
so = shell_out(cmd)
|
26
|
-
if so.exitstatus == 0
|
27
|
-
yield(so)
|
28
|
-
else
|
29
|
-
logger.trace("Plugin C: '#{cmd}' failed. Skipping data.")
|
30
|
-
end
|
31
|
-
rescue Ohai::Exceptions::Exec
|
32
|
-
logger.trace("Plugin C: '#{cmd}' binary could not be found. Skipping data.")
|
33
|
-
end
|
34
|
-
|
35
|
-
def xcode_installed?
|
36
|
-
logger.trace("Plugin C: Checking for Xcode Command Line Tools.")
|
37
|
-
so = shell_out("/usr/bin/xcode-select -p")
|
38
|
-
if so.exitstatus == 0
|
39
|
-
logger.trace("Plugin C: Xcode Command Line Tools found.")
|
40
|
-
true
|
41
|
-
else
|
42
|
-
logger.trace("Plugin C: Xcode Command Line Tools not found.")
|
43
|
-
false
|
44
|
-
end
|
45
|
-
rescue Ohai::Exceptions::Exec
|
46
|
-
logger.trace("Plugin C: xcode-select binary could not be found. Skipping data.")
|
47
|
-
end
|
48
|
-
|
49
|
-
def collect_gcc
|
50
|
-
# gcc
|
51
|
-
# Sample output on os x:
|
52
|
-
# Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
|
53
|
-
# Apple LLVM version 7.3.0 (clang-703.0.29)
|
54
|
-
# Target: x86_64-apple-darwin15.4.0
|
55
|
-
# Thread model: posix
|
56
|
-
# InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
|
57
|
-
#
|
58
|
-
#
|
59
|
-
# Sample output on Linux:
|
60
|
-
# Using built-in specs.
|
61
|
-
# COLLECT_GCC=gcc
|
62
|
-
# COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
|
63
|
-
# Target: x86_64-linux-gnu
|
64
|
-
# Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.4' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-trace --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
|
65
|
-
# Thread model: posix
|
66
|
-
# gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
|
67
|
-
gcc = Mash.new
|
68
|
-
collect("gcc -v") do |so|
|
69
|
-
so.stderr.each_line do |line|
|
70
|
-
case line
|
71
|
-
when /^(.*version\s(\S*).*)/
|
72
|
-
gcc[:description] = $1
|
73
|
-
gcc[:version] = $2
|
74
|
-
when /^Target:\s(.*)/
|
75
|
-
gcc[:target] = $1
|
76
|
-
when /^Configured with:\s(.*)/
|
77
|
-
gcc[:configured_with] = $1
|
78
|
-
when /^Thread model:\s(.*)/
|
79
|
-
gcc[:thread_model] = $1
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
@c[:gcc] = gcc unless gcc.empty?
|
84
|
-
end
|
85
|
-
|
86
|
-
def collect_glibc
|
87
|
-
# glibc
|
88
|
-
collect("ldd --version") do |so|
|
89
|
-
description = so.stdout.split($/).first
|
90
|
-
if description =~ /(\d+\.\d+\.?\d*)/
|
91
|
-
@c[:glibc] = Mash.new
|
92
|
-
@c[:glibc][:version] = $1
|
93
|
-
@c[:glibc][:description] = description
|
94
|
-
end
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
|
-
def check_for_cl
|
99
|
-
# ms cl
|
100
|
-
collect("cl /?") do |so|
|
101
|
-
description = so.stderr.lines.first.chomp
|
102
|
-
if description =~ /Compiler Version ([\d\.]+)/
|
103
|
-
@c[:cl] = Mash.new
|
104
|
-
@c[:cl][:version] = $1
|
105
|
-
@c[:cl][:description] = description
|
106
|
-
end
|
107
|
-
end
|
108
|
-
end
|
109
|
-
|
110
|
-
def check_for_devenv
|
111
|
-
# ms vs
|
112
|
-
collect("devenv.com /?") do |so|
|
113
|
-
lines = so.stdout.split($/)
|
114
|
-
description = lines[0].length == 0 ? lines[1] : lines[0]
|
115
|
-
if description =~ /Visual Studio Version ([\d\.]+)/
|
116
|
-
@c[:vs] = Mash.new
|
117
|
-
@c[:vs][:version] = $1.chop
|
118
|
-
@c[:vs][:description] = description
|
119
|
-
end
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
def collect_xlc
|
124
|
-
# IBM XL C/C++ for AIX, V13.1.3 (5725-C72, 5765-J07)
|
125
|
-
# Version: 13.01.0003.0000
|
126
|
-
so = shell_out("xlc -qversion")
|
127
|
-
if so.exitstatus == 0 || (so.exitstatus >> 8) == 249
|
128
|
-
description = so.stdout.split($/).first
|
129
|
-
if description =~ /V(\d+\.\d+(.\d+)?)/
|
130
|
-
@c[:xlc] = Mash.new
|
131
|
-
@c[:xlc][:version] = $1
|
132
|
-
@c[:xlc][:description] = description.strip
|
133
|
-
end
|
134
|
-
end
|
135
|
-
rescue Ohai::Exceptions::Exec
|
136
|
-
logger.trace("Plugin C: 'xlc' binary could not be found. Skipping data.")
|
137
|
-
end
|
138
|
-
|
139
|
-
def collect_sun_pro
|
140
|
-
# sun pro
|
141
|
-
collect("cc -V -flags") do |so|
|
142
|
-
output = so.stderr.split
|
143
|
-
if so.stderr =~ /^cc: Sun C/ && output.size >= 4
|
144
|
-
@c[:sunpro] = Mash.new
|
145
|
-
@c[:sunpro][:version] = output[3]
|
146
|
-
@c[:sunpro][:description] = so.stderr.chomp
|
147
|
-
end
|
148
|
-
end
|
149
|
-
end
|
150
|
-
|
151
|
-
collect_data(:aix) do
|
152
|
-
@c = Mash.new
|
153
|
-
collect_xlc
|
154
|
-
collect_gcc
|
155
|
-
languages[:c] = @c unless @c.empty?
|
156
|
-
end
|
157
|
-
|
158
|
-
collect_data(:darwin) do
|
159
|
-
@c = Mash.new
|
160
|
-
collect_gcc if xcode_installed?
|
161
|
-
languages[:c] = @c unless @c.empty?
|
162
|
-
end
|
163
|
-
|
164
|
-
collect_data(:windows) do
|
165
|
-
@c = Mash.new
|
166
|
-
check_for_cl
|
167
|
-
check_for_devenv
|
168
|
-
languages[:c] = @c unless @c.empty?
|
169
|
-
end
|
170
|
-
|
171
|
-
collect_data(:default) do
|
172
|
-
@c = Mash.new
|
173
|
-
collect_gcc
|
174
|
-
collect_glibc
|
175
|
-
collect_sun_pro
|
176
|
-
languages[:c] = @c unless @c.empty?
|
177
|
-
end
|
178
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
#
|
3
|
+
# Author:: Doug MacEachern <dougm@vmware.com>
|
4
|
+
# Copyright:: Copyright (c) 2010 VMware, Inc.
|
5
|
+
# License:: Apache License, Version 2.0
|
6
|
+
#
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
+
# you may not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
+
# See the License for the specific language governing permissions and
|
17
|
+
# limitations under the License.
|
18
|
+
#
|
19
|
+
|
20
|
+
Ohai.plugin(:C) do
|
21
|
+
provides "languages/c"
|
22
|
+
depends "languages"
|
23
|
+
|
24
|
+
def collect(cmd, &block)
|
25
|
+
so = shell_out(cmd)
|
26
|
+
if so.exitstatus == 0
|
27
|
+
yield(so)
|
28
|
+
else
|
29
|
+
logger.trace("Plugin C: '#{cmd}' failed. Skipping data.")
|
30
|
+
end
|
31
|
+
rescue Ohai::Exceptions::Exec
|
32
|
+
logger.trace("Plugin C: '#{cmd}' binary could not be found. Skipping data.")
|
33
|
+
end
|
34
|
+
|
35
|
+
def xcode_installed?
|
36
|
+
logger.trace("Plugin C: Checking for Xcode Command Line Tools.")
|
37
|
+
so = shell_out("/usr/bin/xcode-select -p")
|
38
|
+
if so.exitstatus == 0
|
39
|
+
logger.trace("Plugin C: Xcode Command Line Tools found.")
|
40
|
+
true
|
41
|
+
else
|
42
|
+
logger.trace("Plugin C: Xcode Command Line Tools not found.")
|
43
|
+
false
|
44
|
+
end
|
45
|
+
rescue Ohai::Exceptions::Exec
|
46
|
+
logger.trace("Plugin C: xcode-select binary could not be found. Skipping data.")
|
47
|
+
end
|
48
|
+
|
49
|
+
def collect_gcc
|
50
|
+
# gcc
|
51
|
+
# Sample output on os x:
|
52
|
+
# Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
|
53
|
+
# Apple LLVM version 7.3.0 (clang-703.0.29)
|
54
|
+
# Target: x86_64-apple-darwin15.4.0
|
55
|
+
# Thread model: posix
|
56
|
+
# InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
|
57
|
+
#
|
58
|
+
#
|
59
|
+
# Sample output on Linux:
|
60
|
+
# Using built-in specs.
|
61
|
+
# COLLECT_GCC=gcc
|
62
|
+
# COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
|
63
|
+
# Target: x86_64-linux-gnu
|
64
|
+
# Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.4' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-trace --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
|
65
|
+
# Thread model: posix
|
66
|
+
# gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
|
67
|
+
gcc = Mash.new
|
68
|
+
collect("gcc -v") do |so|
|
69
|
+
so.stderr.each_line do |line|
|
70
|
+
case line
|
71
|
+
when /^(.*version\s(\S*).*)/
|
72
|
+
gcc[:description] = $1
|
73
|
+
gcc[:version] = $2
|
74
|
+
when /^Target:\s(.*)/
|
75
|
+
gcc[:target] = $1
|
76
|
+
when /^Configured with:\s(.*)/
|
77
|
+
gcc[:configured_with] = $1
|
78
|
+
when /^Thread model:\s(.*)/
|
79
|
+
gcc[:thread_model] = $1
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
@c[:gcc] = gcc unless gcc.empty?
|
84
|
+
end
|
85
|
+
|
86
|
+
def collect_glibc
|
87
|
+
# glibc
|
88
|
+
collect("ldd --version") do |so|
|
89
|
+
description = so.stdout.split($/).first
|
90
|
+
if description =~ /(\d+\.\d+\.?\d*)/
|
91
|
+
@c[:glibc] = Mash.new
|
92
|
+
@c[:glibc][:version] = $1
|
93
|
+
@c[:glibc][:description] = description
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
def check_for_cl
|
99
|
+
# ms cl
|
100
|
+
collect("cl /?") do |so|
|
101
|
+
description = so.stderr.lines.first.chomp
|
102
|
+
if description =~ /Compiler Version ([\d\.]+)/
|
103
|
+
@c[:cl] = Mash.new
|
104
|
+
@c[:cl][:version] = $1
|
105
|
+
@c[:cl][:description] = description
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
def check_for_devenv
|
111
|
+
# ms vs
|
112
|
+
collect("devenv.com /?") do |so|
|
113
|
+
lines = so.stdout.split($/)
|
114
|
+
description = lines[0].length == 0 ? lines[1] : lines[0]
|
115
|
+
if description =~ /Visual Studio Version ([\d\.]+)/
|
116
|
+
@c[:vs] = Mash.new
|
117
|
+
@c[:vs][:version] = $1.chop
|
118
|
+
@c[:vs][:description] = description
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
def collect_xlc
|
124
|
+
# IBM XL C/C++ for AIX, V13.1.3 (5725-C72, 5765-J07)
|
125
|
+
# Version: 13.01.0003.0000
|
126
|
+
so = shell_out("xlc -qversion")
|
127
|
+
if so.exitstatus == 0 || (so.exitstatus >> 8) == 249
|
128
|
+
description = so.stdout.split($/).first
|
129
|
+
if description =~ /V(\d+\.\d+(.\d+)?)/
|
130
|
+
@c[:xlc] = Mash.new
|
131
|
+
@c[:xlc][:version] = $1
|
132
|
+
@c[:xlc][:description] = description.strip
|
133
|
+
end
|
134
|
+
end
|
135
|
+
rescue Ohai::Exceptions::Exec
|
136
|
+
logger.trace("Plugin C: 'xlc' binary could not be found. Skipping data.")
|
137
|
+
end
|
138
|
+
|
139
|
+
def collect_sun_pro
|
140
|
+
# sun pro
|
141
|
+
collect("cc -V -flags") do |so|
|
142
|
+
output = so.stderr.split
|
143
|
+
if so.stderr =~ /^cc: Sun C/ && output.size >= 4
|
144
|
+
@c[:sunpro] = Mash.new
|
145
|
+
@c[:sunpro][:version] = output[3]
|
146
|
+
@c[:sunpro][:description] = so.stderr.chomp
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
collect_data(:aix) do
|
152
|
+
@c = Mash.new
|
153
|
+
collect_xlc
|
154
|
+
collect_gcc
|
155
|
+
languages[:c] = @c unless @c.empty?
|
156
|
+
end
|
157
|
+
|
158
|
+
collect_data(:darwin) do
|
159
|
+
@c = Mash.new
|
160
|
+
collect_gcc if xcode_installed?
|
161
|
+
languages[:c] = @c unless @c.empty?
|
162
|
+
end
|
163
|
+
|
164
|
+
collect_data(:windows) do
|
165
|
+
@c = Mash.new
|
166
|
+
check_for_cl
|
167
|
+
check_for_devenv
|
168
|
+
languages[:c] = @c unless @c.empty?
|
169
|
+
end
|
170
|
+
|
171
|
+
collect_data(:default) do
|
172
|
+
@c = Mash.new
|
173
|
+
collect_gcc
|
174
|
+
collect_glibc
|
175
|
+
collect_sun_pro
|
176
|
+
languages[:c] = @c unless @c.empty?
|
177
|
+
end
|
178
|
+
end
|
data/lib/ohai/plugins/chef.rb
CHANGED
@@ -1,50 +1,50 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
#
|
3
|
-
# Author:: Tollef Fog Heen <tfheen@err.no>
|
4
|
-
# Copyright:: Copyright (c) 2010 Tollef Fog Heen
|
5
|
-
# License:: Apache License, Version 2.0
|
6
|
-
#
|
7
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
-
# you may not use this file except in compliance with the License.
|
9
|
-
# You may obtain a copy of the License at
|
10
|
-
#
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
-
#
|
13
|
-
# Unless required by applicable law or agreed to in writing, software
|
14
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
-
# See the License for the specific language governing permissions and
|
17
|
-
# limitations under the License.
|
18
|
-
#
|
19
|
-
|
20
|
-
Ohai.plugin(:Chef) do
|
21
|
-
provides "chef_packages/chef"
|
22
|
-
|
23
|
-
def chef_effortless?
|
24
|
-
# Determine if client is being run as a Habitat package.
|
25
|
-
if Chef::CHEF_ROOT.include?("hab/pkgs/chef/chef")
|
26
|
-
# Determine if client is running in zero mode which would show it is using the Effortless pattern.
|
27
|
-
# Explicitly set response to true or nil, not false
|
28
|
-
ChefConfig::Config["chef_server_url"].include?("chefzero://")
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
collect_data(:default, :target) do
|
33
|
-
begin
|
34
|
-
require "chef/version"
|
35
|
-
require "chef-config/config" unless defined?(ChefConfig::Config)
|
36
|
-
rescue LoadError
|
37
|
-
logger.trace("Plugin Chef: Unable to load the chef gem to determine the version")
|
38
|
-
# this catches when you've done a major version bump of ohai, but
|
39
|
-
# your chef gem is incompatible, so we can't load it in the same VM
|
40
|
-
# (affects mostly internal testing)
|
41
|
-
next # avoids us writing an empty mash
|
42
|
-
end
|
43
|
-
|
44
|
-
chef_packages Mash.new unless chef_packages
|
45
|
-
chef_packages[:chef] = Mash.new
|
46
|
-
chef_packages[:chef][:version] = Chef::VERSION
|
47
|
-
chef_packages[:chef][:chef_root] = Chef::CHEF_ROOT
|
48
|
-
chef_packages[:chef][:chef_effortless] = chef_effortless?
|
49
|
-
end
|
50
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
#
|
3
|
+
# Author:: Tollef Fog Heen <tfheen@err.no>
|
4
|
+
# Copyright:: Copyright (c) 2010 Tollef Fog Heen
|
5
|
+
# License:: Apache License, Version 2.0
|
6
|
+
#
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
+
# you may not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
+
# See the License for the specific language governing permissions and
|
17
|
+
# limitations under the License.
|
18
|
+
#
|
19
|
+
|
20
|
+
Ohai.plugin(:Chef) do
|
21
|
+
provides "chef_packages/chef"
|
22
|
+
|
23
|
+
def chef_effortless?
|
24
|
+
# Determine if client is being run as a Habitat package.
|
25
|
+
if Chef::CHEF_ROOT.include?("hab/pkgs/chef/chef")
|
26
|
+
# Determine if client is running in zero mode which would show it is using the Effortless pattern.
|
27
|
+
# Explicitly set response to true or nil, not false
|
28
|
+
ChefConfig::Config["chef_server_url"].include?("chefzero://")
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
collect_data(:default, :target) do
|
33
|
+
begin
|
34
|
+
require "chef/version"
|
35
|
+
require "chef-config/config" unless defined?(ChefConfig::Config)
|
36
|
+
rescue LoadError
|
37
|
+
logger.trace("Plugin Chef: Unable to load the chef gem to determine the version")
|
38
|
+
# this catches when you've done a major version bump of ohai, but
|
39
|
+
# your chef gem is incompatible, so we can't load it in the same VM
|
40
|
+
# (affects mostly internal testing)
|
41
|
+
next # avoids us writing an empty mash
|
42
|
+
end
|
43
|
+
|
44
|
+
chef_packages Mash.new unless chef_packages
|
45
|
+
chef_packages[:chef] = Mash.new
|
46
|
+
chef_packages[:chef][:version] = Chef::VERSION
|
47
|
+
chef_packages[:chef][:chef_root] = Chef::CHEF_ROOT
|
48
|
+
chef_packages[:chef][:chef_effortless] = chef_effortless?
|
49
|
+
end
|
50
|
+
end
|