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
@@ -1,26 +1,26 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
#
|
3
|
-
# Author:: Adam Jacob (<adam@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(:Languages) do
|
21
|
-
provides "languages"
|
22
|
-
|
23
|
-
collect_data do
|
24
|
-
languages Mash.new
|
25
|
-
end
|
26
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
#
|
3
|
+
# Author:: Adam Jacob (<adam@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(:Languages) do
|
21
|
+
provides "languages"
|
22
|
+
|
23
|
+
collect_data do
|
24
|
+
languages Mash.new
|
25
|
+
end
|
26
|
+
end
|
data/lib/ohai/plugins/libvirt.rb
CHANGED
@@ -1,114 +1,114 @@
|
|
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
|
-
# NOTE: This plugin requires libvirt-bin/libvirt-dev as well as the ruby-libvirt
|
21
|
-
# gem to be installed before it will properly parse data
|
22
|
-
|
23
|
-
Ohai.plugin(:Libvirt) do
|
24
|
-
%w{uri capabilities nodeinfo domains networks storage}.each do |info|
|
25
|
-
provides "libvirt/#{info}"
|
26
|
-
depends "virtualization"
|
27
|
-
end
|
28
|
-
|
29
|
-
def emu
|
30
|
-
@emu ||= (virtualization[:system].eql?("kvm") ? "qemu" : virtualization[:system])
|
31
|
-
end
|
32
|
-
|
33
|
-
def load_libvirt
|
34
|
-
require "libvirt" # this is the ruby-libvirt gem not the libvirt gem
|
35
|
-
logger.trace("Plugin Libvirt: Successfully loaded ruby-libvirt gem")
|
36
|
-
rescue LoadError
|
37
|
-
logger.trace("Plugin Libvirt: Can't load gem ruby-libvirt.")
|
38
|
-
end
|
39
|
-
|
40
|
-
def virtconn
|
41
|
-
@virt_connect ||= Libvirt.open_read_only("#{emu}:///system")
|
42
|
-
end
|
43
|
-
|
44
|
-
def get_node_data
|
45
|
-
node_data = Mash.new
|
46
|
-
ni = virtconn.node_get_info
|
47
|
-
%w{cores cpus memory mhz model nodes sockets threads}.each { |a| node_data[a] = ni.send(a) }
|
48
|
-
node_data
|
49
|
-
end
|
50
|
-
|
51
|
-
def get_domain_data
|
52
|
-
domain_data = Mash.new
|
53
|
-
virtconn.list_domains.each do |d|
|
54
|
-
dv = virtconn.lookup_domain_by_id d
|
55
|
-
domain_data[dv.name] = Mash.new
|
56
|
-
domain_data[dv.name][:id] = d
|
57
|
-
%w{os_type uuid}.each { |a| domain_data[dv.name][a] = dv.send(a) }
|
58
|
-
%w{cpu_time max_mem memory nr_virt_cpu state}.each { |a| domain_data[dv.name][a] = dv.info.send(a) }
|
59
|
-
end
|
60
|
-
domain_data
|
61
|
-
end
|
62
|
-
|
63
|
-
def get_network_data
|
64
|
-
network_data = Mash.new
|
65
|
-
virtconn.list_networks.each do |n|
|
66
|
-
nv = virtconn.lookup_network_by_name n
|
67
|
-
network_data[n] = Mash.new
|
68
|
-
%w{bridge_name uuid}.each { |a| network_data[n][a] = nv.send(a) }
|
69
|
-
end
|
70
|
-
network_data
|
71
|
-
end
|
72
|
-
|
73
|
-
def get_storage_data
|
74
|
-
storage_data = Mash.new
|
75
|
-
virtconn.list_storage_pools.each do |pool|
|
76
|
-
sp = virtconn.lookup_storage_pool_by_name pool
|
77
|
-
storage_data[pool] = Mash.new
|
78
|
-
%w{autostart uuid}.each { |a| storage_data[pool][a] = sp.send(a) }
|
79
|
-
%w{allocation available capacity state}.each { |a| storage_data[pool][a] = sp.info.send(a) }
|
80
|
-
|
81
|
-
storage_data[pool][:volumes] = Mash.new
|
82
|
-
sp.list_volumes.each do |v|
|
83
|
-
storage_data[pool][:volumes][v] = Mash.new
|
84
|
-
sv = sp.lookup_volume_by_name v
|
85
|
-
%w{key name path}.each { |a| storage_data[pool][:volumes][v][a] = sv.send(a) }
|
86
|
-
%w{allocation capacity type}.each { |a| storage_data[pool][:volumes][v][a] = sv.info.send(a) }
|
87
|
-
end
|
88
|
-
end
|
89
|
-
storage_data
|
90
|
-
end
|
91
|
-
|
92
|
-
collect_data(:linux) do
|
93
|
-
if virtualization[:role].eql?("host")
|
94
|
-
load_libvirt
|
95
|
-
begin
|
96
|
-
libvirt_data = Mash.new
|
97
|
-
libvirt_data[:uri] = virtconn.uri
|
98
|
-
libvirt_data[:libvirt_version] = Libvirt.version(emu)[0].to_s
|
99
|
-
libvirt_data[:nodeinfo] = get_node_data
|
100
|
-
libvirt_data[:domains] = get_domain_data
|
101
|
-
libvirt_data[:networks] = get_network_data
|
102
|
-
libvirt_data[:storage] = get_storage_data
|
103
|
-
virtconn.close
|
104
|
-
libvirt libvirt_data
|
105
|
-
rescue NameError
|
106
|
-
logger.trace("Plugin Libvirt: Cannot load ruby-libvirt gem. Skipping...")
|
107
|
-
rescue Libvirt::ConnectionError
|
108
|
-
logger.trace("Plugin Libvirt: Failed to connect to #{emu}:///system. Skipping...")
|
109
|
-
end
|
110
|
-
else
|
111
|
-
logger.trace("Plugin Libvirt: Node is not a virtualization host. Skipping...")
|
112
|
-
end
|
113
|
-
end
|
114
|
-
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
|
+
# NOTE: This plugin requires libvirt-bin/libvirt-dev as well as the ruby-libvirt
|
21
|
+
# gem to be installed before it will properly parse data
|
22
|
+
|
23
|
+
Ohai.plugin(:Libvirt) do
|
24
|
+
%w{uri capabilities nodeinfo domains networks storage}.each do |info|
|
25
|
+
provides "libvirt/#{info}"
|
26
|
+
depends "virtualization"
|
27
|
+
end
|
28
|
+
|
29
|
+
def emu
|
30
|
+
@emu ||= (virtualization[:system].eql?("kvm") ? "qemu" : virtualization[:system])
|
31
|
+
end
|
32
|
+
|
33
|
+
def load_libvirt
|
34
|
+
require "libvirt" # this is the ruby-libvirt gem not the libvirt gem
|
35
|
+
logger.trace("Plugin Libvirt: Successfully loaded ruby-libvirt gem")
|
36
|
+
rescue LoadError
|
37
|
+
logger.trace("Plugin Libvirt: Can't load gem ruby-libvirt.")
|
38
|
+
end
|
39
|
+
|
40
|
+
def virtconn
|
41
|
+
@virt_connect ||= Libvirt.open_read_only("#{emu}:///system")
|
42
|
+
end
|
43
|
+
|
44
|
+
def get_node_data
|
45
|
+
node_data = Mash.new
|
46
|
+
ni = virtconn.node_get_info
|
47
|
+
%w{cores cpus memory mhz model nodes sockets threads}.each { |a| node_data[a] = ni.send(a) }
|
48
|
+
node_data
|
49
|
+
end
|
50
|
+
|
51
|
+
def get_domain_data
|
52
|
+
domain_data = Mash.new
|
53
|
+
virtconn.list_domains.each do |d|
|
54
|
+
dv = virtconn.lookup_domain_by_id d
|
55
|
+
domain_data[dv.name] = Mash.new
|
56
|
+
domain_data[dv.name][:id] = d
|
57
|
+
%w{os_type uuid}.each { |a| domain_data[dv.name][a] = dv.send(a) }
|
58
|
+
%w{cpu_time max_mem memory nr_virt_cpu state}.each { |a| domain_data[dv.name][a] = dv.info.send(a) }
|
59
|
+
end
|
60
|
+
domain_data
|
61
|
+
end
|
62
|
+
|
63
|
+
def get_network_data
|
64
|
+
network_data = Mash.new
|
65
|
+
virtconn.list_networks.each do |n|
|
66
|
+
nv = virtconn.lookup_network_by_name n
|
67
|
+
network_data[n] = Mash.new
|
68
|
+
%w{bridge_name uuid}.each { |a| network_data[n][a] = nv.send(a) }
|
69
|
+
end
|
70
|
+
network_data
|
71
|
+
end
|
72
|
+
|
73
|
+
def get_storage_data
|
74
|
+
storage_data = Mash.new
|
75
|
+
virtconn.list_storage_pools.each do |pool|
|
76
|
+
sp = virtconn.lookup_storage_pool_by_name pool
|
77
|
+
storage_data[pool] = Mash.new
|
78
|
+
%w{autostart uuid}.each { |a| storage_data[pool][a] = sp.send(a) }
|
79
|
+
%w{allocation available capacity state}.each { |a| storage_data[pool][a] = sp.info.send(a) }
|
80
|
+
|
81
|
+
storage_data[pool][:volumes] = Mash.new
|
82
|
+
sp.list_volumes.each do |v|
|
83
|
+
storage_data[pool][:volumes][v] = Mash.new
|
84
|
+
sv = sp.lookup_volume_by_name v
|
85
|
+
%w{key name path}.each { |a| storage_data[pool][:volumes][v][a] = sv.send(a) }
|
86
|
+
%w{allocation capacity type}.each { |a| storage_data[pool][:volumes][v][a] = sv.info.send(a) }
|
87
|
+
end
|
88
|
+
end
|
89
|
+
storage_data
|
90
|
+
end
|
91
|
+
|
92
|
+
collect_data(:linux) do
|
93
|
+
if virtualization[:role].eql?("host")
|
94
|
+
load_libvirt
|
95
|
+
begin
|
96
|
+
libvirt_data = Mash.new
|
97
|
+
libvirt_data[:uri] = virtconn.uri
|
98
|
+
libvirt_data[:libvirt_version] = Libvirt.version(emu)[0].to_s
|
99
|
+
libvirt_data[:nodeinfo] = get_node_data
|
100
|
+
libvirt_data[:domains] = get_domain_data
|
101
|
+
libvirt_data[:networks] = get_network_data
|
102
|
+
libvirt_data[:storage] = get_storage_data
|
103
|
+
virtconn.close
|
104
|
+
libvirt libvirt_data
|
105
|
+
rescue NameError
|
106
|
+
logger.trace("Plugin Libvirt: Cannot load ruby-libvirt gem. Skipping...")
|
107
|
+
rescue Libvirt::ConnectionError
|
108
|
+
logger.trace("Plugin Libvirt: Failed to connect to #{emu}:///system. Skipping...")
|
109
|
+
end
|
110
|
+
else
|
111
|
+
logger.trace("Plugin Libvirt: Node is not a virtualization host. Skipping...")
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
data/lib/ohai/plugins/linode.rb
CHANGED
@@ -1,73 +1,73 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
#
|
3
|
-
# Author:: Aaron Kalin (<akalin@martinisoftware.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(:Linode) do
|
19
|
-
provides "linode"
|
20
|
-
|
21
|
-
depends "domain"
|
22
|
-
depends "network/interfaces"
|
23
|
-
|
24
|
-
# Checks to see if the node is in the members.linode.com domain
|
25
|
-
#
|
26
|
-
# @return [Boolean]
|
27
|
-
#
|
28
|
-
def has_linode_domain?
|
29
|
-
domain&.include?("linode")
|
30
|
-
end
|
31
|
-
|
32
|
-
# Checks for linode mirrors in the apt sources.list file
|
33
|
-
#
|
34
|
-
# @return [Boolean]
|
35
|
-
#
|
36
|
-
def has_linode_apt_repos?
|
37
|
-
file_exist?("/etc/apt/sources.list") && file_read("/etc/apt/sources.list").include?("linode")
|
38
|
-
end
|
39
|
-
|
40
|
-
# Identifies the linode cloud by preferring the hint, then
|
41
|
-
#
|
42
|
-
# @return [Boolean]
|
43
|
-
#
|
44
|
-
def looks_like_linode?
|
45
|
-
hint?("linode") || has_linode_domain? || has_linode_apt_repos?
|
46
|
-
end
|
47
|
-
|
48
|
-
# Alters linode mash with new interface based on name parameter
|
49
|
-
#
|
50
|
-
# @param [Symbol] name Ohai name (e.g. :public_ip)
|
51
|
-
# @param [Symbol] eth Interface name (e.g. :eth0)
|
52
|
-
#
|
53
|
-
def get_ip_address(name, eth)
|
54
|
-
if ( eth_iface = network[:interfaces][eth] )
|
55
|
-
eth_iface[:addresses].each do |key, info|
|
56
|
-
linode[name] = key if info["family"] == "inet"
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
collect_data(:linux) do
|
62
|
-
# Setup linode mash if it is a linode system
|
63
|
-
if looks_like_linode?
|
64
|
-
logger.trace("Plugin Linode: looks_like_linode? == true")
|
65
|
-
linode Mash.new
|
66
|
-
get_ip_address(:public_ip, :eth0)
|
67
|
-
get_ip_address(:private_ip, "eth0:1")
|
68
|
-
hint?("linode").each { |k, v| linode[k] = v } if hint?("linode").is_a?(Hash)
|
69
|
-
else
|
70
|
-
logger.trace("Plugin Linode: looks_like_linode? == false")
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
#
|
3
|
+
# Author:: Aaron Kalin (<akalin@martinisoftware.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(:Linode) do
|
19
|
+
provides "linode"
|
20
|
+
|
21
|
+
depends "domain"
|
22
|
+
depends "network/interfaces"
|
23
|
+
|
24
|
+
# Checks to see if the node is in the members.linode.com domain
|
25
|
+
#
|
26
|
+
# @return [Boolean]
|
27
|
+
#
|
28
|
+
def has_linode_domain?
|
29
|
+
domain&.include?("linode")
|
30
|
+
end
|
31
|
+
|
32
|
+
# Checks for linode mirrors in the apt sources.list file
|
33
|
+
#
|
34
|
+
# @return [Boolean]
|
35
|
+
#
|
36
|
+
def has_linode_apt_repos?
|
37
|
+
file_exist?("/etc/apt/sources.list") && file_read("/etc/apt/sources.list").include?("linode")
|
38
|
+
end
|
39
|
+
|
40
|
+
# Identifies the linode cloud by preferring the hint, then
|
41
|
+
#
|
42
|
+
# @return [Boolean]
|
43
|
+
#
|
44
|
+
def looks_like_linode?
|
45
|
+
hint?("linode") || has_linode_domain? || has_linode_apt_repos?
|
46
|
+
end
|
47
|
+
|
48
|
+
# Alters linode mash with new interface based on name parameter
|
49
|
+
#
|
50
|
+
# @param [Symbol] name Ohai name (e.g. :public_ip)
|
51
|
+
# @param [Symbol] eth Interface name (e.g. :eth0)
|
52
|
+
#
|
53
|
+
def get_ip_address(name, eth)
|
54
|
+
if ( eth_iface = network[:interfaces][eth] )
|
55
|
+
eth_iface[:addresses].each do |key, info|
|
56
|
+
linode[name] = key if info["family"] == "inet"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
collect_data(:linux) do
|
62
|
+
# Setup linode mash if it is a linode system
|
63
|
+
if looks_like_linode?
|
64
|
+
logger.trace("Plugin Linode: looks_like_linode? == true")
|
65
|
+
linode Mash.new
|
66
|
+
get_ip_address(:public_ip, :eth0)
|
67
|
+
get_ip_address(:private_ip, "eth0:1")
|
68
|
+
hint?("linode").each { |k, v| linode[k] = v } if hint?("linode").is_a?(Hash)
|
69
|
+
else
|
70
|
+
logger.trace("Plugin Linode: looks_like_linode? == false")
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -1,48 +1,48 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
#
|
3
|
-
# Author:: Adam Jacob (<adam@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(:BlockDevice) do
|
21
|
-
provides "block_device"
|
22
|
-
|
23
|
-
collect_data(:linux) do
|
24
|
-
if file_exist?("/sys/block")
|
25
|
-
block = Mash.new
|
26
|
-
dir_glob("/sys/block/*").each do |block_device_dir|
|
27
|
-
dir = File.basename(block_device_dir)
|
28
|
-
block[dir] = Mash.new
|
29
|
-
%w{size removable}.each do |check|
|
30
|
-
if file_exist?("/sys/block/#{dir}/#{check}")
|
31
|
-
file_open("/sys/block/#{dir}/#{check}") { |f| block[dir][check] = f.read_nonblock(1024).strip }
|
32
|
-
end
|
33
|
-
end
|
34
|
-
%w{model rev state timeout vendor queue_depth firmware_rev}.each do |check|
|
35
|
-
if file_exist?("/sys/block/#{dir}/device/#{check}")
|
36
|
-
file_open("/sys/block/#{dir}/device/#{check}") { |f| block[dir][check] = f.read_nonblock(1024).strip }
|
37
|
-
end
|
38
|
-
end
|
39
|
-
%w{rotational physical_block_size logical_block_size}.each do |check|
|
40
|
-
if file_exist?("/sys/block/#{dir}/queue/#{check}")
|
41
|
-
file_open("/sys/block/#{dir}/queue/#{check}") { |f| block[dir][check] = f.read_nonblock(1024).strip }
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
block_device block
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
#
|
3
|
+
# Author:: Adam Jacob (<adam@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(:BlockDevice) do
|
21
|
+
provides "block_device"
|
22
|
+
|
23
|
+
collect_data(:linux) do
|
24
|
+
if file_exist?("/sys/block")
|
25
|
+
block = Mash.new
|
26
|
+
dir_glob("/sys/block/*").each do |block_device_dir|
|
27
|
+
dir = File.basename(block_device_dir)
|
28
|
+
block[dir] = Mash.new
|
29
|
+
%w{size removable}.each do |check|
|
30
|
+
if file_exist?("/sys/block/#{dir}/#{check}")
|
31
|
+
file_open("/sys/block/#{dir}/#{check}") { |f| block[dir][check] = f.read_nonblock(1024).strip }
|
32
|
+
end
|
33
|
+
end
|
34
|
+
%w{model rev state timeout vendor queue_depth firmware_rev}.each do |check|
|
35
|
+
if file_exist?("/sys/block/#{dir}/device/#{check}")
|
36
|
+
file_open("/sys/block/#{dir}/device/#{check}") { |f| block[dir][check] = f.read_nonblock(1024).strip }
|
37
|
+
end
|
38
|
+
end
|
39
|
+
%w{rotational physical_block_size logical_block_size}.each do |check|
|
40
|
+
if file_exist?("/sys/block/#{dir}/queue/#{check}")
|
41
|
+
file_open("/sys/block/#{dir}/queue/#{check}") { |f| block[dir][check] = f.read_nonblock(1024).strip }
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
block_device block
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -1,34 +1,34 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
#
|
3
|
-
# Author:: Davide Cavalca (<dcavalca@fb.com>)
|
4
|
-
# Copyright:: Copyright (c) 2016 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(:Hostnamectl) do
|
21
|
-
provides "hostnamectl"
|
22
|
-
|
23
|
-
collect_data(:linux) do
|
24
|
-
hostnamectl Mash.new unless hostnamectl
|
25
|
-
|
26
|
-
hostnamectl_path = which("hostnamectl")
|
27
|
-
if hostnamectl_path
|
28
|
-
shell_out(hostnamectl_path).stdout.split("\n").each do |line|
|
29
|
-
key, val = line.split(": ", 2)
|
30
|
-
hostnamectl[key.chomp.lstrip.tr(" ", "_").downcase] = val
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
#
|
3
|
+
# Author:: Davide Cavalca (<dcavalca@fb.com>)
|
4
|
+
# Copyright:: Copyright (c) 2016 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(:Hostnamectl) do
|
21
|
+
provides "hostnamectl"
|
22
|
+
|
23
|
+
collect_data(:linux) do
|
24
|
+
hostnamectl Mash.new unless hostnamectl
|
25
|
+
|
26
|
+
hostnamectl_path = which("hostnamectl")
|
27
|
+
if hostnamectl_path
|
28
|
+
shell_out(hostnamectl_path).stdout.split("\n").each do |line|
|
29
|
+
key, val = line.split(": ", 2)
|
30
|
+
hostnamectl[key.chomp.lstrip.tr(" ", "_").downcase] = val
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|