ohai 18.0.14 → 18.0.26

Sign up to get free protection for your applications and to get access to all the features.
Files changed (166) 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 -163
  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 +86 -86
  17. data/lib/ohai/mixin/azure_metadata.rb +111 -111
  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 +256 -256
  24. data/lib/ohai/mixin/gce_metadata.rb +83 -83
  25. data/lib/ohai/mixin/http_helper.rb +64 -64
  26. data/lib/ohai/mixin/network_helper.rb +65 -63
  27. data/lib/ohai/mixin/os.rb +128 -128
  28. data/lib/ohai/mixin/scaleway_metadata.rb +51 -51
  29. data/lib/ohai/mixin/seconds_to_human.rb +52 -52
  30. data/lib/ohai/mixin/shell_out.rb +51 -51
  31. data/lib/ohai/mixin/softlayer_metadata.rb +74 -74
  32. data/lib/ohai/mixin/string.rb +31 -31
  33. data/lib/ohai/mixin/train_helpers.rb +36 -36
  34. data/lib/ohai/mixin/which.rb +39 -39
  35. data/lib/ohai/plugin_config.rb +47 -47
  36. data/lib/ohai/plugins/aix/kernel.rb +50 -50
  37. data/lib/ohai/plugins/aix/memory.rb +37 -37
  38. data/lib/ohai/plugins/aix/network.rb +142 -142
  39. data/lib/ohai/plugins/aix/platform.rb +30 -30
  40. data/lib/ohai/plugins/aix/uptime.rb +54 -54
  41. data/lib/ohai/plugins/aix/virtualization.rb +154 -154
  42. data/lib/ohai/plugins/alibaba.rb +72 -72
  43. data/lib/ohai/plugins/azure.rb +154 -154
  44. data/lib/ohai/plugins/bsd/virtualization.rb +121 -121
  45. data/lib/ohai/plugins/c.rb +178 -178
  46. data/lib/ohai/plugins/chef.rb +50 -50
  47. data/lib/ohai/plugins/cloud.rb +357 -357
  48. data/lib/ohai/plugins/command.rb +26 -26
  49. data/lib/ohai/plugins/cpu.rb +635 -626
  50. data/lib/ohai/plugins/darwin/hardware.rb +99 -99
  51. data/lib/ohai/plugins/darwin/memory.rb +62 -62
  52. data/lib/ohai/plugins/darwin/network.rb +207 -207
  53. data/lib/ohai/plugins/darwin/platform.rb +38 -38
  54. data/lib/ohai/plugins/darwin/virtualization.rb +93 -93
  55. data/lib/ohai/plugins/digital_ocean.rb +67 -67
  56. data/lib/ohai/plugins/dmi.rb +134 -134
  57. data/lib/ohai/plugins/docker.rb +58 -58
  58. data/lib/ohai/plugins/dragonflybsd/memory.rb +60 -60
  59. data/lib/ohai/plugins/dragonflybsd/network.rb +128 -128
  60. data/lib/ohai/plugins/dragonflybsd/platform.rb +28 -28
  61. data/lib/ohai/plugins/ec2.rb +148 -155
  62. data/lib/ohai/plugins/elixir.rb +36 -36
  63. data/lib/ohai/plugins/erlang.rb +60 -60
  64. data/lib/ohai/plugins/eucalyptus.rb +86 -86
  65. data/lib/ohai/plugins/filesystem.rb +751 -751
  66. data/lib/ohai/plugins/fips.rb +36 -35
  67. data/lib/ohai/plugins/freebsd/memory.rb +60 -60
  68. data/lib/ohai/plugins/freebsd/network.rb +128 -128
  69. data/lib/ohai/plugins/freebsd/platform.rb +28 -28
  70. data/lib/ohai/plugins/gce.rb +89 -89
  71. data/lib/ohai/plugins/go.rb +34 -34
  72. data/lib/ohai/plugins/groovy.rb +38 -38
  73. data/lib/ohai/plugins/grub2.rb +40 -40
  74. data/lib/ohai/plugins/habitat.rb +73 -73
  75. data/lib/ohai/plugins/haskell.rb +96 -96
  76. data/lib/ohai/plugins/hostname.rb +133 -133
  77. data/lib/ohai/plugins/init_package.rb +26 -26
  78. data/lib/ohai/plugins/java.rb +78 -78
  79. data/lib/ohai/plugins/kernel.rb +292 -292
  80. data/lib/ohai/plugins/keys.rb +27 -27
  81. data/lib/ohai/plugins/languages.rb +26 -26
  82. data/lib/ohai/plugins/libvirt.rb +114 -114
  83. data/lib/ohai/plugins/linode.rb +73 -73
  84. data/lib/ohai/plugins/linux/block_device.rb +48 -48
  85. data/lib/ohai/plugins/linux/hostnamectl.rb +34 -34
  86. data/lib/ohai/plugins/linux/interrupts.rb +84 -84
  87. data/lib/ohai/plugins/linux/ipc.rb +52 -52
  88. data/lib/ohai/plugins/linux/livepatch.rb +38 -38
  89. data/lib/ohai/plugins/linux/lsb.rb +46 -46
  90. data/lib/ohai/plugins/linux/lspci.rb +76 -76
  91. data/lib/ohai/plugins/linux/machineid.rb +36 -36
  92. data/lib/ohai/plugins/linux/mdadm.rb +120 -120
  93. data/lib/ohai/plugins/linux/memory.rb +106 -106
  94. data/lib/ohai/plugins/linux/network.rb +879 -879
  95. data/lib/ohai/plugins/linux/os_release.rb +38 -38
  96. data/lib/ohai/plugins/linux/platform.rb +314 -313
  97. data/lib/ohai/plugins/linux/selinux.rb +69 -69
  98. data/lib/ohai/plugins/linux/sessions.rb +54 -54
  99. data/lib/ohai/plugins/linux/sysctl.rb +39 -39
  100. data/lib/ohai/plugins/linux/systemd_paths.rb +36 -36
  101. data/lib/ohai/plugins/linux/tc.rb +61 -61
  102. data/lib/ohai/plugins/linux/virtualization.rb +300 -300
  103. data/lib/ohai/plugins/lua.rb +39 -39
  104. data/lib/ohai/plugins/mono.rb +50 -50
  105. data/lib/ohai/plugins/netbsd/memory.rb +99 -99
  106. data/lib/ohai/plugins/netbsd/network.rb +122 -122
  107. data/lib/ohai/plugins/netbsd/platform.rb +28 -28
  108. data/lib/ohai/plugins/network.rb +186 -186
  109. data/lib/ohai/plugins/nodejs.rb +40 -40
  110. data/lib/ohai/plugins/ohai.rb +29 -29
  111. data/lib/ohai/plugins/ohai_time.rb +26 -26
  112. data/lib/ohai/plugins/openbsd/memory.rb +99 -99
  113. data/lib/ohai/plugins/openbsd/network.rb +122 -122
  114. data/lib/ohai/plugins/openbsd/platform.rb +28 -28
  115. data/lib/ohai/plugins/openstack.rb +84 -84
  116. data/lib/ohai/plugins/os.rb +55 -55
  117. data/lib/ohai/plugins/packages.rb +234 -234
  118. data/lib/ohai/plugins/passwd.rb +104 -104
  119. data/lib/ohai/plugins/perl.rb +45 -45
  120. data/lib/ohai/plugins/php.rb +52 -52
  121. data/lib/ohai/plugins/platform.rb +29 -29
  122. data/lib/ohai/plugins/powershell.rb +82 -82
  123. data/lib/ohai/plugins/ps.rb +35 -35
  124. data/lib/ohai/plugins/python.rb +43 -43
  125. data/lib/ohai/plugins/rackspace.rb +177 -177
  126. data/lib/ohai/plugins/root_group.rb +41 -41
  127. data/lib/ohai/plugins/rpm.rb +121 -119
  128. data/lib/ohai/plugins/ruby.rb +66 -66
  129. data/lib/ohai/plugins/rust.rb +34 -34
  130. data/lib/ohai/plugins/scala.rb +38 -38
  131. data/lib/ohai/plugins/scaleway.rb +58 -58
  132. data/lib/ohai/plugins/scsi.rb +52 -52
  133. data/lib/ohai/plugins/shard.rb +142 -142
  134. data/lib/ohai/plugins/shells.rb +32 -32
  135. data/lib/ohai/plugins/softlayer.rb +48 -48
  136. data/lib/ohai/plugins/solaris2/dmi.rb +191 -191
  137. data/lib/ohai/plugins/solaris2/memory.rb +32 -32
  138. data/lib/ohai/plugins/solaris2/network.rb +192 -192
  139. data/lib/ohai/plugins/solaris2/platform.rb +58 -58
  140. data/lib/ohai/plugins/solaris2/virtualization.rb +90 -90
  141. data/lib/ohai/plugins/ssh_host_key.rb +84 -84
  142. data/lib/ohai/plugins/sysconf.rb +46 -46
  143. data/lib/ohai/plugins/timezone.rb +25 -25
  144. data/lib/ohai/plugins/train.rb +35 -35
  145. data/lib/ohai/plugins/uptime.rb +95 -95
  146. data/lib/ohai/plugins/virtualbox.rb +197 -197
  147. data/lib/ohai/plugins/vmware.rb +94 -94
  148. data/lib/ohai/plugins/windows/dmi.rb +95 -95
  149. data/lib/ohai/plugins/windows/drivers.rb +52 -52
  150. data/lib/ohai/plugins/windows/memory.rb +39 -39
  151. data/lib/ohai/plugins/windows/network.rb +222 -222
  152. data/lib/ohai/plugins/windows/platform.rb +34 -34
  153. data/lib/ohai/plugins/windows/system_enclosure.rb +29 -29
  154. data/lib/ohai/plugins/windows/virtualization.rb +45 -45
  155. data/lib/ohai/plugins/zpools.rb +94 -94
  156. data/lib/ohai/provides_map.rb +208 -208
  157. data/lib/ohai/runner.rb +128 -128
  158. data/lib/ohai/system.rb +258 -258
  159. data/lib/ohai/train_transport.rb +29 -29
  160. data/lib/ohai/util/file_helper.rb +6 -6
  161. data/lib/ohai/util/ip_helper.rb +56 -56
  162. data/lib/ohai/util/win32.rb +47 -47
  163. data/lib/ohai/version.rb +23 -23
  164. data/lib/ohai.rb +23 -23
  165. data/ohai.gemspec +35 -35
  166. metadata +3 -3
@@ -1,119 +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
26
-
27
- DO_NOT_SPLIT = %w{
28
- build_arch
29
- build_os
30
- install_arch
31
- install_os
32
- archcolor
33
- optflags
34
- }.freeze
35
-
36
- collect_data(:aix, :darwin, :dragonflybsd, :freebsd, :linux, :netbsd, :openbsd, :solaris2) do
37
- rpm_path = which("rpm")
38
- if rpm_path
39
- rpm_version_out = shell_out("#{rpm_path} --version")
40
- rpm_showrc_out = shell_out("#{rpm_path} --showrc")
41
-
42
- rpm Mash.new unless rpm
43
- rpm[:macros] ||= Mash.new
44
-
45
- m = rpm_version_out.stdout.match(/\w+ (\d.*)/)
46
- if m
47
- rpm[:version] = m[1]
48
- end
49
-
50
- lines = rpm_showrc_out.stdout.split("\n")
51
- # there's a marker to separate the beginning and end of the macros list
52
- macros_start_idx = lines.index { |x| x.match(MACROS_MARKER) }
53
- macros_end_idx = lines.rindex { |x| x.match(MACROS_MARKER) }
54
- section = nil
55
- lines[0..macros_start_idx - 1].each do |line|
56
- if line.start_with?("ARCHITECTURE AND OS")
57
- section = :arch_os
58
- rpm[section] ||= Mash.new
59
- elsif line.start_with?("RPMRC VALUES")
60
- section = :rpmrc
61
- rpm[section] ||= Mash.new
62
- elsif line.start_with?("Features supported by rpmlib")
63
- section = :features
64
- rpm[section] ||= Mash.new
65
- elsif line.start_with?("Macro path")
66
- fields = line.split(":", 2)
67
- if fields
68
- rpm[:macro_path] = fields[1].strip.split(":")
69
- end
70
- section = nil
71
- elsif %i{arch_os rpmrc}.include?(section)
72
- fields = line.split(":")
73
- if fields && fields[0] && fields[1]
74
- key = fields[0].strip.sub("'s", "es").tr(" ", "_")
75
- if DO_NOT_SPLIT.include?(key)
76
- values = fields[1].strip
77
- else
78
- values = fields[1].strip.split(" ")
79
- end
80
- rpm[section][key] = values
81
- end
82
- elsif section == :features
83
- fields = line.split("=")
84
- if fields && fields[0] && fields[1]
85
- rpm[section][fields[0].strip] = fields[1].strip
86
- end
87
- end
88
- end
89
-
90
- name = nil
91
- value = ""
92
- lines[macros_start_idx + 1..macros_end_idx - 1].each do |line|
93
- if line.start_with?("-")
94
- # new macros are always prefixed by a dash
95
- if name
96
- # if we had parsed a macro before, store it
97
- rpm[:macros][name] = value
98
- name = nil
99
- value = ""
100
- end
101
-
102
- # parse the new macro definition
103
- _prefix, name, value = line.split(" ", 3)
104
- else
105
- # continuations have no prefix and just append to the previous one
106
- value += "\n#{line}"
107
- end
108
- end
109
-
110
- # Once we're done parsing all lines, we might have a parsed definition
111
- # we haven't stored - if so, store it.
112
- if name
113
- rpm[:macros][name] = value
114
- end
115
- else
116
- logger.trace("Plugin RPM: Could not find rpm. Skipping plugin.")
117
- end
118
- end
119
- 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") && /scaleway/.match?(file_read("/proc/cmdline"))
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") && /scaleway/.match?(file_read("/proc/cmdline"))
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