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/haskell.rb
CHANGED
@@ -1,96 +1,96 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
# Author:: Chris Dituri (<csdituri@gmail.com>)
|
3
|
-
# Copyright:: Copyright (c) 2016 Chris Dituri
|
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(:Haskell) do
|
19
|
-
|
20
|
-
provides "languages/haskell",
|
21
|
-
"languages/haskell/ghc",
|
22
|
-
"languages/haskell/ghci",
|
23
|
-
"languages/haskell/cabal",
|
24
|
-
"languages/haskell/stack"
|
25
|
-
|
26
|
-
depends "languages"
|
27
|
-
|
28
|
-
collect_data(:default) do
|
29
|
-
haskell = Mash.new
|
30
|
-
|
31
|
-
# Check for ghc
|
32
|
-
begin
|
33
|
-
so = shell_out("ghc --version")
|
34
|
-
|
35
|
-
# Sample output:
|
36
|
-
# The Glorious Glasgow Haskell Compilation System, version 7.6.3
|
37
|
-
if so.exitstatus == 0
|
38
|
-
haskell[:ghc] = Mash.new
|
39
|
-
haskell[:ghc][:version] = so.stdout.split[-1]
|
40
|
-
haskell[:ghc][:description] = so.stdout.chomp
|
41
|
-
end
|
42
|
-
rescue Ohai::Exceptions::Exec
|
43
|
-
logger.trace('Plugin Haskell: Could not shell_out "ghc --version". Skipping data')
|
44
|
-
end
|
45
|
-
|
46
|
-
# Check for ghci
|
47
|
-
begin
|
48
|
-
so = shell_out("ghci --version")
|
49
|
-
|
50
|
-
# Sample output:
|
51
|
-
# The Glorious Glasgow Haskell Compilation System, version 7.6.3
|
52
|
-
if so.exitstatus == 0
|
53
|
-
haskell[:ghci] = Mash.new
|
54
|
-
haskell[:ghci][:version] = so.stdout.split[-1]
|
55
|
-
haskell[:ghci][:description] = so.stdout.chomp
|
56
|
-
end
|
57
|
-
rescue Ohai::Exceptions::Exec
|
58
|
-
logger.trace('Plugin Haskell: Could not shell_out "ghci --version". Skipping data')
|
59
|
-
end
|
60
|
-
|
61
|
-
# Check for cabal
|
62
|
-
begin
|
63
|
-
so = shell_out("cabal --version")
|
64
|
-
|
65
|
-
# Sample output:
|
66
|
-
# cabal-install version 1.16.0.2
|
67
|
-
# using version 1.16.0 of the Cabal library
|
68
|
-
if so.exitstatus == 0
|
69
|
-
haskell[:cabal] = Mash.new
|
70
|
-
haskell[:cabal][:version] = so.stdout.split("\n")[0].split[-1]
|
71
|
-
haskell[:cabal][:description] = so.stdout.split("\n")[0].chomp
|
72
|
-
end
|
73
|
-
rescue Ohai::Exceptions::Exec
|
74
|
-
logger.trace('Plugin Haskell: Could not shell_out "cabal --version". Skipping data')
|
75
|
-
end
|
76
|
-
|
77
|
-
# Check for stack
|
78
|
-
begin
|
79
|
-
so = shell_out("stack --version")
|
80
|
-
|
81
|
-
# Sample output:
|
82
|
-
# Version 1.1.0, Git revision 0e9430aad55841b5ff2c6c2851f0548c16bce7cf (3540 commits) x86_64 hpack-0.13.0
|
83
|
-
# or
|
84
|
-
# Version 1.2.0 x86_64 hpack-0.14.0
|
85
|
-
if so.exitstatus == 0
|
86
|
-
haskell[:stack] = Mash.new
|
87
|
-
haskell[:stack][:version] = /Version ([^\s,]*)/.match(so.stdout)[1] rescue nil
|
88
|
-
haskell[:stack][:description] = so.stdout.chomp
|
89
|
-
end
|
90
|
-
rescue Ohai::Exceptions::Exec
|
91
|
-
logger.trace('Plugin Haskell: Could not shell_out "stack --version". Skipping data')
|
92
|
-
end
|
93
|
-
|
94
|
-
languages[:haskell] = haskell unless haskell.empty?
|
95
|
-
end
|
96
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# Author:: Chris Dituri (<csdituri@gmail.com>)
|
3
|
+
# Copyright:: Copyright (c) 2016 Chris Dituri
|
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(:Haskell) do
|
19
|
+
|
20
|
+
provides "languages/haskell",
|
21
|
+
"languages/haskell/ghc",
|
22
|
+
"languages/haskell/ghci",
|
23
|
+
"languages/haskell/cabal",
|
24
|
+
"languages/haskell/stack"
|
25
|
+
|
26
|
+
depends "languages"
|
27
|
+
|
28
|
+
collect_data(:default) do
|
29
|
+
haskell = Mash.new
|
30
|
+
|
31
|
+
# Check for ghc
|
32
|
+
begin
|
33
|
+
so = shell_out("ghc --version")
|
34
|
+
|
35
|
+
# Sample output:
|
36
|
+
# The Glorious Glasgow Haskell Compilation System, version 7.6.3
|
37
|
+
if so.exitstatus == 0
|
38
|
+
haskell[:ghc] = Mash.new
|
39
|
+
haskell[:ghc][:version] = so.stdout.split[-1]
|
40
|
+
haskell[:ghc][:description] = so.stdout.chomp
|
41
|
+
end
|
42
|
+
rescue Ohai::Exceptions::Exec
|
43
|
+
logger.trace('Plugin Haskell: Could not shell_out "ghc --version". Skipping data')
|
44
|
+
end
|
45
|
+
|
46
|
+
# Check for ghci
|
47
|
+
begin
|
48
|
+
so = shell_out("ghci --version")
|
49
|
+
|
50
|
+
# Sample output:
|
51
|
+
# The Glorious Glasgow Haskell Compilation System, version 7.6.3
|
52
|
+
if so.exitstatus == 0
|
53
|
+
haskell[:ghci] = Mash.new
|
54
|
+
haskell[:ghci][:version] = so.stdout.split[-1]
|
55
|
+
haskell[:ghci][:description] = so.stdout.chomp
|
56
|
+
end
|
57
|
+
rescue Ohai::Exceptions::Exec
|
58
|
+
logger.trace('Plugin Haskell: Could not shell_out "ghci --version". Skipping data')
|
59
|
+
end
|
60
|
+
|
61
|
+
# Check for cabal
|
62
|
+
begin
|
63
|
+
so = shell_out("cabal --version")
|
64
|
+
|
65
|
+
# Sample output:
|
66
|
+
# cabal-install version 1.16.0.2
|
67
|
+
# using version 1.16.0 of the Cabal library
|
68
|
+
if so.exitstatus == 0
|
69
|
+
haskell[:cabal] = Mash.new
|
70
|
+
haskell[:cabal][:version] = so.stdout.split("\n")[0].split[-1]
|
71
|
+
haskell[:cabal][:description] = so.stdout.split("\n")[0].chomp
|
72
|
+
end
|
73
|
+
rescue Ohai::Exceptions::Exec
|
74
|
+
logger.trace('Plugin Haskell: Could not shell_out "cabal --version". Skipping data')
|
75
|
+
end
|
76
|
+
|
77
|
+
# Check for stack
|
78
|
+
begin
|
79
|
+
so = shell_out("stack --version")
|
80
|
+
|
81
|
+
# Sample output:
|
82
|
+
# Version 1.1.0, Git revision 0e9430aad55841b5ff2c6c2851f0548c16bce7cf (3540 commits) x86_64 hpack-0.13.0
|
83
|
+
# or
|
84
|
+
# Version 1.2.0 x86_64 hpack-0.14.0
|
85
|
+
if so.exitstatus == 0
|
86
|
+
haskell[:stack] = Mash.new
|
87
|
+
haskell[:stack][:version] = /Version ([^\s,]*)/.match(so.stdout)[1] rescue nil
|
88
|
+
haskell[:stack][:description] = so.stdout.chomp
|
89
|
+
end
|
90
|
+
rescue Ohai::Exceptions::Exec
|
91
|
+
logger.trace('Plugin Haskell: Could not shell_out "stack --version". Skipping data')
|
92
|
+
end
|
93
|
+
|
94
|
+
languages[:haskell] = haskell unless haskell.empty?
|
95
|
+
end
|
96
|
+
end
|
@@ -1,133 +1,133 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
#
|
3
|
-
# Author:: Adam Jacob (<adam@chef.io>)
|
4
|
-
# Author:: Benjamin Black (<nostromo@gmail.com>)
|
5
|
-
# Author:: Bryan McLellan (<btm@loftninjas.org>)
|
6
|
-
# Author:: Daniel DeLeo (<dan@kallistec.com>)
|
7
|
-
# Author:: Doug MacEachern (<dougm@vmware.com>)
|
8
|
-
# Author:: James Gartrell (<jgartrel@gmail.com>)
|
9
|
-
# Author:: Isa Farnik (<isa@chef.io>)
|
10
|
-
# Copyright:: Copyright (c) Chef Software Inc.
|
11
|
-
# Copyright:: Copyright (c) 2009 Bryan McLellan
|
12
|
-
# Copyright:: Copyright (c) 2009 Daniel DeLeo
|
13
|
-
# Copyright:: Copyright (c) 2010 VMware, Inc.
|
14
|
-
# License:: Apache License, Version 2.0
|
15
|
-
#
|
16
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
17
|
-
# you may not use this file except in compliance with the License.
|
18
|
-
# You may obtain a copy of the License at
|
19
|
-
#
|
20
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
21
|
-
#
|
22
|
-
# Unless required by applicable law or agreed to in writing, software
|
23
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
24
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
25
|
-
# See the License for the specific language governing permissions and
|
26
|
-
# limitations under the License.
|
27
|
-
#
|
28
|
-
|
29
|
-
require_relative "../mixin/network_helper"
|
30
|
-
|
31
|
-
Ohai.plugin(:Hostname) do
|
32
|
-
include Ohai::Mixin::NetworkHelper
|
33
|
-
|
34
|
-
provides "domain", "hostname", "fqdn", "machinename"
|
35
|
-
|
36
|
-
# hostname : short hostname
|
37
|
-
# machinename : output of hostname command (might be short on solaris)
|
38
|
-
# fqdn : result of canonicalizing hostname using DNS or /etc/hosts
|
39
|
-
# domain : domain part of FQDN
|
40
|
-
#
|
41
|
-
# hostname and machinename should always exist
|
42
|
-
# fqdn and domain may be broken if DNS is broken on the host
|
43
|
-
|
44
|
-
def from_cmd(cmd)
|
45
|
-
shell_out(cmd).stdout.strip
|
46
|
-
end
|
47
|
-
|
48
|
-
# forward and reverse lookup to canonicalize FQDN (hostname -f equivalent)
|
49
|
-
def resolve_fqdn
|
50
|
-
canonicalize_hostname_with_retries(from_cmd("hostname"))
|
51
|
-
end
|
52
|
-
|
53
|
-
def collect_domain
|
54
|
-
# Domain is everything after the first dot
|
55
|
-
if fqdn
|
56
|
-
fqdn =~ /.+?\.(.*)/
|
57
|
-
domain $1
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
def collect_hostname
|
62
|
-
# Hostname is everything before the first dot
|
63
|
-
if machinename
|
64
|
-
machinename =~ /([^.]+)\.?/
|
65
|
-
hostname $1
|
66
|
-
elsif fqdn
|
67
|
-
fqdn =~ /(.+?)\./
|
68
|
-
hostname $1
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
collect_data(:default) do
|
73
|
-
machinename from_cmd("hostname")
|
74
|
-
fqdn resolve_fqdn
|
75
|
-
collect_hostname
|
76
|
-
collect_domain
|
77
|
-
end
|
78
|
-
|
79
|
-
collect_data(:aix) do
|
80
|
-
machinename from_cmd("hostname -s")
|
81
|
-
fqdn resolve_fqdn || from_cmd("hostname")
|
82
|
-
collect_hostname
|
83
|
-
collect_domain
|
84
|
-
end
|
85
|
-
|
86
|
-
collect_data(:netbsd, :openbsd, :dragonflybsd) do
|
87
|
-
hostname from_cmd("hostname -s")
|
88
|
-
fqdn resolve_fqdn
|
89
|
-
machinename from_cmd("hostname")
|
90
|
-
collect_domain
|
91
|
-
end
|
92
|
-
|
93
|
-
collect_data(:darwin) do
|
94
|
-
hostname from_cmd("hostname -s")
|
95
|
-
machinename from_cmd("hostname")
|
96
|
-
fqdn resolve_fqdn
|
97
|
-
domain collect_domain
|
98
|
-
end
|
99
|
-
|
100
|
-
collect_data(:freebsd) do
|
101
|
-
hostname from_cmd("hostname -s")
|
102
|
-
machinename from_cmd("hostname")
|
103
|
-
fqdn resolve_fqdn
|
104
|
-
collect_domain
|
105
|
-
end
|
106
|
-
|
107
|
-
collect_data(:linux) do
|
108
|
-
hostname from_cmd("hostname -s")
|
109
|
-
machinename from_cmd("hostname")
|
110
|
-
fqdn resolve_fqdn
|
111
|
-
domain collect_domain
|
112
|
-
end
|
113
|
-
|
114
|
-
collect_data(:solaris2) do
|
115
|
-
machinename from_cmd("hostname")
|
116
|
-
hostname from_cmd("hostname")
|
117
|
-
fqdn resolve_fqdn
|
118
|
-
domain collect_domain
|
119
|
-
end
|
120
|
-
|
121
|
-
collect_data(:windows) do
|
122
|
-
require "wmi-lite/wmi" unless defined?(WmiLite::Wmi)
|
123
|
-
require "socket" unless defined?(Socket)
|
124
|
-
|
125
|
-
wmi = WmiLite::Wmi.new
|
126
|
-
host = wmi.first_of("Win32_ComputerSystem")
|
127
|
-
|
128
|
-
hostname host["dnshostname"].to_s
|
129
|
-
machinename host["name"].to_s
|
130
|
-
fqdn canonicalize_hostname_with_retries(Socket.gethostname)
|
131
|
-
domain collect_domain
|
132
|
-
end
|
133
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
#
|
3
|
+
# Author:: Adam Jacob (<adam@chef.io>)
|
4
|
+
# Author:: Benjamin Black (<nostromo@gmail.com>)
|
5
|
+
# Author:: Bryan McLellan (<btm@loftninjas.org>)
|
6
|
+
# Author:: Daniel DeLeo (<dan@kallistec.com>)
|
7
|
+
# Author:: Doug MacEachern (<dougm@vmware.com>)
|
8
|
+
# Author:: James Gartrell (<jgartrel@gmail.com>)
|
9
|
+
# Author:: Isa Farnik (<isa@chef.io>)
|
10
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
11
|
+
# Copyright:: Copyright (c) 2009 Bryan McLellan
|
12
|
+
# Copyright:: Copyright (c) 2009 Daniel DeLeo
|
13
|
+
# Copyright:: Copyright (c) 2010 VMware, Inc.
|
14
|
+
# License:: Apache License, Version 2.0
|
15
|
+
#
|
16
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
17
|
+
# you may not use this file except in compliance with the License.
|
18
|
+
# You may obtain a copy of the License at
|
19
|
+
#
|
20
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
21
|
+
#
|
22
|
+
# Unless required by applicable law or agreed to in writing, software
|
23
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
24
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
25
|
+
# See the License for the specific language governing permissions and
|
26
|
+
# limitations under the License.
|
27
|
+
#
|
28
|
+
|
29
|
+
require_relative "../mixin/network_helper"
|
30
|
+
|
31
|
+
Ohai.plugin(:Hostname) do
|
32
|
+
include Ohai::Mixin::NetworkHelper
|
33
|
+
|
34
|
+
provides "domain", "hostname", "fqdn", "machinename"
|
35
|
+
|
36
|
+
# hostname : short hostname
|
37
|
+
# machinename : output of hostname command (might be short on solaris)
|
38
|
+
# fqdn : result of canonicalizing hostname using DNS or /etc/hosts
|
39
|
+
# domain : domain part of FQDN
|
40
|
+
#
|
41
|
+
# hostname and machinename should always exist
|
42
|
+
# fqdn and domain may be broken if DNS is broken on the host
|
43
|
+
|
44
|
+
def from_cmd(cmd)
|
45
|
+
shell_out(cmd).stdout.strip
|
46
|
+
end
|
47
|
+
|
48
|
+
# forward and reverse lookup to canonicalize FQDN (hostname -f equivalent)
|
49
|
+
def resolve_fqdn
|
50
|
+
canonicalize_hostname_with_retries(from_cmd("hostname"))
|
51
|
+
end
|
52
|
+
|
53
|
+
def collect_domain
|
54
|
+
# Domain is everything after the first dot
|
55
|
+
if fqdn
|
56
|
+
fqdn =~ /.+?\.(.*)/
|
57
|
+
domain $1
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def collect_hostname
|
62
|
+
# Hostname is everything before the first dot
|
63
|
+
if machinename
|
64
|
+
machinename =~ /([^.]+)\.?/
|
65
|
+
hostname $1
|
66
|
+
elsif fqdn
|
67
|
+
fqdn =~ /(.+?)\./
|
68
|
+
hostname $1
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
collect_data(:default) do
|
73
|
+
machinename from_cmd("hostname")
|
74
|
+
fqdn resolve_fqdn
|
75
|
+
collect_hostname
|
76
|
+
collect_domain
|
77
|
+
end
|
78
|
+
|
79
|
+
collect_data(:aix) do
|
80
|
+
machinename from_cmd("hostname -s")
|
81
|
+
fqdn resolve_fqdn || from_cmd("hostname")
|
82
|
+
collect_hostname
|
83
|
+
collect_domain
|
84
|
+
end
|
85
|
+
|
86
|
+
collect_data(:netbsd, :openbsd, :dragonflybsd) do
|
87
|
+
hostname from_cmd("hostname -s")
|
88
|
+
fqdn resolve_fqdn
|
89
|
+
machinename from_cmd("hostname")
|
90
|
+
collect_domain
|
91
|
+
end
|
92
|
+
|
93
|
+
collect_data(:darwin) do
|
94
|
+
hostname from_cmd("hostname -s")
|
95
|
+
machinename from_cmd("hostname")
|
96
|
+
fqdn resolve_fqdn
|
97
|
+
domain collect_domain
|
98
|
+
end
|
99
|
+
|
100
|
+
collect_data(:freebsd) do
|
101
|
+
hostname from_cmd("hostname -s")
|
102
|
+
machinename from_cmd("hostname")
|
103
|
+
fqdn resolve_fqdn
|
104
|
+
collect_domain
|
105
|
+
end
|
106
|
+
|
107
|
+
collect_data(:linux) do
|
108
|
+
hostname from_cmd("hostname -s")
|
109
|
+
machinename from_cmd("hostname")
|
110
|
+
fqdn resolve_fqdn
|
111
|
+
domain collect_domain
|
112
|
+
end
|
113
|
+
|
114
|
+
collect_data(:solaris2) do
|
115
|
+
machinename from_cmd("hostname")
|
116
|
+
hostname from_cmd("hostname")
|
117
|
+
fqdn resolve_fqdn
|
118
|
+
domain collect_domain
|
119
|
+
end
|
120
|
+
|
121
|
+
collect_data(:windows) do
|
122
|
+
require "wmi-lite/wmi" unless defined?(WmiLite::Wmi)
|
123
|
+
require "socket" unless defined?(Socket)
|
124
|
+
|
125
|
+
wmi = WmiLite::Wmi.new
|
126
|
+
host = wmi.first_of("Win32_ComputerSystem")
|
127
|
+
|
128
|
+
hostname host["dnshostname"].to_s
|
129
|
+
machinename host["name"].to_s
|
130
|
+
fqdn canonicalize_hostname_with_retries(Socket.gethostname)
|
131
|
+
domain collect_domain
|
132
|
+
end
|
133
|
+
end
|
@@ -1,26 +1,26 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
#
|
3
|
-
# Author:: Caleb Tennis (<caleb.tennis@gmail.com>)
|
4
|
-
# Copyright:: Copyright (c) Chef Software 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(:InitPackage) do
|
21
|
-
provides "init_package"
|
22
|
-
|
23
|
-
collect_data(:linux) do
|
24
|
-
init_package file_exist?("/proc/1/comm") ? file_open("/proc/1/comm").gets.chomp : "init"
|
25
|
-
end
|
26
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
#
|
3
|
+
# Author:: Caleb Tennis (<caleb.tennis@gmail.com>)
|
4
|
+
# Copyright:: Copyright (c) Chef Software 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(:InitPackage) do
|
21
|
+
provides "init_package"
|
22
|
+
|
23
|
+
collect_data(:linux) do
|
24
|
+
init_package file_exist?("/proc/1/comm") ? file_open("/proc/1/comm").gets.chomp : "init"
|
25
|
+
end
|
26
|
+
end
|
data/lib/ohai/plugins/java.rb
CHANGED
@@ -1,78 +1,78 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
#
|
3
|
-
# Author:: Benjamin Black (<bb@chef.io>)
|
4
|
-
# Copyright:: Copyright (c) Chef Software 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(:Java) do
|
21
|
-
provides "languages/java"
|
22
|
-
depends "languages"
|
23
|
-
|
24
|
-
def get_java_info
|
25
|
-
so = shell_out("java -mx64m -version")
|
26
|
-
# Sample output:
|
27
|
-
# java version "1.8.0_60"
|
28
|
-
# Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
|
29
|
-
# Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
|
30
|
-
if so.exitstatus == 0
|
31
|
-
java = Mash.new
|
32
|
-
so.stderr.split(/\r?\n/).each do |line|
|
33
|
-
case line
|
34
|
-
when /(?:java|openjdk) version \"([0-9\.\_]+)\"/
|
35
|
-
java[:version] = $1
|
36
|
-
when /^(.+Runtime Environment.*) \((build)\s*(.+)\)$/
|
37
|
-
java[:runtime] = { "name" => $1, "build" => $3 }
|
38
|
-
when /^(.+ (Client|Server) VM) \(build\s*(.+)\)$/
|
39
|
-
java[:hotspot] = { "name" => $1, "build" => $3 }
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
languages[:java] = java unless java.empty?
|
44
|
-
end
|
45
|
-
rescue Ohai::Exceptions::Exec
|
46
|
-
logger.trace('Plugin Java: Could not shell_out "java -mx64m -version". Skipping plugin')
|
47
|
-
end
|
48
|
-
|
49
|
-
# On Mac OS X, the development tools include "stubs" for JVM executables that
|
50
|
-
# prompt the user to install the JVM if they desire. In our case we simply
|
51
|
-
# wish to detect if the JVM is there and do not want to trigger a popup
|
52
|
-
# window. As a workaround, we can run the java_home executable and check its
|
53
|
-
# exit status to determine if the `java` executable is the real one or the OS
|
54
|
-
# X stub. In the terminal, it looks like this:
|
55
|
-
#
|
56
|
-
# $ /usr/libexec/java_home
|
57
|
-
# Unable to find any JVMs matching version "(null)".
|
58
|
-
# No Java runtime present, try --request to install.
|
59
|
-
#
|
60
|
-
# $ echo $?
|
61
|
-
# 1
|
62
|
-
#
|
63
|
-
# This check always returns true when not on darwin because it is just a
|
64
|
-
# workaround for this particular annoyance.
|
65
|
-
def has_real_java?
|
66
|
-
return true unless on_darwin?
|
67
|
-
|
68
|
-
shell_out("/usr/libexec/java_home").status.success?
|
69
|
-
end
|
70
|
-
|
71
|
-
def on_darwin?
|
72
|
-
RUBY_PLATFORM.downcase.include?("darwin")
|
73
|
-
end
|
74
|
-
|
75
|
-
collect_data do
|
76
|
-
get_java_info if has_real_java?
|
77
|
-
end
|
78
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
#
|
3
|
+
# Author:: Benjamin Black (<bb@chef.io>)
|
4
|
+
# Copyright:: Copyright (c) Chef Software 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(:Java) do
|
21
|
+
provides "languages/java"
|
22
|
+
depends "languages"
|
23
|
+
|
24
|
+
def get_java_info
|
25
|
+
so = shell_out("java -mx64m -version")
|
26
|
+
# Sample output:
|
27
|
+
# java version "1.8.0_60"
|
28
|
+
# Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
|
29
|
+
# Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
|
30
|
+
if so.exitstatus == 0
|
31
|
+
java = Mash.new
|
32
|
+
so.stderr.split(/\r?\n/).each do |line|
|
33
|
+
case line
|
34
|
+
when /(?:java|openjdk) version \"([0-9\.\_]+)\"/
|
35
|
+
java[:version] = $1
|
36
|
+
when /^(.+Runtime Environment.*) \((build)\s*(.+)\)$/
|
37
|
+
java[:runtime] = { "name" => $1, "build" => $3 }
|
38
|
+
when /^(.+ (Client|Server) VM) \(build\s*(.+)\)$/
|
39
|
+
java[:hotspot] = { "name" => $1, "build" => $3 }
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
languages[:java] = java unless java.empty?
|
44
|
+
end
|
45
|
+
rescue Ohai::Exceptions::Exec
|
46
|
+
logger.trace('Plugin Java: Could not shell_out "java -mx64m -version". Skipping plugin')
|
47
|
+
end
|
48
|
+
|
49
|
+
# On Mac OS X, the development tools include "stubs" for JVM executables that
|
50
|
+
# prompt the user to install the JVM if they desire. In our case we simply
|
51
|
+
# wish to detect if the JVM is there and do not want to trigger a popup
|
52
|
+
# window. As a workaround, we can run the java_home executable and check its
|
53
|
+
# exit status to determine if the `java` executable is the real one or the OS
|
54
|
+
# X stub. In the terminal, it looks like this:
|
55
|
+
#
|
56
|
+
# $ /usr/libexec/java_home
|
57
|
+
# Unable to find any JVMs matching version "(null)".
|
58
|
+
# No Java runtime present, try --request to install.
|
59
|
+
#
|
60
|
+
# $ echo $?
|
61
|
+
# 1
|
62
|
+
#
|
63
|
+
# This check always returns true when not on darwin because it is just a
|
64
|
+
# workaround for this particular annoyance.
|
65
|
+
def has_real_java?
|
66
|
+
return true unless on_darwin?
|
67
|
+
|
68
|
+
shell_out("/usr/libexec/java_home").status.success?
|
69
|
+
end
|
70
|
+
|
71
|
+
def on_darwin?
|
72
|
+
RUBY_PLATFORM.downcase.include?("darwin")
|
73
|
+
end
|
74
|
+
|
75
|
+
collect_data do
|
76
|
+
get_java_info if has_real_java?
|
77
|
+
end
|
78
|
+
end
|