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,121 +1,121 @@
1
- # frozen_string_literal: true
2
-
3
- #
4
- # Author:: Davide Cavalca <dcavalca@fb.com>
5
- # Copyright:: Copyright (c) 2021 Meta Platforms, Inc. and affiliates.
6
- # License:: Apache License, Version 2.0
7
- #
8
- # Licensed under the Apache License, Version 2.0 (the "License");
9
- # you may not use this file except in compliance with the License.
10
- # You may obtain a copy of the License at
11
- #
12
- # http://www.apache.org/licenses/LICENSE-2.0
13
- #
14
- # Unless required by applicable law or agreed to in writing, software
15
- # distributed under the License is distributed on an "AS IS" BASIS,
16
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
- # See the License for the specific language governing permissions and
18
- # limitations under the License.
19
- #
20
-
21
- Ohai.plugin(:Rpm) do
22
- provides "rpm"
23
- optional "true"
24
-
25
- MACROS_MARKER = /========================/.freeze unless defined?(MACROS_MARKER)
26
-
27
- unless defined?(DO_NOT_SPLIT)
28
- DO_NOT_SPLIT = %w{
29
- build_arch
30
- build_os
31
- install_arch
32
- install_os
33
- archcolor
34
- optflags
35
- }.freeze
36
- end
37
-
38
- collect_data(:aix, :darwin, :dragonflybsd, :freebsd, :linux, :netbsd, :openbsd, :solaris2) do
39
- rpm_path = which("rpm")
40
- if rpm_path
41
- rpm_version_out = shell_out("#{rpm_path} --version")
42
- rpm_showrc_out = shell_out("#{rpm_path} --showrc")
43
-
44
- rpm Mash.new unless rpm
45
- rpm[:macros] ||= Mash.new
46
-
47
- m = rpm_version_out.stdout.match(/\w+ (\d.*)/)
48
- if m
49
- rpm[:version] = m[1]
50
- end
51
-
52
- lines = rpm_showrc_out.stdout.split("\n")
53
- # there's a marker to separate the beginning and end of the macros list
54
- macros_start_idx = lines.index { |x| x.match(MACROS_MARKER) }
55
- macros_end_idx = lines.rindex { |x| x.match(MACROS_MARKER) }
56
- section = nil
57
- lines[0..macros_start_idx - 1].each do |line|
58
- if line.start_with?("ARCHITECTURE AND OS")
59
- section = :arch_os
60
- rpm[section] ||= Mash.new
61
- elsif line.start_with?("RPMRC VALUES")
62
- section = :rpmrc
63
- rpm[section] ||= Mash.new
64
- elsif line.start_with?("Features supported by rpmlib")
65
- section = :features
66
- rpm[section] ||= Mash.new
67
- elsif line.start_with?("Macro path")
68
- fields = line.split(":", 2)
69
- if fields
70
- rpm[:macro_path] = fields[1].strip.split(":")
71
- end
72
- section = nil
73
- elsif %i{arch_os rpmrc}.include?(section)
74
- fields = line.split(":")
75
- if fields && fields[0] && fields[1]
76
- key = fields[0].strip.sub("'s", "es").tr(" ", "_")
77
- if DO_NOT_SPLIT.include?(key)
78
- values = fields[1].strip
79
- else
80
- values = fields[1].strip.split(" ")
81
- end
82
- rpm[section][key] = values
83
- end
84
- elsif section == :features
85
- fields = line.split("=")
86
- if fields && fields[0] && fields[1]
87
- rpm[section][fields[0].strip] = fields[1].strip
88
- end
89
- end
90
- end
91
-
92
- name = nil
93
- value = ""
94
- lines[macros_start_idx + 1..macros_end_idx - 1].each do |line|
95
- if line.start_with?("-")
96
- # new macros are always prefixed by a dash
97
- if name
98
- # if we had parsed a macro before, store it
99
- rpm[:macros][name] = value
100
- name = nil
101
- value = ""
102
- end
103
-
104
- # parse the new macro definition
105
- _prefix, name, value = line.split(" ", 3)
106
- else
107
- # continuations have no prefix and just append to the previous one
108
- value += "\n#{line}"
109
- end
110
- end
111
-
112
- # Once we're done parsing all lines, we might have a parsed definition
113
- # we haven't stored - if so, store it.
114
- if name
115
- rpm[:macros][name] = value
116
- end
117
- else
118
- logger.trace("Plugin RPM: Could not find rpm. Skipping plugin.")
119
- end
120
- end
121
- end
1
+ # frozen_string_literal: true
2
+
3
+ #
4
+ # Author:: Davide Cavalca <dcavalca@fb.com>
5
+ # Copyright:: Copyright (c) 2021 Meta Platforms, Inc. and affiliates.
6
+ # License:: Apache License, Version 2.0
7
+ #
8
+ # Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ # See the License for the specific language governing permissions and
18
+ # limitations under the License.
19
+ #
20
+
21
+ Ohai.plugin(:Rpm) do
22
+ provides "rpm"
23
+ optional "true"
24
+
25
+ MACROS_MARKER = /========================/.freeze unless defined?(MACROS_MARKER)
26
+
27
+ unless defined?(DO_NOT_SPLIT)
28
+ DO_NOT_SPLIT = %w{
29
+ build_arch
30
+ build_os
31
+ install_arch
32
+ install_os
33
+ archcolor
34
+ optflags
35
+ }.freeze
36
+ end
37
+
38
+ collect_data(:aix, :darwin, :dragonflybsd, :freebsd, :linux, :netbsd, :openbsd, :solaris2) do
39
+ rpm_path = which("rpm")
40
+ if rpm_path
41
+ rpm_version_out = shell_out("#{rpm_path} --version")
42
+ rpm_showrc_out = shell_out("#{rpm_path} --showrc")
43
+
44
+ rpm Mash.new unless rpm
45
+ rpm[:macros] ||= Mash.new
46
+
47
+ m = rpm_version_out.stdout.match(/\w+ (\d.*)/)
48
+ if m
49
+ rpm[:version] = m[1]
50
+ end
51
+
52
+ lines = rpm_showrc_out.stdout.split("\n")
53
+ # there's a marker to separate the beginning and end of the macros list
54
+ macros_start_idx = lines.index { |x| x.match(MACROS_MARKER) }
55
+ macros_end_idx = lines.rindex { |x| x.match(MACROS_MARKER) }
56
+ section = nil
57
+ lines[0..macros_start_idx - 1].each do |line|
58
+ if line.start_with?("ARCHITECTURE AND OS")
59
+ section = :arch_os
60
+ rpm[section] ||= Mash.new
61
+ elsif line.start_with?("RPMRC VALUES")
62
+ section = :rpmrc
63
+ rpm[section] ||= Mash.new
64
+ elsif line.start_with?("Features supported by rpmlib")
65
+ section = :features
66
+ rpm[section] ||= Mash.new
67
+ elsif line.start_with?("Macro path")
68
+ fields = line.split(":", 2)
69
+ if fields
70
+ rpm[:macro_path] = fields[1].strip.split(":")
71
+ end
72
+ section = nil
73
+ elsif %i{arch_os rpmrc}.include?(section)
74
+ fields = line.split(":")
75
+ if fields && fields[0] && fields[1]
76
+ key = fields[0].strip.sub("'s", "es").tr(" ", "_")
77
+ if DO_NOT_SPLIT.include?(key)
78
+ values = fields[1].strip
79
+ else
80
+ values = fields[1].strip.split(" ")
81
+ end
82
+ rpm[section][key] = values
83
+ end
84
+ elsif section == :features
85
+ fields = line.split("=")
86
+ if fields && fields[0] && fields[1]
87
+ rpm[section][fields[0].strip] = fields[1].strip
88
+ end
89
+ end
90
+ end
91
+
92
+ name = nil
93
+ value = ""
94
+ lines[macros_start_idx + 1..macros_end_idx - 1].each do |line|
95
+ if line.start_with?("-")
96
+ # new macros are always prefixed by a dash
97
+ if name
98
+ # if we had parsed a macro before, store it
99
+ rpm[:macros][name] = value
100
+ name = nil
101
+ value = ""
102
+ end
103
+
104
+ # parse the new macro definition
105
+ _prefix, name, value = line.split(" ", 3)
106
+ else
107
+ # continuations have no prefix and just append to the previous one
108
+ value += "\n#{line}"
109
+ end
110
+ end
111
+
112
+ # Once we're done parsing all lines, we might have a parsed definition
113
+ # we haven't stored - if so, store it.
114
+ if name
115
+ rpm[:macros][name] = value
116
+ end
117
+ else
118
+ logger.trace("Plugin RPM: Could not find rpm. Skipping plugin.")
119
+ end
120
+ end
121
+ end
@@ -1,66 +1,66 @@
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(:Ruby) do
21
- provides "languages/ruby"
22
- depends "languages"
23
-
24
- def run_ruby(command)
25
- cmd = "ruby -e \"require 'rbconfig'; #{command}\""
26
- so = shell_out(cmd)
27
- so.stdout.strip
28
- end
29
-
30
- collect_data do
31
- languages[:ruby] = Mash.new
32
-
33
- values = {
34
- platform: "RUBY_PLATFORM",
35
- version: "RUBY_VERSION",
36
- release_date: "RUBY_RELEASE_DATE",
37
- target: "RbConfig::CONFIG['target']",
38
- target_cpu: "RbConfig::CONFIG['target_cpu']",
39
- target_vendor: "RbConfig::CONFIG['target_vendor']",
40
- target_os: "RbConfig::CONFIG['target_os']",
41
- host: "RbConfig::CONFIG['host']",
42
- host_cpu: "RbConfig::CONFIG['host_cpu']",
43
- host_os: "RbConfig::CONFIG['host_os']",
44
- host_vendor: "RbConfig::CONFIG['host_vendor']",
45
- bin_dir: "RbConfig::CONFIG['bindir']",
46
- ruby_bin: "::File.join(RbConfig::CONFIG['bindir'], RbConfig::CONFIG['ruby_install_name'])",
47
- gem_bin: "::File.join(RbConfig::CONFIG['bindir'], ::Gem.default_exec_format % 'gem')",
48
- gems_dir: "::Gem.dir",
49
- }
50
-
51
- # Create a query string from above hash
52
- env_string = []
53
- values.each_key do |v|
54
- env_string << "#{v}=\#{#{values[v]}},"
55
- end
56
-
57
- # Query the system ruby
58
- result = run_ruby "require 'rubygems'; puts %Q(#{env_string.join})"
59
-
60
- # Parse results to plugin hash
61
- result.split(",").each do |entry|
62
- key, value = entry.split("=")
63
- languages[:ruby][key.to_sym] = value || ""
64
- end
65
- end
66
- 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(:Ruby) do
21
+ provides "languages/ruby"
22
+ depends "languages"
23
+
24
+ def run_ruby(command)
25
+ cmd = "ruby -e \"require 'rbconfig'; #{command}\""
26
+ so = shell_out(cmd)
27
+ so.stdout.strip
28
+ end
29
+
30
+ collect_data do
31
+ languages[:ruby] = Mash.new
32
+
33
+ values = {
34
+ platform: "RUBY_PLATFORM",
35
+ version: "RUBY_VERSION",
36
+ release_date: "RUBY_RELEASE_DATE",
37
+ target: "RbConfig::CONFIG['target']",
38
+ target_cpu: "RbConfig::CONFIG['target_cpu']",
39
+ target_vendor: "RbConfig::CONFIG['target_vendor']",
40
+ target_os: "RbConfig::CONFIG['target_os']",
41
+ host: "RbConfig::CONFIG['host']",
42
+ host_cpu: "RbConfig::CONFIG['host_cpu']",
43
+ host_os: "RbConfig::CONFIG['host_os']",
44
+ host_vendor: "RbConfig::CONFIG['host_vendor']",
45
+ bin_dir: "RbConfig::CONFIG['bindir']",
46
+ ruby_bin: "::File.join(RbConfig::CONFIG['bindir'], RbConfig::CONFIG['ruby_install_name'])",
47
+ gem_bin: "::File.join(RbConfig::CONFIG['bindir'], ::Gem.default_exec_format % 'gem')",
48
+ gems_dir: "::Gem.dir",
49
+ }
50
+
51
+ # Create a query string from above hash
52
+ env_string = []
53
+ values.each_key do |v|
54
+ env_string << "#{v}=\#{#{values[v]}},"
55
+ end
56
+
57
+ # Query the system ruby
58
+ result = run_ruby "require 'rubygems'; puts %Q(#{env_string.join})"
59
+
60
+ # Parse results to plugin hash
61
+ result.split(",").each do |entry|
62
+ key, value = entry.split("=")
63
+ languages[:ruby][key.to_sym] = value || ""
64
+ end
65
+ end
66
+ end
@@ -1,34 +1,34 @@
1
- # Author:: Christopher M Luciano (<cmlucian@us.ibm.com>)
2
- # License:: Apache License, Version 2.0
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
- Ohai.plugin(:Rust) do
17
- provides "languages/rust"
18
- depends "languages".freeze
19
-
20
- collect_data do
21
-
22
- so = shell_out("rustc --version")
23
- # Sample output:
24
- # rustc 1.7.0
25
- if so.exitstatus == 0
26
- rust = Mash.new
27
- rust[:version] = so.stdout.split[1]
28
- languages[:rust] = rust if rust[:version]
29
- end
30
- rescue Ohai::Exceptions::Exec
31
- logger.trace('Plugin Rust: Could not shell_out "rustc --version". Skipping plugin')
32
-
33
- end
34
- end
1
+ # Author:: Christopher M Luciano (<cmlucian@us.ibm.com>)
2
+ # License:: Apache License, Version 2.0
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ Ohai.plugin(:Rust) do
17
+ provides "languages/rust"
18
+ depends "languages".freeze
19
+
20
+ collect_data do
21
+
22
+ so = shell_out("rustc --version")
23
+ # Sample output:
24
+ # rustc 1.7.0
25
+ if so.exitstatus == 0
26
+ rust = Mash.new
27
+ rust[:version] = so.stdout.split[1]
28
+ languages[:rust] = rust if rust[:version]
29
+ end
30
+ rescue Ohai::Exceptions::Exec
31
+ logger.trace('Plugin Rust: Could not shell_out "rustc --version". Skipping plugin')
32
+
33
+ end
34
+ end
@@ -1,38 +1,38 @@
1
- # frozen_string_literal: true
2
- # Author:: Christopher M Luciano (<cmlucian@us.ibm.com>)
3
- # © Copyright IBM Corporation 2015.
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(:Scala) do
19
- provides "languages/scala"
20
- depends "languages"
21
-
22
- collect_data(:default) do
23
- scala = Mash.new
24
- begin
25
- so = shell_out("scala -version")
26
- # Sample output:
27
- # cat: /release: No such file or directory
28
- # Scala code runner version 2.12.1 -- Copyright 2002-2016, LAMP/EPFL and Lightbend, Inc.
29
- if so.exitstatus == 0
30
- scala[:version] = so.stderr.match(/.*version (\S*)/)[1]
31
- end
32
- rescue Ohai::Exceptions::Exec
33
- logger.trace('Plugin Scala: Could not shell_out "scala -version". Skipping data')
34
- end
35
-
36
- languages[:scala] = scala unless scala.empty?
37
- end
38
- end
1
+ # frozen_string_literal: true
2
+ # Author:: Christopher M Luciano (<cmlucian@us.ibm.com>)
3
+ # © Copyright IBM Corporation 2015.
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(:Scala) do
19
+ provides "languages/scala"
20
+ depends "languages"
21
+
22
+ collect_data(:default) do
23
+ scala = Mash.new
24
+ begin
25
+ so = shell_out("scala -version")
26
+ # Sample output:
27
+ # cat: /release: No such file or directory
28
+ # Scala code runner version 2.12.1 -- Copyright 2002-2016, LAMP/EPFL and Lightbend, Inc.
29
+ if so.exitstatus == 0
30
+ scala[:version] = so.stderr.match(/.*version (\S*)/)[1]
31
+ end
32
+ rescue Ohai::Exceptions::Exec
33
+ logger.trace('Plugin Scala: Could not shell_out "scala -version". Skipping data')
34
+ end
35
+
36
+ languages[:scala] = scala unless scala.empty?
37
+ end
38
+ end
@@ -1,58 +1,58 @@
1
- # frozen_string_literal: true
2
- #
3
- # Author:: Jonathan Amiez (<jonathan.amiez@gmail.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(:Scaleway) do
19
- require_relative "../mixin/scaleway_metadata"
20
- require_relative "../mixin/http_helper"
21
-
22
- include Ohai::Mixin::ScalewayMetadata
23
- include Ohai::Mixin::HttpHelper
24
-
25
- provides "scaleway"
26
-
27
- # looks for `scaleway` keyword in kernel command line
28
- # @return [Boolean] do we have the keyword or not?
29
- def has_scaleway_cmdline?
30
- if file_exist?("/proc/cmdline") && file_read("/proc/cmdline").include?("scaleway")
31
- logger.trace("Plugin Scaleway: has_scaleway_cmdline? == true")
32
- return true
33
- end
34
- logger.trace("Plugin Scaleway: has_scaleway_cmdline? == false")
35
- false
36
- end
37
-
38
- # a single check that combines all the various detection methods for Scaleway
39
- # @return [Boolean] Does the system appear to be on Scaleway
40
- def looks_like_scaleway?
41
- return true if hint?("scaleway")
42
- return true if has_scaleway_cmdline? && can_socket_connect?(Ohai::Mixin::ScalewayMetadata::SCALEWAY_METADATA_ADDR, 80)
43
-
44
- false
45
- end
46
-
47
- collect_data(:linux) do
48
- if looks_like_scaleway?
49
- logger.trace("Plugin Scaleway: looks_like_scaleway? == true")
50
- scaleway Mash.new
51
- fetch_metadata.each do |k, v|
52
- scaleway[k] = v
53
- end
54
- else
55
- logger.trace("Plugin Scaleway: No hints present for and doesn't look like scaleway")
56
- end
57
- end
58
- end
1
+ # frozen_string_literal: true
2
+ #
3
+ # Author:: Jonathan Amiez (<jonathan.amiez@gmail.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(:Scaleway) do
19
+ require_relative "../mixin/scaleway_metadata"
20
+ require_relative "../mixin/http_helper"
21
+
22
+ include Ohai::Mixin::ScalewayMetadata
23
+ include Ohai::Mixin::HttpHelper
24
+
25
+ provides "scaleway"
26
+
27
+ # looks for `scaleway` keyword in kernel command line
28
+ # @return [Boolean] do we have the keyword or not?
29
+ def has_scaleway_cmdline?
30
+ if file_exist?("/proc/cmdline") && file_read("/proc/cmdline").include?("scaleway")
31
+ logger.trace("Plugin Scaleway: has_scaleway_cmdline? == true")
32
+ return true
33
+ end
34
+ logger.trace("Plugin Scaleway: has_scaleway_cmdline? == false")
35
+ false
36
+ end
37
+
38
+ # a single check that combines all the various detection methods for Scaleway
39
+ # @return [Boolean] Does the system appear to be on Scaleway
40
+ def looks_like_scaleway?
41
+ return true if hint?("scaleway")
42
+ return true if has_scaleway_cmdline? && can_socket_connect?(Ohai::Mixin::ScalewayMetadata::SCALEWAY_METADATA_ADDR, 80)
43
+
44
+ false
45
+ end
46
+
47
+ collect_data(:linux) do
48
+ if looks_like_scaleway?
49
+ logger.trace("Plugin Scaleway: looks_like_scaleway? == true")
50
+ scaleway Mash.new
51
+ fetch_metadata.each do |k, v|
52
+ scaleway[k] = v
53
+ end
54
+ else
55
+ logger.trace("Plugin Scaleway: No hints present for and doesn't look like scaleway")
56
+ end
57
+ end
58
+ end