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,74 +1,74 @@
1
- # frozen_string_literal: true
2
- #
3
- # Author:: Alexey Karpik <alexey.karpik@rightscale.com>
4
- # Author:: Peter Schroeter <peter.schroeter@rightscale.com>
5
- # Author:: Stas Turlo <stanislav.turlo@rightscale.com>
6
- # Copyright:: Copyright (c) 2010-2014 RightScale Inc
7
- # License:: Apache License, Version 2.0
8
- #
9
- # Licensed under the Apache License, Version 2.0 (the "License");
10
- # you may not use this file except in compliance with the License.
11
- # You may obtain a copy of the License at
12
- #
13
- # http://www.apache.org/licenses/LICENSE-2.0
14
- #
15
- # Unless required by applicable law or agreed to in writing, software
16
- # distributed under the License is distributed on an "AS IS" BASIS,
17
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
- # See the License for the specific language governing permissions and
19
- # limitations under the License.
20
-
21
- require "net/http" unless defined?(Net::HTTP)
22
- require "uri" unless defined?(URI)
23
-
24
- # https://softlayer.github.io/reference/services/SoftLayer_Resource_Metadata/
25
- module ::Ohai::Mixin::SoftlayerMetadata
26
- SOFTLAYER_API_QUERY_URL ||= "https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata"
27
-
28
- # fetch metadata items and build out hash of data
29
- #
30
- # @return [Hash]
31
- def fetch_metadata
32
- {
33
- "public_fqdn" => fetch_metadata_item("getFullyQualifiedDomainName.txt"),
34
- "local_ipv4" => fetch_metadata_item("getPrimaryBackendIpAddress.txt"),
35
- "public_ipv4" => fetch_metadata_item("getPrimaryIpAddress.txt"),
36
- "region" => fetch_metadata_item("getDatacenter.txt"),
37
- "instance_id" => fetch_metadata_item("getId.txt"),
38
- }
39
- end
40
-
41
- # Softlayer's metadata api is only available over HTTPS.
42
- # Ruby by default does not link to the system's CA bundle
43
- # however Chef-omnibus should set SSL_CERT_FILE to point to a valid file.
44
- # Manually supply and specify a suitable CA bundle here or
45
- # set the SSL_CERT_FILE file environment variable to a valid value otherwise.
46
- #
47
- # @return [String]
48
- def ca_file_location
49
- ::Ohai::Config[:ca_file]
50
- end
51
-
52
- # fetch a specified item from the Softlayer metadata API
53
- # @param item [String] the metadata item to fetch
54
- #
55
- # @return [String] the response body
56
- def fetch_metadata_item(item)
57
- full_url = "#{SOFTLAYER_API_QUERY_URL}/#{item}"
58
- u = URI(full_url)
59
- net = ::Net::HTTP.new(u.hostname, u.port)
60
- net.ssl_version = :TLSv1_2
61
- net.use_ssl = true
62
- net.ca_file = ca_file_location
63
- res = net.get(u.request_uri)
64
- if res.code.to_i.between?(200, 299)
65
- res.body
66
- else
67
- logger.error("Mixin Softlayer: Unable to fetch item #{full_url}: status (#{res.code}) body (#{res.body})")
68
- nil
69
- end
70
- rescue => e
71
- logger.error("Mixin Softlayer: Unable to fetch softlayer metadata from #{u}: #{e.class}: #{e.message}")
72
- raise e
73
- end
74
- end
1
+ # frozen_string_literal: true
2
+ #
3
+ # Author:: Alexey Karpik <alexey.karpik@rightscale.com>
4
+ # Author:: Peter Schroeter <peter.schroeter@rightscale.com>
5
+ # Author:: Stas Turlo <stanislav.turlo@rightscale.com>
6
+ # Copyright:: Copyright (c) 2010-2014 RightScale Inc
7
+ # License:: Apache License, Version 2.0
8
+ #
9
+ # Licensed under the Apache License, Version 2.0 (the "License");
10
+ # you may not use this file except in compliance with the License.
11
+ # You may obtain a copy of the License at
12
+ #
13
+ # http://www.apache.org/licenses/LICENSE-2.0
14
+ #
15
+ # Unless required by applicable law or agreed to in writing, software
16
+ # distributed under the License is distributed on an "AS IS" BASIS,
17
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+
21
+ require "net/http" unless defined?(Net::HTTP)
22
+ require "uri" unless defined?(URI)
23
+
24
+ # https://softlayer.github.io/reference/services/SoftLayer_Resource_Metadata/
25
+ module ::Ohai::Mixin::SoftlayerMetadata
26
+ SOFTLAYER_API_QUERY_URL ||= "https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata"
27
+
28
+ # fetch metadata items and build out hash of data
29
+ #
30
+ # @return [Hash]
31
+ def fetch_metadata
32
+ {
33
+ "public_fqdn" => fetch_metadata_item("getFullyQualifiedDomainName.txt"),
34
+ "local_ipv4" => fetch_metadata_item("getPrimaryBackendIpAddress.txt"),
35
+ "public_ipv4" => fetch_metadata_item("getPrimaryIpAddress.txt"),
36
+ "region" => fetch_metadata_item("getDatacenter.txt"),
37
+ "instance_id" => fetch_metadata_item("getId.txt"),
38
+ }
39
+ end
40
+
41
+ # Softlayer's metadata api is only available over HTTPS.
42
+ # Ruby by default does not link to the system's CA bundle
43
+ # however Chef-omnibus should set SSL_CERT_FILE to point to a valid file.
44
+ # Manually supply and specify a suitable CA bundle here or
45
+ # set the SSL_CERT_FILE file environment variable to a valid value otherwise.
46
+ #
47
+ # @return [String]
48
+ def ca_file_location
49
+ ::Ohai::Config[:ca_file]
50
+ end
51
+
52
+ # fetch a specified item from the Softlayer metadata API
53
+ # @param item [String] the metadata item to fetch
54
+ #
55
+ # @return [String] the response body
56
+ def fetch_metadata_item(item)
57
+ full_url = "#{SOFTLAYER_API_QUERY_URL}/#{item}"
58
+ u = URI(full_url)
59
+ net = ::Net::HTTP.new(u.hostname, u.port)
60
+ net.ssl_version = :TLSv1_2
61
+ net.use_ssl = true
62
+ net.ca_file = ca_file_location
63
+ res = net.get(u.request_uri)
64
+ if res.code.to_i.between?(200, 299)
65
+ res.body
66
+ else
67
+ logger.error("Mixin Softlayer: Unable to fetch item #{full_url}: status (#{res.code}) body (#{res.body})")
68
+ nil
69
+ end
70
+ rescue => e
71
+ logger.error("Mixin Softlayer: Unable to fetch softlayer metadata from #{u}: #{e.class}: #{e.message}")
72
+ raise e
73
+ end
74
+ end
@@ -1,31 +1,31 @@
1
- # frozen_string_literal: true
2
- #
3
- # Author:: James Gartrell (<jgartrel@gmail.com>)
4
- # Copyright:: Copyright (c) Chef Software Inc.
5
- # License:: Apache License, Version 2.0
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the "License");
8
- # you may not use this file except in compliance with the License.
9
- # You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing, software
14
- # distributed under the License is distributed on an "AS IS" BASIS,
15
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
-
20
- class String
21
- # Add string function to handle WMI property conversion to json hash keys
22
- # Makes an underscored, lowercase form from the expression in the string.
23
- # underscore will also change ’::’ to ’/’ to convert namespaces to paths.
24
- # This should implement the same functionality as underscore method in
25
- # ActiveSupport::CoreExtensions::String::Inflections
26
- # @return [String]
27
- def wmi_underscore
28
- gsub("::", "/").gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
29
- .gsub(/([a-z\d])([A-Z])/, '\1_\2').tr("-", "_").downcase
30
- end
31
- end
1
+ # frozen_string_literal: true
2
+ #
3
+ # Author:: James Gartrell (<jgartrel@gmail.com>)
4
+ # Copyright:: Copyright (c) Chef Software Inc.
5
+ # License:: Apache License, Version 2.0
6
+ #
7
+ # Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ # See the License for the specific language governing permissions and
17
+ # limitations under the License.
18
+ #
19
+
20
+ class String
21
+ # Add string function to handle WMI property conversion to json hash keys
22
+ # Makes an underscored, lowercase form from the expression in the string.
23
+ # underscore will also change ’::’ to ’/’ to convert namespaces to paths.
24
+ # This should implement the same functionality as underscore method in
25
+ # ActiveSupport::CoreExtensions::String::Inflections
26
+ # @return [String]
27
+ def wmi_underscore
28
+ gsub(/::/, "/").gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
29
+ .gsub(/([a-z\d])([A-Z])/, '\1_\2').tr("-", "_").downcase
30
+ end
31
+ end
@@ -1,36 +1,36 @@
1
- # frozen_string_literal: true
2
- #
3
- # Copyright:: Copyright (c) Chef Software Inc.
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
- require "chef-utils/dsl/train_helpers" unless defined?(ChefUtils::DSL::TrainHelpers)
19
- require_relative "chef_utils_wiring" unless defined?(Ohai::Mixin::ChefUtilsWiring)
20
-
21
- module Ohai
22
- module Mixin
23
- module TrainHelpers
24
- include ChefUtils::DSL::TrainHelpers
25
- include ChefUtilsWiring
26
-
27
- # anything added to this file temporarily should be pushed back up
28
- # into ChefUtils::DSL::TrainHelpers
29
-
30
- # XXX: this needs better support directly in train
31
- def dir_glob(path)
32
- shell_out!("ls -d #{path}").stdout.split
33
- end
34
- end
35
- end
36
- end
1
+ # frozen_string_literal: true
2
+ #
3
+ # Copyright:: Copyright (c) Chef Software Inc.
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
+ require "chef-utils/dsl/train_helpers" unless defined?(ChefUtils::DSL::TrainHelpers)
19
+ require_relative "chef_utils_wiring" unless defined?(Ohai::Mixin::ChefUtilsWiring)
20
+
21
+ module Ohai
22
+ module Mixin
23
+ module TrainHelpers
24
+ include ChefUtils::DSL::TrainHelpers
25
+ include ChefUtilsWiring
26
+
27
+ # anything added to this file temporarily should be pushed back up
28
+ # into ChefUtils::DSL::TrainHelpers
29
+
30
+ # XXX: this needs better support directly in train
31
+ def dir_glob(path)
32
+ shell_out!("ls -d #{path}").stdout.split
33
+ end
34
+ end
35
+ end
36
+ end
@@ -1,39 +1,39 @@
1
- # frozen_string_literal: true
2
- #
3
- # Copyright:: Copyright (c) Chef Software Inc.
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
- require "chef-utils/dsl/which" unless defined?(ChefUtils::DSL::Which)
19
- require "chef-utils/dsl/default_paths" unless defined?(ChefUtils::DSL::DefaultPaths)
20
- require_relative "chef_utils_wiring" unless defined?(Ohai::Mixin::ChefUtilsWiring)
21
-
22
- module Ohai
23
- module Mixin
24
- module Which
25
- include ChefUtils::DSL::Which
26
- include ChefUtils::DSL::DefaultPaths
27
- include ChefUtilsWiring
28
-
29
- private
30
-
31
- # we dep-inject default paths into this API for historical reasons
32
- #
33
- # @api private
34
- def __extra_path
35
- __default_paths
36
- end
37
- end
38
- end
39
- end
1
+ # frozen_string_literal: true
2
+ #
3
+ # Copyright:: Copyright (c) Chef Software Inc.
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
+ require "chef-utils/dsl/which" unless defined?(ChefUtils::DSL::Which)
19
+ require "chef-utils/dsl/default_paths" unless defined?(ChefUtils::DSL::DefaultPaths)
20
+ require_relative "chef_utils_wiring" unless defined?(Ohai::Mixin::ChefUtilsWiring)
21
+
22
+ module Ohai
23
+ module Mixin
24
+ module Which
25
+ include ChefUtils::DSL::Which
26
+ include ChefUtils::DSL::DefaultPaths
27
+ include ChefUtilsWiring
28
+
29
+ private
30
+
31
+ # we dep-inject default paths into this API for historical reasons
32
+ #
33
+ # @api private
34
+ def __extra_path
35
+ __default_paths
36
+ end
37
+ end
38
+ end
39
+ end
@@ -1,47 +1,47 @@
1
- # frozen_string_literal: true
2
- #
3
- # Copyright:: Copyright (c) Chef Software Inc.
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
-
19
- require_relative "exception"
20
-
21
- module Ohai
22
- class PluginConfig < Hash
23
-
24
- def []=(key, value_or_hash)
25
- enforce_symbol(key)
26
- enforce_symbol_keys(value_or_hash) if value_or_hash.is_a?(Hash)
27
- super(key, value_or_hash)
28
- end
29
-
30
- private
31
-
32
- def enforce_symbol(key)
33
- unless key.is_a?(Symbol)
34
- msg = "Expected Symbol, got #{key.inspect}"
35
- raise Ohai::Exceptions::PluginConfigError, msg
36
- end
37
- end
38
-
39
- def enforce_symbol_keys(hash)
40
- hash.each do |key, value|
41
- enforce_symbol(key)
42
- enforce_symbol_keys(value) if value.is_a?(Hash)
43
- end
44
- end
45
-
46
- end
47
- end
1
+ # frozen_string_literal: true
2
+ #
3
+ # Copyright:: Copyright (c) Chef Software Inc.
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
+
19
+ require_relative "exception"
20
+
21
+ module Ohai
22
+ class PluginConfig < Hash
23
+
24
+ def []=(key, value_or_hash)
25
+ enforce_symbol(key)
26
+ enforce_symbol_keys(value_or_hash) if value_or_hash.is_a?(Hash)
27
+ super(key, value_or_hash)
28
+ end
29
+
30
+ private
31
+
32
+ def enforce_symbol(key)
33
+ unless key.is_a?(Symbol)
34
+ msg = "Expected Symbol, got #{key.inspect}"
35
+ raise Ohai::Exceptions::PluginConfigError, msg
36
+ end
37
+ end
38
+
39
+ def enforce_symbol_keys(hash)
40
+ hash.each do |key, value|
41
+ enforce_symbol(key)
42
+ enforce_symbol_keys(value) if value.is_a?(Hash)
43
+ end
44
+ end
45
+
46
+ end
47
+ end
@@ -1,50 +1,50 @@
1
- # frozen_string_literal: true
2
- #
3
- # Author:: Joshua Timberman <joshua@chef.io>
4
- # Author:: Isa Farnik (<isa@chef.io>)
5
- # Copyright:: Copyright (c) Chef Software Inc.
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(:Kernel) do
22
- provides "kernel", "kernel/modules"
23
-
24
- collect_data(:aix) do
25
- kernel Mash.new
26
-
27
- uname_so = shell_out("uname -rvp").stdout.split
28
-
29
- kernel[:name] = "aix" # this is here for historical reasons, but it's always aix
30
- kernel[:release] = uname_so[0]
31
- kernel[:version] = uname_so[1]
32
- kernel[:machine] = uname_so[2]
33
- kernel[:bits] = shell_out("getconf KERNEL_BITMODE").stdout.strip
34
-
35
- modules = Mash.new
36
- so = shell_out("genkex -d")
37
- # Text address Size Data address Size File
38
- #
39
- # f1000000c0338000 77000 f1000000c0390000 1ec8c /usr/lib/drivers/cluster
40
- # 6390000 20000 63a0000 ba8 /usr/lib/drivers/if_en
41
- # f1000000c0318000 20000 f1000000c0320000 17138 /usr/lib/drivers/random
42
- so.stdout.lines do |line|
43
- if line =~ %r{\s*([0-9a-f]+)\s+([0-9a-f]+)\s+([0-9a-f]+)\s+([0-9a-f]+)\s+([a-zA-Z0-9/\._]+)}
44
- modules[$5] = { text: { address: $1, size: $2 }, data: { address: $3, size: $4 } }
45
- end
46
- end
47
-
48
- kernel[:modules] = modules
49
- end
50
- end
1
+ # frozen_string_literal: true
2
+ #
3
+ # Author:: Joshua Timberman <joshua@chef.io>
4
+ # Author:: Isa Farnik (<isa@chef.io>)
5
+ # Copyright:: Copyright (c) Chef Software Inc.
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(:Kernel) do
22
+ provides "kernel", "kernel/modules"
23
+
24
+ collect_data(:aix) do
25
+ kernel Mash.new
26
+
27
+ uname_so = shell_out("uname -rvp").stdout.split
28
+
29
+ kernel[:name] = "aix" # this is here for historical reasons, but it's always aix
30
+ kernel[:release] = uname_so[0]
31
+ kernel[:version] = uname_so[1]
32
+ kernel[:machine] = uname_so[2]
33
+ kernel[:bits] = shell_out("getconf KERNEL_BITMODE").stdout.strip
34
+
35
+ modules = Mash.new
36
+ so = shell_out("genkex -d")
37
+ # Text address Size Data address Size File
38
+ #
39
+ # f1000000c0338000 77000 f1000000c0390000 1ec8c /usr/lib/drivers/cluster
40
+ # 6390000 20000 63a0000 ba8 /usr/lib/drivers/if_en
41
+ # f1000000c0318000 20000 f1000000c0320000 17138 /usr/lib/drivers/random
42
+ so.stdout.lines do |line|
43
+ if line =~ %r{\s*([0-9a-f]+)\s+([0-9a-f]+)\s+([0-9a-f]+)\s+([0-9a-f]+)\s+([a-zA-Z0-9/\._]+)}
44
+ modules[$5] = { text: { address: $1, size: $2 }, data: { address: $3, size: $4 } }
45
+ end
46
+ end
47
+
48
+ kernel[:modules] = modules
49
+ end
50
+ end
@@ -1,37 +1,37 @@
1
- # frozen_string_literal: true
2
- #
3
- # Author:: Joshua Timberman <joshua@chef.io>
4
- # Author:: Isa Farnik (<isa@chef.io>)
5
- # Copyright:: Copyright (c) Chef Software Inc.
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(:Memory) do
22
- provides "memory"
23
-
24
- collect_data(:aix) do
25
- memory Mash.new
26
- memory[:swap] = Mash.new
27
-
28
- meminfo = shell_out("svmon -G -O unit=KB,summary=longreal | grep '[0-9]'").stdout
29
- total_in_mb, _u, free_in_mb = meminfo.split
30
- memory[:total] = "#{total_in_mb.to_i}kB"
31
- memory[:free] = "#{free_in_mb.to_i}kB"
32
-
33
- swap_info = shell_out("swap -s").stdout.split # returns swap info in 4K blocks
34
- memory[:swap]["total"] = "#{swap_info[2].to_i * 4}kB"
35
- memory[:swap]["free"] = "#{swap_info[10].to_i * 4}kB"
36
- end
37
- end
1
+ # frozen_string_literal: true
2
+ #
3
+ # Author:: Joshua Timberman <joshua@chef.io>
4
+ # Author:: Isa Farnik (<isa@chef.io>)
5
+ # Copyright:: Copyright (c) Chef Software Inc.
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(:Memory) do
22
+ provides "memory"
23
+
24
+ collect_data(:aix) do
25
+ memory Mash.new
26
+ memory[:swap] = Mash.new
27
+
28
+ meminfo = shell_out("svmon -G -O unit=KB,summary=longreal | grep '[0-9]'").stdout
29
+ total_in_mb, _u, free_in_mb = meminfo.split
30
+ memory[:total] = "#{total_in_mb.to_i}kB"
31
+ memory[:free] = "#{free_in_mb.to_i}kB"
32
+
33
+ swap_info = shell_out("swap -s").stdout.split # returns swap info in 4K blocks
34
+ memory[:swap]["total"] = "#{swap_info[2].to_i * 4}kB"
35
+ memory[:swap]["free"] = "#{swap_info[10].to_i * 4}kB"
36
+ end
37
+ end