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/gce.rb
CHANGED
@@ -1,89 +1,89 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
#
|
3
|
-
# Author:: Ranjib Dey (<dey.ranjib@google.com>)
|
4
|
-
# License:: Apache License, Version 2.0
|
5
|
-
#
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
-
# you may not use this file except in compliance with the License.
|
8
|
-
# You may obtain a copy of the License at
|
9
|
-
#
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
#
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
-
# See the License for the specific language governing permissions and
|
16
|
-
# limitations under the License.
|
17
|
-
|
18
|
-
Ohai.plugin(:GCE) do
|
19
|
-
require_relative "../mixin/gce_metadata"
|
20
|
-
require_relative "../mixin/http_helper"
|
21
|
-
|
22
|
-
include Ohai::Mixin::GCEMetadata
|
23
|
-
include Ohai::Mixin::HttpHelper
|
24
|
-
|
25
|
-
provides "gce"
|
26
|
-
|
27
|
-
# look for GCE string in dmi vendor bios data within the sys tree.
|
28
|
-
# this works even if the system lacks dmidecode use by the Dmi plugin
|
29
|
-
# @return [Boolean] do we have Google Compute Engine DMI data?
|
30
|
-
def has_gce_dmi?
|
31
|
-
if file_val_if_exists("/sys/class/dmi/id/product_name").to_s.include?("Google Compute Engine")
|
32
|
-
logger.trace("Plugin GCE: has_gce_dmi? == true")
|
33
|
-
true
|
34
|
-
else
|
35
|
-
logger.trace("Plugin GCE: has_gce_dmi? == false")
|
36
|
-
false
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
# return the contents of a file if the file exists
|
41
|
-
# @param path[String] abs path to the file
|
42
|
-
# @return [String] contents of the file if it exists
|
43
|
-
def file_val_if_exists(path)
|
44
|
-
if file_exist?(path)
|
45
|
-
file_read(path)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
# looks at the Manufacturer and Model WMI values to see if they starts with Google.
|
50
|
-
# @return [Boolean] Are the manufacturer and model Google?
|
51
|
-
def has_gce_system_info?
|
52
|
-
if RUBY_PLATFORM.match?(/mswin|mingw|windows/)
|
53
|
-
require "wmi-lite/wmi" unless defined?(WmiLite::Wmi)
|
54
|
-
wmi = WmiLite::Wmi.new
|
55
|
-
computer_system = wmi.first_of("Win32_ComputerSystem")
|
56
|
-
if computer_system["Manufacturer"] =~ /^Google/ && computer_system["Model"] =~ /^Google/
|
57
|
-
logger.trace("Plugin GCE: has_gce_system_info? == true")
|
58
|
-
true
|
59
|
-
end
|
60
|
-
else
|
61
|
-
logger.trace("Plugin GCE: has_gce_system_info? == false")
|
62
|
-
false
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
# Identifies gce
|
67
|
-
#
|
68
|
-
# === Return
|
69
|
-
# true:: If gce can be identified
|
70
|
-
# false:: Otherwise
|
71
|
-
def looks_like_gce?
|
72
|
-
return true if hint?("gce")
|
73
|
-
|
74
|
-
if has_gce_dmi? || has_gce_system_info?
|
75
|
-
true if can_socket_connect?(Ohai::Mixin::GCEMetadata::GCE_METADATA_ADDR, 80)
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
collect_data do
|
80
|
-
if looks_like_gce?
|
81
|
-
logger.trace("Plugin GCE: looks_like_gce? == true")
|
82
|
-
gce Mash.new
|
83
|
-
fetch_metadata.each { |k, v| gce[k] = v }
|
84
|
-
else
|
85
|
-
logger.trace("Plugin GCE: looks_like_gce? == false")
|
86
|
-
false
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
#
|
3
|
+
# Author:: Ranjib Dey (<dey.ranjib@google.com>)
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
|
18
|
+
Ohai.plugin(:GCE) do
|
19
|
+
require_relative "../mixin/gce_metadata"
|
20
|
+
require_relative "../mixin/http_helper"
|
21
|
+
|
22
|
+
include Ohai::Mixin::GCEMetadata
|
23
|
+
include Ohai::Mixin::HttpHelper
|
24
|
+
|
25
|
+
provides "gce"
|
26
|
+
|
27
|
+
# look for GCE string in dmi vendor bios data within the sys tree.
|
28
|
+
# this works even if the system lacks dmidecode use by the Dmi plugin
|
29
|
+
# @return [Boolean] do we have Google Compute Engine DMI data?
|
30
|
+
def has_gce_dmi?
|
31
|
+
if file_val_if_exists("/sys/class/dmi/id/product_name").to_s.include?("Google Compute Engine")
|
32
|
+
logger.trace("Plugin GCE: has_gce_dmi? == true")
|
33
|
+
true
|
34
|
+
else
|
35
|
+
logger.trace("Plugin GCE: has_gce_dmi? == false")
|
36
|
+
false
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
# return the contents of a file if the file exists
|
41
|
+
# @param path[String] abs path to the file
|
42
|
+
# @return [String] contents of the file if it exists
|
43
|
+
def file_val_if_exists(path)
|
44
|
+
if file_exist?(path)
|
45
|
+
file_read(path)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
# looks at the Manufacturer and Model WMI values to see if they starts with Google.
|
50
|
+
# @return [Boolean] Are the manufacturer and model Google?
|
51
|
+
def has_gce_system_info?
|
52
|
+
if RUBY_PLATFORM.match?(/mswin|mingw|windows/)
|
53
|
+
require "wmi-lite/wmi" unless defined?(WmiLite::Wmi)
|
54
|
+
wmi = WmiLite::Wmi.new
|
55
|
+
computer_system = wmi.first_of("Win32_ComputerSystem")
|
56
|
+
if computer_system["Manufacturer"] =~ /^Google/ && computer_system["Model"] =~ /^Google/
|
57
|
+
logger.trace("Plugin GCE: has_gce_system_info? == true")
|
58
|
+
true
|
59
|
+
end
|
60
|
+
else
|
61
|
+
logger.trace("Plugin GCE: has_gce_system_info? == false")
|
62
|
+
false
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
# Identifies gce
|
67
|
+
#
|
68
|
+
# === Return
|
69
|
+
# true:: If gce can be identified
|
70
|
+
# false:: Otherwise
|
71
|
+
def looks_like_gce?
|
72
|
+
return true if hint?("gce")
|
73
|
+
|
74
|
+
if has_gce_dmi? || has_gce_system_info?
|
75
|
+
return true if can_socket_connect?(Ohai::Mixin::GCEMetadata::GCE_METADATA_ADDR, 80)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
collect_data do
|
80
|
+
if looks_like_gce?
|
81
|
+
logger.trace("Plugin GCE: looks_like_gce? == true")
|
82
|
+
gce Mash.new
|
83
|
+
fetch_metadata.each { |k, v| gce[k] = v }
|
84
|
+
else
|
85
|
+
logger.trace("Plugin GCE: looks_like_gce? == false")
|
86
|
+
false
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
data/lib/ohai/plugins/go.rb
CHANGED
@@ -1,34 +1,34 @@
|
|
1
|
-
# Author:: Christian Vozar (<christian@rogueethic.com>)
|
2
|
-
# License:: Apache License, Version 2.0
|
3
|
-
#
|
4
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
# you may not use this file except in compliance with the License.
|
6
|
-
# You may obtain a copy of the License at
|
7
|
-
#
|
8
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
-
#
|
10
|
-
# Unless required by applicable law or agreed to in writing, software
|
11
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
-
# See the License for the specific language governing permissions and
|
14
|
-
# limitations under the License.
|
15
|
-
|
16
|
-
Ohai.plugin(:Go) do
|
17
|
-
provides "languages/go"
|
18
|
-
depends "languages".freeze
|
19
|
-
|
20
|
-
collect_data do
|
21
|
-
|
22
|
-
so = shell_out("go version")
|
23
|
-
# Sample output:
|
24
|
-
# go version go1.6.1 darwin/amd64
|
25
|
-
if so.exitstatus == 0 && so.stdout =~ /go(\S+)/
|
26
|
-
go = Mash.new
|
27
|
-
go[:version] = $1
|
28
|
-
languages[:go] = go
|
29
|
-
end
|
30
|
-
rescue Ohai::Exceptions::Exec
|
31
|
-
logger.trace('Plugin Go: Could not shell_out "go version". Skipping plugin')
|
32
|
-
|
33
|
-
end
|
34
|
-
end
|
1
|
+
# Author:: Christian Vozar (<christian@rogueethic.com>)
|
2
|
+
# License:: Apache License, Version 2.0
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
|
16
|
+
Ohai.plugin(:Go) do
|
17
|
+
provides "languages/go"
|
18
|
+
depends "languages".freeze
|
19
|
+
|
20
|
+
collect_data do
|
21
|
+
|
22
|
+
so = shell_out("go version")
|
23
|
+
# Sample output:
|
24
|
+
# go version go1.6.1 darwin/amd64
|
25
|
+
if so.exitstatus == 0 && so.stdout =~ /go(\S+)/
|
26
|
+
go = Mash.new
|
27
|
+
go[:version] = $1
|
28
|
+
languages[:go] = go
|
29
|
+
end
|
30
|
+
rescue Ohai::Exceptions::Exec
|
31
|
+
logger.trace('Plugin Go: Could not shell_out "go version". Skipping plugin')
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
data/lib/ohai/plugins/groovy.rb
CHANGED
@@ -1,38 +1,38 @@
|
|
1
|
-
#
|
2
|
-
# Author:: Doug MacEachern <dougm@vmware.com>
|
3
|
-
# Copyright:: Copyright (c) 2009 VMware, Inc.
|
4
|
-
# License:: Apache License, Version 2.0
|
5
|
-
#
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
-
# you may not use this file except in compliance with the License.
|
8
|
-
# You may obtain a copy of the License at
|
9
|
-
#
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
#
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
-
# See the License for the specific language governing permissions and
|
16
|
-
# limitations under the License.
|
17
|
-
#
|
18
|
-
|
19
|
-
Ohai.plugin(:Groovy) do
|
20
|
-
provides "languages/groovy"
|
21
|
-
depends "languages".freeze
|
22
|
-
|
23
|
-
collect_data do
|
24
|
-
|
25
|
-
so = shell_out("groovy -v")
|
26
|
-
# Sample output:
|
27
|
-
# Groovy Version: 2.4.6 JVM: 1.8.0_60 Vendor: Oracle Corporation OS: Mac OS X
|
28
|
-
if so.exitstatus == 0 && so.stdout =~ /Groovy Version: (\S+).*JVM: (\S+)/
|
29
|
-
groovy = Mash.new
|
30
|
-
groovy[:version] = $1
|
31
|
-
groovy[:jvm] = $2
|
32
|
-
languages[:groovy] = groovy
|
33
|
-
end
|
34
|
-
rescue Ohai::Exceptions::Exec
|
35
|
-
logger.trace('Plugin Groovy: Could not shell_out "groovy -v". Skipping plugin')
|
36
|
-
|
37
|
-
end
|
38
|
-
end
|
1
|
+
#
|
2
|
+
# Author:: Doug MacEachern <dougm@vmware.com>
|
3
|
+
# Copyright:: Copyright (c) 2009 VMware, Inc.
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
|
19
|
+
Ohai.plugin(:Groovy) do
|
20
|
+
provides "languages/groovy"
|
21
|
+
depends "languages".freeze
|
22
|
+
|
23
|
+
collect_data do
|
24
|
+
|
25
|
+
so = shell_out("groovy -v")
|
26
|
+
# Sample output:
|
27
|
+
# Groovy Version: 2.4.6 JVM: 1.8.0_60 Vendor: Oracle Corporation OS: Mac OS X
|
28
|
+
if so.exitstatus == 0 && so.stdout =~ /Groovy Version: (\S+).*JVM: (\S+)/
|
29
|
+
groovy = Mash.new
|
30
|
+
groovy[:version] = $1
|
31
|
+
groovy[:jvm] = $2
|
32
|
+
languages[:groovy] = groovy
|
33
|
+
end
|
34
|
+
rescue Ohai::Exceptions::Exec
|
35
|
+
logger.trace('Plugin Groovy: Could not shell_out "groovy -v". Skipping plugin')
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
data/lib/ohai/plugins/grub2.rb
CHANGED
@@ -1,40 +1,40 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
#
|
3
|
-
# Author:: Davide Cavalca <dcavalca@fb.com>
|
4
|
-
# Copyright:: Copyright (c) 2020 Facebook
|
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(:Grub2) do
|
21
|
-
provides "grub2/environment"
|
22
|
-
optional true
|
23
|
-
|
24
|
-
collect_data(:dragonflybsd, :freebsd, :linux, :netbsd) do
|
25
|
-
editenv_path = which("grub2-editenv")
|
26
|
-
if editenv_path
|
27
|
-
editenv_out = shell_out("#{editenv_path} list")
|
28
|
-
|
29
|
-
grub2 Mash.new unless grub2
|
30
|
-
grub2[:environment] ||= Mash.new
|
31
|
-
|
32
|
-
editenv_out.stdout.each_line do |line|
|
33
|
-
key, val = line.split("=", 2)
|
34
|
-
grub2[:environment][key] = val.strip
|
35
|
-
end
|
36
|
-
else
|
37
|
-
logger.trace("Plugin Grub2: Could not find grub2-editenv. Skipping plugin.")
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
#
|
3
|
+
# Author:: Davide Cavalca <dcavalca@fb.com>
|
4
|
+
# Copyright:: Copyright (c) 2020 Facebook
|
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(:Grub2) do
|
21
|
+
provides "grub2/environment"
|
22
|
+
optional true
|
23
|
+
|
24
|
+
collect_data(:dragonflybsd, :freebsd, :linux, :netbsd) do
|
25
|
+
editenv_path = which("grub2-editenv")
|
26
|
+
if editenv_path
|
27
|
+
editenv_out = shell_out("#{editenv_path} list")
|
28
|
+
|
29
|
+
grub2 Mash.new unless grub2
|
30
|
+
grub2[:environment] ||= Mash.new
|
31
|
+
|
32
|
+
editenv_out.stdout.each_line do |line|
|
33
|
+
key, val = line.split("=", 2)
|
34
|
+
grub2[:environment][key] = val.strip
|
35
|
+
end
|
36
|
+
else
|
37
|
+
logger.trace("Plugin Grub2: Could not find grub2-editenv. Skipping plugin.")
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/lib/ohai/plugins/habitat.rb
CHANGED
@@ -1,73 +1,73 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
#
|
3
|
-
# Copyright:: Copyright (c) Chef Software Inc.
|
4
|
-
# License:: Apache License, Version 2.0
|
5
|
-
#
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
-
# you may not use this file except in compliance with the License.
|
8
|
-
# You may obtain a copy of the License at
|
9
|
-
#
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
#
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
-
# See the License for the specific language governing permissions and
|
16
|
-
# limitations under the License.
|
17
|
-
#
|
18
|
-
#
|
19
|
-
Ohai.plugin(:Habitat) do
|
20
|
-
provides "habitat"
|
21
|
-
|
22
|
-
def habitat_binary
|
23
|
-
@habitat_binary ||= which("hab")
|
24
|
-
end
|
25
|
-
|
26
|
-
def fetch_habitat_version
|
27
|
-
shell_out([habitat_binary, "-V"]).stdout.gsub(/hab\s*/, "").strip
|
28
|
-
rescue Ohai::Exceptions::Exec
|
29
|
-
logger.trace("Plugin Habitat: Unable to determine the installed version of Habitat, skipping collection.")
|
30
|
-
end
|
31
|
-
|
32
|
-
def fetch_habitat_packages
|
33
|
-
shell_out([habitat_binary, "pkg", "list", "--all"]).stdout.split.sort.select { |pkg| pkg.match?(%r{.*/.*/.*/.*}) }
|
34
|
-
rescue Ohai::Exceptions::Exec
|
35
|
-
logger.trace("Plugin Habitat: Unable to determine the installed Habitat packages, skipping collection.")
|
36
|
-
end
|
37
|
-
|
38
|
-
def load_habitat_service_via_cli(status_stdout)
|
39
|
-
# package type desired state elapsed (s) pid group
|
40
|
-
# core/httpd/2.4.35/20190307151146 standalone up up 158169 1410 httpd.default
|
41
|
-
@services = []
|
42
|
-
status_stdout.each_line do |line|
|
43
|
-
fields = line.split(/\s+/)
|
44
|
-
next unless fields[0].match?(%r{.*/.*/.*/.*}) # ignore header line
|
45
|
-
|
46
|
-
service = {}
|
47
|
-
service[:identity] = fields[0]
|
48
|
-
service[:topology] = fields[1]
|
49
|
-
service[:state_desired] = fields[2]
|
50
|
-
service[:state_actual] = fields[2]
|
51
|
-
(@services).push(service)
|
52
|
-
end
|
53
|
-
@services
|
54
|
-
end
|
55
|
-
|
56
|
-
def fetch_habitat_services
|
57
|
-
services_shell_out = shell_out([habitat_binary, "svc", "status"]).stdout
|
58
|
-
load_habitat_service_via_cli(services_shell_out) if services_shell_out
|
59
|
-
rescue Ohai::Exceptions::Exec
|
60
|
-
logger.trace("Plugin Habitat: Unable to determine the installed Habitat services, skipping collection.")
|
61
|
-
end
|
62
|
-
|
63
|
-
collect_data(:default) do
|
64
|
-
if habitat_binary
|
65
|
-
habitat Mash.new
|
66
|
-
habitat["version"] = fetch_habitat_version
|
67
|
-
habitat["packages"] = fetch_habitat_packages
|
68
|
-
habitat["services"] = fetch_habitat_services
|
69
|
-
else
|
70
|
-
logger.trace("Plugin Habitat: Could not find hab binary. Skipping plugin.")
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
#
|
3
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
#
|
19
|
+
Ohai.plugin(:Habitat) do
|
20
|
+
provides "habitat"
|
21
|
+
|
22
|
+
def habitat_binary
|
23
|
+
@habitat_binary ||= which("hab")
|
24
|
+
end
|
25
|
+
|
26
|
+
def fetch_habitat_version
|
27
|
+
shell_out([habitat_binary, "-V"]).stdout.gsub(/hab\s*/, "").strip
|
28
|
+
rescue Ohai::Exceptions::Exec
|
29
|
+
logger.trace("Plugin Habitat: Unable to determine the installed version of Habitat, skipping collection.")
|
30
|
+
end
|
31
|
+
|
32
|
+
def fetch_habitat_packages
|
33
|
+
shell_out([habitat_binary, "pkg", "list", "--all"]).stdout.split.sort.select { |pkg| pkg.match?(%r{.*/.*/.*/.*}) }
|
34
|
+
rescue Ohai::Exceptions::Exec
|
35
|
+
logger.trace("Plugin Habitat: Unable to determine the installed Habitat packages, skipping collection.")
|
36
|
+
end
|
37
|
+
|
38
|
+
def load_habitat_service_via_cli(status_stdout)
|
39
|
+
# package type desired state elapsed (s) pid group
|
40
|
+
# core/httpd/2.4.35/20190307151146 standalone up up 158169 1410 httpd.default
|
41
|
+
@services = []
|
42
|
+
status_stdout.each_line do |line|
|
43
|
+
fields = line.split(/\s+/)
|
44
|
+
next unless fields[0].match?(%r{.*/.*/.*/.*}) # ignore header line
|
45
|
+
|
46
|
+
service = {}
|
47
|
+
service[:identity] = fields[0]
|
48
|
+
service[:topology] = fields[1]
|
49
|
+
service[:state_desired] = fields[2]
|
50
|
+
service[:state_actual] = fields[2]
|
51
|
+
(@services).push(service)
|
52
|
+
end
|
53
|
+
@services
|
54
|
+
end
|
55
|
+
|
56
|
+
def fetch_habitat_services
|
57
|
+
services_shell_out = shell_out([habitat_binary, "svc", "status"]).stdout
|
58
|
+
load_habitat_service_via_cli(services_shell_out) if services_shell_out
|
59
|
+
rescue Ohai::Exceptions::Exec
|
60
|
+
logger.trace("Plugin Habitat: Unable to determine the installed Habitat services, skipping collection.")
|
61
|
+
end
|
62
|
+
|
63
|
+
collect_data(:default) do
|
64
|
+
if habitat_binary
|
65
|
+
habitat Mash.new
|
66
|
+
habitat["version"] = fetch_habitat_version
|
67
|
+
habitat["packages"] = fetch_habitat_packages
|
68
|
+
habitat["services"] = fetch_habitat_services
|
69
|
+
else
|
70
|
+
logger.trace("Plugin Habitat: Could not find hab binary. Skipping plugin.")
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|