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.
Files changed (169) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +28 -28
  3. data/LICENSE +201 -201
  4. data/bin/ohai +25 -25
  5. data/lib/ohai/application.rb +189 -189
  6. data/lib/ohai/common/dmi.rb +167 -167
  7. data/lib/ohai/config.rb +51 -51
  8. data/lib/ohai/dsl/plugin/versionvii.rb +203 -203
  9. data/lib/ohai/dsl/plugin.rb +232 -232
  10. data/lib/ohai/dsl.rb +22 -22
  11. data/lib/ohai/exception.rb +36 -36
  12. data/lib/ohai/hints.rb +68 -68
  13. data/lib/ohai/loader.rb +178 -178
  14. data/lib/ohai/log.rb +34 -34
  15. data/lib/ohai/mash.rb +22 -22
  16. data/lib/ohai/mixin/alibaba_metadata.rb +83 -83
  17. data/lib/ohai/mixin/azure_metadata.rb +105 -105
  18. data/lib/ohai/mixin/chef_utils_wiring.rb +52 -52
  19. data/lib/ohai/mixin/command.rb +4 -4
  20. data/lib/ohai/mixin/constant_helper.rb +55 -55
  21. data/lib/ohai/mixin/dmi_decode.rb +54 -54
  22. data/lib/ohai/mixin/do_metadata.rb +48 -48
  23. data/lib/ohai/mixin/ec2_metadata.rb +264 -270
  24. data/lib/ohai/mixin/gce_metadata.rb +79 -79
  25. data/lib/ohai/mixin/http_helper.rb +64 -64
  26. data/lib/ohai/mixin/json_helper.rb +36 -36
  27. data/lib/ohai/mixin/network_helper.rb +92 -92
  28. data/lib/ohai/mixin/oci_metadata.rb +60 -60
  29. data/lib/ohai/mixin/os.rb +128 -128
  30. data/lib/ohai/mixin/scaleway_metadata.rb +51 -51
  31. data/lib/ohai/mixin/seconds_to_human.rb +52 -52
  32. data/lib/ohai/mixin/shell_out.rb +51 -51
  33. data/lib/ohai/mixin/softlayer_metadata.rb +74 -74
  34. data/lib/ohai/mixin/string.rb +31 -31
  35. data/lib/ohai/mixin/train_helpers.rb +36 -36
  36. data/lib/ohai/mixin/which.rb +39 -39
  37. data/lib/ohai/plugin_config.rb +47 -47
  38. data/lib/ohai/plugins/aix/kernel.rb +50 -50
  39. data/lib/ohai/plugins/aix/memory.rb +37 -37
  40. data/lib/ohai/plugins/aix/network.rb +142 -142
  41. data/lib/ohai/plugins/aix/platform.rb +30 -30
  42. data/lib/ohai/plugins/aix/uptime.rb +54 -54
  43. data/lib/ohai/plugins/aix/virtualization.rb +154 -154
  44. data/lib/ohai/plugins/alibaba.rb +72 -72
  45. data/lib/ohai/plugins/azure.rb +154 -154
  46. data/lib/ohai/plugins/bsd/virtualization.rb +121 -121
  47. data/lib/ohai/plugins/c.rb +178 -178
  48. data/lib/ohai/plugins/chef.rb +50 -50
  49. data/lib/ohai/plugins/cloud.rb +379 -379
  50. data/lib/ohai/plugins/command.rb +26 -26
  51. data/lib/ohai/plugins/cpu.rb +642 -642
  52. data/lib/ohai/plugins/darwin/hardware.rb +99 -99
  53. data/lib/ohai/plugins/darwin/memory.rb +62 -62
  54. data/lib/ohai/plugins/darwin/network.rb +207 -207
  55. data/lib/ohai/plugins/darwin/platform.rb +40 -40
  56. data/lib/ohai/plugins/darwin/virtualization.rb +104 -104
  57. data/lib/ohai/plugins/digital_ocean.rb +67 -67
  58. data/lib/ohai/plugins/dmi.rb +134 -134
  59. data/lib/ohai/plugins/docker.rb +58 -58
  60. data/lib/ohai/plugins/dragonflybsd/memory.rb +60 -60
  61. data/lib/ohai/plugins/dragonflybsd/network.rb +128 -128
  62. data/lib/ohai/plugins/dragonflybsd/platform.rb +28 -28
  63. data/lib/ohai/plugins/ec2.rb +148 -148
  64. data/lib/ohai/plugins/elixir.rb +36 -36
  65. data/lib/ohai/plugins/erlang.rb +60 -60
  66. data/lib/ohai/plugins/eucalyptus.rb +86 -86
  67. data/lib/ohai/plugins/filesystem.rb +753 -753
  68. data/lib/ohai/plugins/fips.rb +36 -36
  69. data/lib/ohai/plugins/freebsd/memory.rb +60 -60
  70. data/lib/ohai/plugins/freebsd/network.rb +128 -128
  71. data/lib/ohai/plugins/freebsd/platform.rb +28 -28
  72. data/lib/ohai/plugins/gce.rb +89 -89
  73. data/lib/ohai/plugins/go.rb +34 -34
  74. data/lib/ohai/plugins/groovy.rb +38 -38
  75. data/lib/ohai/plugins/grub2.rb +40 -40
  76. data/lib/ohai/plugins/habitat.rb +73 -73
  77. data/lib/ohai/plugins/haskell.rb +96 -96
  78. data/lib/ohai/plugins/hostname.rb +133 -133
  79. data/lib/ohai/plugins/init_package.rb +26 -26
  80. data/lib/ohai/plugins/java.rb +78 -78
  81. data/lib/ohai/plugins/kernel.rb +292 -292
  82. data/lib/ohai/plugins/keys.rb +27 -27
  83. data/lib/ohai/plugins/languages.rb +26 -26
  84. data/lib/ohai/plugins/libvirt.rb +114 -114
  85. data/lib/ohai/plugins/linode.rb +73 -73
  86. data/lib/ohai/plugins/linux/block_device.rb +48 -48
  87. data/lib/ohai/plugins/linux/hostnamectl.rb +34 -34
  88. data/lib/ohai/plugins/linux/interrupts.rb +84 -83
  89. data/lib/ohai/plugins/linux/ipc.rb +52 -52
  90. data/lib/ohai/plugins/linux/livepatch.rb +38 -38
  91. data/lib/ohai/plugins/linux/lsb.rb +46 -46
  92. data/lib/ohai/plugins/linux/lspci.rb +80 -80
  93. data/lib/ohai/plugins/linux/machineid.rb +36 -36
  94. data/lib/ohai/plugins/linux/mdadm.rb +120 -120
  95. data/lib/ohai/plugins/linux/memory.rb +106 -106
  96. data/lib/ohai/plugins/linux/network.rb +879 -879
  97. data/lib/ohai/plugins/linux/os_release.rb +38 -38
  98. data/lib/ohai/plugins/linux/platform.rb +314 -314
  99. data/lib/ohai/plugins/linux/selinux.rb +69 -69
  100. data/lib/ohai/plugins/linux/sessions.rb +54 -54
  101. data/lib/ohai/plugins/linux/sysctl.rb +39 -39
  102. data/lib/ohai/plugins/linux/systemd_paths.rb +36 -36
  103. data/lib/ohai/plugins/linux/tc.rb +61 -61
  104. data/lib/ohai/plugins/linux/virtualization.rb +300 -300
  105. data/lib/ohai/plugins/lua.rb +39 -39
  106. data/lib/ohai/plugins/mono.rb +50 -50
  107. data/lib/ohai/plugins/netbsd/memory.rb +99 -99
  108. data/lib/ohai/plugins/netbsd/network.rb +122 -122
  109. data/lib/ohai/plugins/netbsd/platform.rb +28 -28
  110. data/lib/ohai/plugins/network.rb +186 -186
  111. data/lib/ohai/plugins/nodejs.rb +40 -40
  112. data/lib/ohai/plugins/oci.rb +94 -94
  113. data/lib/ohai/plugins/ohai.rb +29 -29
  114. data/lib/ohai/plugins/ohai_time.rb +26 -26
  115. data/lib/ohai/plugins/openbsd/memory.rb +99 -99
  116. data/lib/ohai/plugins/openbsd/network.rb +122 -122
  117. data/lib/ohai/plugins/openbsd/platform.rb +28 -28
  118. data/lib/ohai/plugins/openstack.rb +84 -84
  119. data/lib/ohai/plugins/os.rb +55 -55
  120. data/lib/ohai/plugins/packages.rb +234 -234
  121. data/lib/ohai/plugins/passwd.rb +104 -104
  122. data/lib/ohai/plugins/perl.rb +45 -45
  123. data/lib/ohai/plugins/php.rb +52 -52
  124. data/lib/ohai/plugins/platform.rb +41 -41
  125. data/lib/ohai/plugins/powershell.rb +82 -82
  126. data/lib/ohai/plugins/ps.rb +35 -35
  127. data/lib/ohai/plugins/python.rb +43 -43
  128. data/lib/ohai/plugins/rackspace.rb +177 -177
  129. data/lib/ohai/plugins/root_group.rb +41 -41
  130. data/lib/ohai/plugins/rpm.rb +121 -121
  131. data/lib/ohai/plugins/ruby.rb +66 -66
  132. data/lib/ohai/plugins/rust.rb +34 -34
  133. data/lib/ohai/plugins/scala.rb +38 -38
  134. data/lib/ohai/plugins/scaleway.rb +58 -58
  135. data/lib/ohai/plugins/scsi.rb +52 -52
  136. data/lib/ohai/plugins/shard.rb +142 -142
  137. data/lib/ohai/plugins/shells.rb +32 -32
  138. data/lib/ohai/plugins/softlayer.rb +48 -48
  139. data/lib/ohai/plugins/solaris2/dmi.rb +191 -191
  140. data/lib/ohai/plugins/solaris2/memory.rb +32 -32
  141. data/lib/ohai/plugins/solaris2/network.rb +192 -192
  142. data/lib/ohai/plugins/solaris2/platform.rb +58 -58
  143. data/lib/ohai/plugins/solaris2/virtualization.rb +90 -90
  144. data/lib/ohai/plugins/ssh_host_key.rb +84 -84
  145. data/lib/ohai/plugins/sysconf.rb +46 -46
  146. data/lib/ohai/plugins/timezone.rb +45 -45
  147. data/lib/ohai/plugins/train.rb +35 -35
  148. data/lib/ohai/plugins/uptime.rb +95 -95
  149. data/lib/ohai/plugins/virtualbox.rb +197 -197
  150. data/lib/ohai/plugins/vmware.rb +109 -109
  151. data/lib/ohai/plugins/windows/dmi.rb +95 -95
  152. data/lib/ohai/plugins/windows/drivers.rb +52 -52
  153. data/lib/ohai/plugins/windows/memory.rb +39 -39
  154. data/lib/ohai/plugins/windows/network.rb +222 -222
  155. data/lib/ohai/plugins/windows/platform.rb +34 -34
  156. data/lib/ohai/plugins/windows/system_enclosure.rb +29 -29
  157. data/lib/ohai/plugins/windows/virtualization.rb +45 -45
  158. data/lib/ohai/plugins/zpools.rb +94 -94
  159. data/lib/ohai/provides_map.rb +208 -208
  160. data/lib/ohai/runner.rb +128 -126
  161. data/lib/ohai/system.rb +258 -258
  162. data/lib/ohai/train_transport.rb +29 -29
  163. data/lib/ohai/util/file_helper.rb +6 -6
  164. data/lib/ohai/util/ip_helper.rb +56 -56
  165. data/lib/ohai/util/win32.rb +47 -47
  166. data/lib/ohai/version.rb +23 -23
  167. data/lib/ohai.rb +23 -23
  168. data/ohai.gemspec +35 -35
  169. 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
@@ -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
@@ -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