ohai 15.3.1 → 15.6.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (171) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +0 -6
  3. data/lib/ohai/mixin/{network_constants.rb → network_helper.rb} +8 -1
  4. data/lib/ohai/plugins/aix/network.rb +3 -8
  5. data/lib/ohai/plugins/darwin/network.rb +6 -4
  6. data/lib/ohai/plugins/filesystem.rb +166 -0
  7. data/lib/ohai/plugins/network.rb +5 -5
  8. data/lib/ohai/plugins/openstack.rb +2 -1
  9. data/lib/ohai/plugins/solaris2/network.rb +6 -4
  10. data/lib/ohai/version.rb +1 -1
  11. data/ohai.gemspec +1 -1
  12. metadata +3 -162
  13. data/Rakefile +0 -42
  14. data/lib/ohai/plugins/windows/filesystem.rb +0 -147
  15. data/spec/data/plugins/dpkg-query.output +0 -4
  16. data/spec/data/plugins/lslpp.output +0 -50
  17. data/spec/data/plugins/pacman.output +0 -51
  18. data/spec/data/plugins/pkg-query.output +0 -58
  19. data/spec/data/plugins/pkginfo.output +0 -50
  20. data/spec/data/plugins/pkglist.output +0 -24
  21. data/spec/data/plugins/rpmquery.output +0 -7
  22. data/spec/functional/application_spec.rb +0 -107
  23. data/spec/functional/loader_spec.rb +0 -53
  24. data/spec/functional/plugins/powershell_spec.rb +0 -88
  25. data/spec/functional/plugins/root_group_spec.rb +0 -41
  26. data/spec/functional/plugins/windows/uptime_spec.rb +0 -51
  27. data/spec/ohai_spec.rb +0 -27
  28. data/spec/rcov.opts +0 -2
  29. data/spec/spec.opts +0 -2
  30. data/spec/spec_helper.rb +0 -124
  31. data/spec/support/integration_helper.rb +0 -61
  32. data/spec/support/platform_helpers.rb +0 -38
  33. data/spec/unit/application_spec.rb +0 -96
  34. data/spec/unit/config_spec.rb +0 -57
  35. data/spec/unit/dsl/plugin_spec.rb +0 -634
  36. data/spec/unit/hints_spec.rb +0 -65
  37. data/spec/unit/loader_spec.rb +0 -195
  38. data/spec/unit/mixin/azure_metadata_spec.rb +0 -72
  39. data/spec/unit/mixin/command_spec.rb +0 -151
  40. data/spec/unit/mixin/dmi_decode.rb +0 -75
  41. data/spec/unit/mixin/ec2_metadata_spec.rb +0 -88
  42. data/spec/unit/mixin/softlayer_metadata_spec.rb +0 -72
  43. data/spec/unit/plugin_config_spec.rb +0 -117
  44. data/spec/unit/plugins/abort_spec.rb +0 -69
  45. data/spec/unit/plugins/aix/cpu_spec.rb +0 -127
  46. data/spec/unit/plugins/aix/filesystem_spec.rb +0 -238
  47. data/spec/unit/plugins/aix/hostname_spec.rb +0 -33
  48. data/spec/unit/plugins/aix/kernel_spec.rb +0 -61
  49. data/spec/unit/plugins/aix/memory_spec.rb +0 -49
  50. data/spec/unit/plugins/aix/network_spec.rb +0 -313
  51. data/spec/unit/plugins/aix/platform_spec.rb +0 -44
  52. data/spec/unit/plugins/aix/uptime_spec.rb +0 -42
  53. data/spec/unit/plugins/aix/virtualization_spec.rb +0 -319
  54. data/spec/unit/plugins/azure_spec.rb +0 -243
  55. data/spec/unit/plugins/bsd/filesystem_spec.rb +0 -138
  56. data/spec/unit/plugins/bsd/virtualization_spec.rb +0 -145
  57. data/spec/unit/plugins/c_spec.rb +0 -341
  58. data/spec/unit/plugins/chef_spec.rb +0 -44
  59. data/spec/unit/plugins/cloud_spec.rb +0 -484
  60. data/spec/unit/plugins/darwin/cpu_spec.rb +0 -124
  61. data/spec/unit/plugins/darwin/filesystem_spec.rb +0 -140
  62. data/spec/unit/plugins/darwin/hardware_spec.rb +0 -105
  63. data/spec/unit/plugins/darwin/hardware_system_profiler_output.rb +0 -1110
  64. data/spec/unit/plugins/darwin/hostname_spec.rb +0 -43
  65. data/spec/unit/plugins/darwin/kernel_spec.rb +0 -65
  66. data/spec/unit/plugins/darwin/memory_spec.rb +0 -64
  67. data/spec/unit/plugins/darwin/network_spec.rb +0 -849
  68. data/spec/unit/plugins/darwin/platform_spec.rb +0 -71
  69. data/spec/unit/plugins/darwin/virtualization_spec.rb +0 -156
  70. data/spec/unit/plugins/digital_ocean_spec.rb +0 -106
  71. data/spec/unit/plugins/dmi_spec.rb +0 -156
  72. data/spec/unit/plugins/docker_spec.rb +0 -100
  73. data/spec/unit/plugins/ec2_spec.rb +0 -452
  74. data/spec/unit/plugins/elixir_spec.rb +0 -55
  75. data/spec/unit/plugins/erlang_spec.rb +0 -71
  76. data/spec/unit/plugins/eucalyptus_spec.rb +0 -109
  77. data/spec/unit/plugins/fail_spec.rb +0 -260
  78. data/spec/unit/plugins/freebsd/cpu_spec.rb +0 -129
  79. data/spec/unit/plugins/freebsd/hostname_spec.rb +0 -35
  80. data/spec/unit/plugins/freebsd/kernel_spec.rb +0 -36
  81. data/spec/unit/plugins/freebsd/platform_spec.rb +0 -38
  82. data/spec/unit/plugins/gce_spec.rb +0 -81
  83. data/spec/unit/plugins/go_spec.rb +0 -48
  84. data/spec/unit/plugins/groovy_spec.rb +0 -66
  85. data/spec/unit/plugins/haskell_spec.rb +0 -231
  86. data/spec/unit/plugins/hostname_spec.rb +0 -162
  87. data/spec/unit/plugins/init_package_spec.rb +0 -60
  88. data/spec/unit/plugins/java_spec.rb +0 -230
  89. data/spec/unit/plugins/joyent_spec.rb +0 -100
  90. data/spec/unit/plugins/kernel_spec.rb +0 -38
  91. data/spec/unit/plugins/linode_spec.rb +0 -135
  92. data/spec/unit/plugins/linux/block_device_spec.rb +0 -75
  93. data/spec/unit/plugins/linux/cpu_spec.rb +0 -441
  94. data/spec/unit/plugins/linux/filesystem_spec.rb +0 -550
  95. data/spec/unit/plugins/linux/fips_spec.rb +0 -60
  96. data/spec/unit/plugins/linux/hostname_spec.rb +0 -52
  97. data/spec/unit/plugins/linux/hostnamectl_spec.rb +0 -59
  98. data/spec/unit/plugins/linux/kernel_spec.rb +0 -71
  99. data/spec/unit/plugins/linux/lsb_spec.rb +0 -147
  100. data/spec/unit/plugins/linux/lspci_spec.rb +0 -133
  101. data/spec/unit/plugins/linux/machineid_spec.rb +0 -46
  102. data/spec/unit/plugins/linux/mdadm_spec.rb +0 -170
  103. data/spec/unit/plugins/linux/memory_spec.rb +0 -256
  104. data/spec/unit/plugins/linux/network_spec.rb +0 -1392
  105. data/spec/unit/plugins/linux/platform_spec.rb +0 -812
  106. data/spec/unit/plugins/linux/sessions_spec.rb +0 -98
  107. data/spec/unit/plugins/linux/sysctl_spec.rb +0 -53
  108. data/spec/unit/plugins/linux/systemd_paths_spec.rb +0 -122
  109. data/spec/unit/plugins/linux/uptime_spec.rb +0 -48
  110. data/spec/unit/plugins/linux/virtualization_spec.rb +0 -650
  111. data/spec/unit/plugins/lua_spec.rb +0 -60
  112. data/spec/unit/plugins/mono_spec.rb +0 -67
  113. data/spec/unit/plugins/netbsd/hostname_spec.rb +0 -43
  114. data/spec/unit/plugins/netbsd/kernel_spec.rb +0 -35
  115. data/spec/unit/plugins/netbsd/platform_spec.rb +0 -38
  116. data/spec/unit/plugins/network_spec.rb +0 -1078
  117. data/spec/unit/plugins/nodejs_spec.rb +0 -55
  118. data/spec/unit/plugins/ohai_spec.rb +0 -32
  119. data/spec/unit/plugins/ohai_time_spec.rb +0 -44
  120. data/spec/unit/plugins/openbsd/hostname_spec.rb +0 -43
  121. data/spec/unit/plugins/openbsd/kernel_spec.rb +0 -36
  122. data/spec/unit/plugins/openbsd/platform_spec.rb +0 -33
  123. data/spec/unit/plugins/openstack_spec.rb +0 -311
  124. data/spec/unit/plugins/os_spec.rb +0 -115
  125. data/spec/unit/plugins/packages_spec.rb +0 -353
  126. data/spec/unit/plugins/passwd_spec.rb +0 -65
  127. data/spec/unit/plugins/perl_spec.rb +0 -62
  128. data/spec/unit/plugins/php_spec.rb +0 -97
  129. data/spec/unit/plugins/platform_spec.rb +0 -65
  130. data/spec/unit/plugins/powershell_spec.rb +0 -71
  131. data/spec/unit/plugins/python_spec.rb +0 -51
  132. data/spec/unit/plugins/rackspace_spec.rb +0 -350
  133. data/spec/unit/plugins/root_group_spec.rb +0 -90
  134. data/spec/unit/plugins/ruby_spec.rb +0 -60
  135. data/spec/unit/plugins/rust_spec.rb +0 -43
  136. data/spec/unit/plugins/scala_spec.rb +0 -58
  137. data/spec/unit/plugins/scaleway_spec.rb +0 -93
  138. data/spec/unit/plugins/scsi_spec.rb +0 -69
  139. data/spec/unit/plugins/shard_spec.rb +0 -121
  140. data/spec/unit/plugins/shells_spec.rb +0 -56
  141. data/spec/unit/plugins/softlayer_spec.rb +0 -60
  142. data/spec/unit/plugins/solaris2/cpu_spec.rb +0 -2926
  143. data/spec/unit/plugins/solaris2/dmi_spec.rb +0 -153
  144. data/spec/unit/plugins/solaris2/filesystem.rb +0 -407
  145. data/spec/unit/plugins/solaris2/hostname_spec.rb +0 -37
  146. data/spec/unit/plugins/solaris2/kernel_spec.rb +0 -183
  147. data/spec/unit/plugins/solaris2/memory_spec.rb +0 -43
  148. data/spec/unit/plugins/solaris2/network_spec.rb +0 -201
  149. data/spec/unit/plugins/solaris2/platform_spec.rb +0 -108
  150. data/spec/unit/plugins/solaris2/virtualization_spec.rb +0 -97
  151. data/spec/unit/plugins/ssh_host_keys_spec.rb +0 -116
  152. data/spec/unit/plugins/sysconf_spec.rb +0 -680
  153. data/spec/unit/plugins/timezone_spec.rb +0 -30
  154. data/spec/unit/plugins/vbox_host_spec.rb +0 -14
  155. data/spec/unit/plugins/virtualbox_spec.rb +0 -375
  156. data/spec/unit/plugins/vmware_spec.rb +0 -81
  157. data/spec/unit/plugins/windows/cpu_spec.rb +0 -118
  158. data/spec/unit/plugins/windows/filesystem_spec.rb +0 -226
  159. data/spec/unit/plugins/windows/fips_spec.rb +0 -60
  160. data/spec/unit/plugins/windows/kernel_spec.rb +0 -79
  161. data/spec/unit/plugins/windows/memory_spec.rb +0 -52
  162. data/spec/unit/plugins/windows/network_spec.rb +0 -137
  163. data/spec/unit/plugins/windows/system_enclosure_spec.rb +0 -45
  164. data/spec/unit/plugins/windows/uptime_spec.rb +0 -38
  165. data/spec/unit/plugins/windows/virtualization_spec.rb +0 -63
  166. data/spec/unit/plugins/zpools_spec.rb +0 -244
  167. data/spec/unit/provides_map_spec.rb +0 -208
  168. data/spec/unit/runner_spec.rb +0 -422
  169. data/spec/unit/system_spec.rb +0 -416
  170. data/spec/unit/util/file_helper_spec.rb +0 -47
  171. data/spec/unit/util/ip_helper_spec.rb +0 -128
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 070acba85ad3bc1dd6ea7dddb1ceee6a6d0cb87303c645cd718b5edc9e14005d
4
- data.tar.gz: 52dcc619042c133354ac464ab982f4a0ba7080fbc2c5bf8d05940bb2f1e48309
3
+ metadata.gz: 257f27a9e93bbd45470aa2e42c2a9e1e503e8d2e6568a5cbca4d8d964724e854
4
+ data.tar.gz: aa10fc60bdf94170e7d14f9bf38278974baf68995869c7a9467f45081d193e61
5
5
  SHA512:
6
- metadata.gz: 5cfd43b461e597cd9a9eb4b62e874d7d7618ded26f93604cc8eefa2f537e7ca9c360668b490ce0a6cdef7c450e1c975b6b4600ded5b60bc766ac07eed211fd23
7
- data.tar.gz: 792591a83cd68ed3dd92d96a329392f95fcd82ef23e3e9843d47018ccb7f8ede208cad19d18588352cc60cb15d958c0cd2db8bbd2a5038b9facd7323a3b74816
6
+ metadata.gz: 2595eef2b22bcafea6af89415c1ab6566036badb6b8ffba253be3ada2529632ad8210201d38bd5b56d2087cb5b2f2f513479a77ba8e0af5385ade1c250ae50dc
7
+ data.tar.gz: 4b8c0e3daa5eda327ce6f48f4c7ed34f7e045262e68a3f99c7e78667cc00f15ec4674c37efe4f134c71768841635739cfef06814b598c435cf70cd0d4058ffdb
data/Gemfile CHANGED
@@ -29,9 +29,3 @@ group :debug do
29
29
  gem "pry-stack_explorer"
30
30
  gem "rb-readline"
31
31
  end
32
-
33
- instance_eval(ENV["GEMFILE_MOD"]) if ENV["GEMFILE_MOD"]
34
-
35
- # If you want to load debugging tools into the bundle exec sandbox,
36
- # add these additional dependencies into Gemfile.local
37
- eval_gemfile(__FILE__ + ".local") if File.exist?(__FILE__ + ".local")
@@ -19,11 +19,18 @@
19
19
 
20
20
  module Ohai
21
21
  module Mixin
22
- module NetworkConstants
22
+ module NetworkHelper
23
23
  FAMILIES = {
24
24
  "inet" => "default",
25
25
  "inet6" => "default_inet6",
26
26
  }.freeze
27
+
28
+ def hex_to_dec_netmask(netmask)
29
+ # example 'ffff0000' -> '255.255.0.0'
30
+ dec = netmask[0..1].to_i(16).to_s(10)
31
+ [2, 4, 6].each { |n| dec = dec + "." + netmask[n..n + 1].to_i(16).to_s(10) }
32
+ dec
33
+ end
27
34
  end
28
35
  end
29
36
  end
@@ -20,16 +20,11 @@
20
20
 
21
21
  Ohai.plugin(:Network) do
22
22
  require "ipaddr"
23
+ require_relative "../../mixin/network_helper"
23
24
 
24
25
  provides "network", "counters/network", "macaddress"
25
26
 
26
- # Helpers
27
- def hex_to_dec_netmask(netmask)
28
- # example '0xffff0000' -> '255.255.0.0'
29
- dec = netmask[2..3].to_i(16).to_s(10)
30
- [4, 6, 8].each { |n| dec = dec + "." + netmask[n..n + 1].to_i(16).to_s(10) }
31
- dec
32
- end
27
+ include Ohai::Mixin::NetworkHelper
33
28
 
34
29
  collect_data(:aix) do
35
30
  # Loads following information.
@@ -80,7 +75,7 @@ Ohai.plugin(:Network) do
80
75
  if lin =~ %r{inet (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(/(\d{1,2}))?}
81
76
  tmp_addr, tmp_prefix = $1, $3
82
77
  if tmp_prefix.nil?
83
- netmask = hex_to_dec_netmask($1) if lin =~ /netmask\s(\S+)\s/
78
+ netmask = hex_to_dec_netmask($1) if lin =~ /netmask\s0x(\S+)\s/
84
79
  unless netmask
85
80
  tmp_prefix ||= "32"
86
81
  netmask = IPAddr.new("255.255.255.255").mask(tmp_prefix.to_i).to_s
@@ -17,9 +17,13 @@
17
17
  #
18
18
 
19
19
  Ohai.plugin(:Network) do
20
+ require_relative "../../mixin/network_helper"
21
+
20
22
  provides "network", "network/interfaces"
21
23
  provides "counters/network", "counters/network/interfaces"
22
24
 
25
+ include Ohai::Mixin::NetworkHelper
26
+
23
27
  def parse_media(media_string)
24
28
  media = {}
25
29
  line_array = media_string.split(" ")
@@ -87,8 +91,6 @@ Ohai.plugin(:Network) do
87
91
  end
88
92
 
89
93
  collect_data(:darwin) do
90
- require "scanf"
91
-
92
94
  network Mash.new unless network
93
95
  network[:interfaces] ||= Mash.new
94
96
  counters Mash.new unless counters
@@ -138,11 +140,11 @@ Ohai.plugin(:Network) do
138
140
  end
139
141
  if line =~ /\s+inet (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) netmask 0x(([0-9a-f]){1,8})\s*$/
140
142
  iface[cint][:addresses] ||= Mash.new
141
- iface[cint][:addresses][$1] = { "family" => "inet", "netmask" => $2.scanf("%2x" * 4) * "." }
143
+ iface[cint][:addresses][$1] = { "family" => "inet", "netmask" => hex_to_dec_netmask($2) }
142
144
  end
143
145
  if line =~ /\s+inet (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) netmask 0x(([0-9a-f]){1,8}) broadcast (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/
144
146
  iface[cint][:addresses] ||= Mash.new
145
- iface[cint][:addresses][$1] = { "family" => "inet", "netmask" => $2.scanf("%2x" * 4) * ".", "broadcast" => $4 }
147
+ iface[cint][:addresses][$1] = { "family" => "inet", "netmask" => hex_to_dec_netmask($2) , "broadcast" => $4 }
146
148
  end
147
149
  if line =~ /\s+inet6 ([a-f0-9\:]+)(\s*|(\%[a-z0-9]+)\s*) prefixlen (\d+)\s*/
148
150
  iface[cint][:addresses] ||= Mash.new
@@ -107,6 +107,14 @@ Ohai.plugin(:Filesystem) do
107
107
  view
108
108
  end
109
109
 
110
+ def generate_deprecated_windows_view(fs)
111
+ view = generate_mountpoint_view(fs)
112
+ view.each do |mp, entry|
113
+ view[mp].delete("devices")
114
+ end
115
+ view
116
+ end
117
+
110
118
  def generate_deprecated_solaris_view(fs, old_zfs)
111
119
  view = generate_deprecated_view(fs)
112
120
  old_zfs.each do |fsname, attributes|
@@ -153,6 +161,143 @@ Ohai.plugin(:Filesystem) do
153
161
  logger.warn("Plugin Filesystem: #{bin} binary is not available. Some data will not be available.")
154
162
  end
155
163
 
164
+ ### Windows specific methods BEGINS
165
+ # Volume encryption or decryption status
166
+ #
167
+ # @see https://docs.microsoft.com/en-us/windows/desktop/SecProv/getconversionstatus-win32-encryptablevolume#parameters
168
+ #
169
+ CONVERSION_STATUS ||= %w{
170
+ FullyDecrypted FullyEncrypted EncryptionInProgress
171
+ DecryptionInProgress EncryptionPaused DecryptionPaused
172
+ }.freeze
173
+
174
+ # Returns a Mash loaded with logical details
175
+ #
176
+ # Uses Win32_LogicalDisk and logical_properties to return encryption details of volumes.
177
+ #
178
+ # Returns an empty Mash in case of any WMI exception.
179
+ #
180
+ # @see https://docs.microsoft.com/en-us/windows/desktop/CIMWin32Prov/win32-logicaldisk
181
+ #
182
+ # @return [Mash]
183
+ #
184
+ def logical_info
185
+ wmi = WmiLite::Wmi.new("Root\\CIMV2")
186
+
187
+ # Note: we should really be parsing Win32_Volume and Win32_Mapped drive.
188
+ disks = wmi.instances_of("Win32_LogicalDisk")
189
+ logical_properties(disks)
190
+ rescue WmiLite::WmiException
191
+ Ohai::Log.debug("Unable to access Win32_LogicalDisk. Skipping logical details")
192
+ Mash.new
193
+ end
194
+
195
+ # Returns a Mash loaded with encryption details
196
+ #
197
+ # Uses Win32_EncryptableVolume and encryption_properties to return encryption details of volumes.
198
+ #
199
+ # Returns an empty Mash in case of any WMI exception.
200
+ #
201
+ # @note We are fetching Encryption Status only as of now
202
+ #
203
+ # @see https://msdn.microsoft.com/en-us/library/windows/desktop/aa376483(v=vs.85).aspx
204
+ #
205
+ # @return [Mash]
206
+ #
207
+ def encryptable_info
208
+ wmi = WmiLite::Wmi.new("Root\\CIMV2\\Security\\MicrosoftVolumeEncryption")
209
+ disks = wmi.instances_of("Win32_EncryptableVolume")
210
+ encryption_properties(disks)
211
+ rescue WmiLite::WmiException
212
+ Ohai::Log.debug("Unable to access Win32_EncryptableVolume. Skipping encryptable details")
213
+ Mash.new
214
+ end
215
+
216
+ # Refines and calculates logical properties out of given instances.
217
+ #
218
+ # Note that :device here is the same as Volume name and there for compatibility with other OSes.
219
+ #
220
+ # @param [WmiLite::Wmi::Instance] disks
221
+ #
222
+ # @return [Mash] Each drive containing following properties:
223
+ #
224
+ # * :kb_size (Integer)
225
+ # * :kb_available (Integer)
226
+ # * :kb_used (Integer)
227
+ # * :percent_used (Integer)
228
+ # * :mount (String)
229
+ # * :fs_type (String)
230
+ # * :volume_name (String)
231
+ # * :device (String)
232
+ #
233
+ def logical_properties(disks)
234
+ properties = Mash.new
235
+ disks.each do |disk|
236
+ property = Mash.new
237
+ # In windows the closet thing we have to a device is the volume_name
238
+ # and the "mountpoint" is the drive letter...
239
+ device = disk["volume_name"].to_s.downcase
240
+ mount = disk["deviceid"]
241
+ property[:kb_size] = disk["size"] ? disk["size"].to_i / 1000 : 0
242
+ property[:kb_available] = disk["freespace"].to_i / 1000
243
+ property[:kb_used] = property[:kb_size] - property[:kb_available]
244
+ property[:percent_used] = (property[:kb_size] == 0 ? 0 : (property[:kb_used] * 100 / property[:kb_size]))
245
+ property[:mount] = mount
246
+ property[:fs_type] = disk["filesystem"].to_s.downcase
247
+ property[:volume_name] = device
248
+ property[:device] = device
249
+
250
+ key = "#{device},#{mount}"
251
+ properties[key] = property
252
+ end
253
+ properties
254
+ end
255
+
256
+ # Refines and calculates encryption properties out of given instances
257
+ #
258
+ # @param [WmiLite::Wmi::Instance] disks
259
+ #
260
+ # @return [Mash] Each drive containing following properties:
261
+ #
262
+ # * :encryption_status (String)
263
+ #
264
+ def encryption_properties(disks)
265
+ properties = Mash.new
266
+ disks.each do |disk|
267
+ property = Mash.new
268
+ property[:encryption_status] = disk["conversionstatus"] ? CONVERSION_STATUS[disk["conversionstatus"]] : ""
269
+ key = disk["driveletter"]
270
+ properties[key] = property
271
+ end
272
+ properties
273
+ end
274
+
275
+ # Merges all the various properties of filesystems
276
+ #
277
+ # @param [Array<Mash>] disks_info
278
+ # Array of the Mashes containing disk properties
279
+ #
280
+ # @return [Mash]
281
+ #
282
+ def merge_info(logical_info, encryption_info)
283
+ fs = Mash.new
284
+
285
+ encryption_keys_used = Set.new
286
+ logical_info.each do |key, info|
287
+ if encryption_info[info["mount"]]
288
+ encryption_keys_used.add(info["mount"])
289
+ fs[key] = info.merge(encryption_info[info["mount"]])
290
+ else
291
+ fs[key] = info.dup
292
+ end
293
+ end
294
+ left_enc = encryption_info.reject { |x| encryption_keys_used.include?(x) }
295
+ left_enc.each do |key, info|
296
+ fs[",#{key}"] = info
297
+ end
298
+ fs
299
+ end
300
+
156
301
  collect_data(:linux) do
157
302
  fs = Mash.new
158
303
 
@@ -599,4 +744,25 @@ Ohai.plugin(:Filesystem) do
599
744
  filesystem generate_deprecated_view(fs)
600
745
  filesystem2 fs_data
601
746
  end
747
+
748
+ collect_data(:windows) do
749
+ require "wmi-lite/wmi"
750
+ require "ohai/mash"
751
+
752
+ fs = merge_info(logical_info, encryptable_info)
753
+
754
+ by_pair = fs
755
+ by_device = generate_device_view(fs)
756
+ by_mountpoint = generate_mountpoint_view(fs)
757
+
758
+ fs_data = Mash.new
759
+ fs_data["by_device"] = by_device
760
+ fs_data["by_mountpoint"] = by_mountpoint
761
+ fs_data["by_pair"] = by_pair
762
+
763
+ # Set the filesystem data - Windows didn't do the conversion when everyone
764
+ # else did, so 15 will have both be the new API and 16 will drop the old API
765
+ filesystem generate_deprecated_windows_view(fs)
766
+ filesystem2 fs_data
767
+ end
602
768
  end
@@ -18,8 +18,8 @@
18
18
 
19
19
  Ohai.plugin(:NetworkAddresses) do
20
20
  require "ipaddress"
21
- require_relative "../mixin/network_constants"
22
- include Ohai::Mixin::NetworkConstants
21
+ require_relative "../mixin/network_helper"
22
+ include Ohai::Mixin::NetworkHelper
23
23
 
24
24
  provides "ipaddress", "ip6address", "macaddress"
25
25
 
@@ -69,8 +69,8 @@ Ohai.plugin(:NetworkAddresses) do
69
69
  return [ nil, nil ] if ips.empty?
70
70
 
71
71
  # shortcuts to access default #{family} interface and gateway
72
- int_attr = Ohai::Mixin::NetworkConstants::FAMILIES[family] + "_interface"
73
- gw_attr = Ohai::Mixin::NetworkConstants::FAMILIES[family] + "_gateway"
72
+ int_attr = Ohai::Mixin::NetworkHelper::FAMILIES[family] + "_interface"
73
+ gw_attr = Ohai::Mixin::NetworkHelper::FAMILIES[family] + "_gateway"
74
74
 
75
75
  if network[int_attr]
76
76
  # working with the address(es) of the default network interface
@@ -142,7 +142,7 @@ Ohai.plugin(:NetworkAddresses) do
142
142
  counters[:network] ||= Mash.new
143
143
 
144
144
  # inet family is processed before inet6 to give ipv4 precedence
145
- Ohai::Mixin::NetworkConstants::FAMILIES.keys.sort.each do |family|
145
+ Ohai::Mixin::NetworkHelper::FAMILIES.keys.sort.each do |family|
146
146
  r = {}
147
147
  # find the ip/interface with the default route for this family
148
148
  (r["ip"], r["iface"]) = find_ip(family)
@@ -45,7 +45,8 @@ Ohai.plugin(:Openstack) do
45
45
  end
46
46
  end
47
47
 
48
- # dreamhost systems have the dhc-user on them
48
+ # dreamhost systems *had* the dhc-user on them < 2016. We should probably remove all this logic
49
+ # https://help.dreamhost.com/hc/en-us/articles/228377408-How-to-find-the-default-user-of-an-image
49
50
  def openstack_provider
50
51
  # dream host doesn't support windows so bail early if we're on windows
51
52
  return "openstack" if RUBY_PLATFORM =~ /mswin|mingw32|windows/
@@ -63,9 +63,13 @@ unless defined?(ETHERNET_ENCAPS)
63
63
  end
64
64
 
65
65
  Ohai.plugin(:Network) do
66
+ require_relative "../../mixin/network_helper"
67
+
66
68
  provides "network", "network/interfaces"
67
69
  provides "counters/network", "counters/network/interfaces"
68
70
 
71
+ include Ohai::Mixin::NetworkHelper
72
+
69
73
  def solaris_encaps_lookup(ifname)
70
74
  return "Ethernet" if ETHERNET_ENCAPS.include?(ifname)
71
75
  return "Ethernet" if ifname.eql?("net")
@@ -92,8 +96,6 @@ Ohai.plugin(:Network) do
92
96
  end
93
97
 
94
98
  collect_data(:solaris2) do
95
- require "scanf"
96
-
97
99
  iface = Mash.new
98
100
  network Mash.new unless network
99
101
  network[:interfaces] ||= Mash.new
@@ -124,11 +126,11 @@ Ohai.plugin(:Network) do
124
126
  end
125
127
  if line =~ /\s+inet (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) netmask (([0-9a-f]){1,8})\s*$/
126
128
  iface[cint][:addresses] ||= Mash.new
127
- iface[cint][:addresses][$1] = { "family" => "inet", "netmask" => $2.scanf("%2x" * 4) * "." }
129
+ iface[cint][:addresses][$1] = { "family" => "inet", "netmask" => hex_to_dec_netmask($2) }
128
130
  end
129
131
  if line =~ /\s+inet (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) netmask (([0-9a-f]){1,8}) broadcast (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/
130
132
  iface[cint][:addresses] ||= Mash.new
131
- iface[cint][:addresses][$1] = { "family" => "inet", "netmask" => $2.scanf("%2x" * 4) * ".", "broadcast" => $4 }
133
+ iface[cint][:addresses][$1] = { "family" => "inet", "netmask" => hex_to_dec_netmask($2) , "broadcast" => $4 }
132
134
  end
133
135
  if line =~ %r{\s+inet6 ([a-f0-9\:]+)(\s*|(\%[a-z0-9]+)\s*)/(\d+)\s*$}
134
136
  iface[cint][:addresses] ||= Mash.new
@@ -18,5 +18,5 @@
18
18
 
19
19
  module Ohai
20
20
  OHAI_ROOT = File.expand_path(File.dirname(__FILE__))
21
- VERSION = "15.3.1".freeze
21
+ VERSION = "15.6.3".freeze
22
22
  end
@@ -34,5 +34,5 @@ Gem::Specification.new do |s|
34
34
  s.executables = %w{ohai}
35
35
 
36
36
  s.require_path = "lib"
37
- s.files = %w{LICENSE Gemfile Rakefile} + Dir.glob("*.gemspec") + Dir.glob("{docs,lib,spec}/**/*")
37
+ s.files = %w{LICENSE Gemfile} + Dir.glob("*.gemspec") + Dir.glob("lib/**/*")
38
38
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ohai
3
3
  version: !ruby/object:Gem::Version
4
- version: 15.3.1
4
+ version: 15.6.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Jacob
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-04 00:00:00.000000000 Z
11
+ date: 2019-12-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: systemu
@@ -197,7 +197,6 @@ extra_rdoc_files: []
197
197
  files:
198
198
  - Gemfile
199
199
  - LICENSE
200
- - Rakefile
201
200
  - bin/ohai
202
201
  - lib/ohai.rb
203
202
  - lib/ohai/application.rb
@@ -219,7 +218,7 @@ files:
219
218
  - lib/ohai/mixin/ec2_metadata.rb
220
219
  - lib/ohai/mixin/gce_metadata.rb
221
220
  - lib/ohai/mixin/http_helper.rb
222
- - lib/ohai/mixin/network_constants.rb
221
+ - lib/ohai/mixin/network_helper.rb
223
222
  - lib/ohai/mixin/os.rb
224
223
  - lib/ohai/mixin/scaleway_metadata.rb
225
224
  - lib/ohai/mixin/seconds_to_human.rb
@@ -329,7 +328,6 @@ files:
329
328
  - lib/ohai/plugins/virtualbox.rb
330
329
  - lib/ohai/plugins/vmware.rb
331
330
  - lib/ohai/plugins/windows/drivers.rb
332
- - lib/ohai/plugins/windows/filesystem.rb
333
331
  - lib/ohai/plugins/windows/fips.rb
334
332
  - lib/ohai/plugins/windows/memory.rb
335
333
  - lib/ohai/plugins/windows/network.rb
@@ -345,163 +343,6 @@ files:
345
343
  - lib/ohai/util/win32.rb
346
344
  - lib/ohai/version.rb
347
345
  - ohai.gemspec
348
- - spec/data/plugins/dpkg-query.output
349
- - spec/data/plugins/lslpp.output
350
- - spec/data/plugins/pacman.output
351
- - spec/data/plugins/pkg-query.output
352
- - spec/data/plugins/pkginfo.output
353
- - spec/data/plugins/pkglist.output
354
- - spec/data/plugins/rpmquery.output
355
- - spec/functional/application_spec.rb
356
- - spec/functional/loader_spec.rb
357
- - spec/functional/plugins/powershell_spec.rb
358
- - spec/functional/plugins/root_group_spec.rb
359
- - spec/functional/plugins/windows/uptime_spec.rb
360
- - spec/ohai_spec.rb
361
- - spec/rcov.opts
362
- - spec/spec.opts
363
- - spec/spec_helper.rb
364
- - spec/support/integration_helper.rb
365
- - spec/support/platform_helpers.rb
366
- - spec/unit/application_spec.rb
367
- - spec/unit/config_spec.rb
368
- - spec/unit/dsl/plugin_spec.rb
369
- - spec/unit/hints_spec.rb
370
- - spec/unit/loader_spec.rb
371
- - spec/unit/mixin/azure_metadata_spec.rb
372
- - spec/unit/mixin/command_spec.rb
373
- - spec/unit/mixin/dmi_decode.rb
374
- - spec/unit/mixin/ec2_metadata_spec.rb
375
- - spec/unit/mixin/softlayer_metadata_spec.rb
376
- - spec/unit/plugin_config_spec.rb
377
- - spec/unit/plugins/abort_spec.rb
378
- - spec/unit/plugins/aix/cpu_spec.rb
379
- - spec/unit/plugins/aix/filesystem_spec.rb
380
- - spec/unit/plugins/aix/hostname_spec.rb
381
- - spec/unit/plugins/aix/kernel_spec.rb
382
- - spec/unit/plugins/aix/memory_spec.rb
383
- - spec/unit/plugins/aix/network_spec.rb
384
- - spec/unit/plugins/aix/platform_spec.rb
385
- - spec/unit/plugins/aix/uptime_spec.rb
386
- - spec/unit/plugins/aix/virtualization_spec.rb
387
- - spec/unit/plugins/azure_spec.rb
388
- - spec/unit/plugins/bsd/filesystem_spec.rb
389
- - spec/unit/plugins/bsd/virtualization_spec.rb
390
- - spec/unit/plugins/c_spec.rb
391
- - spec/unit/plugins/chef_spec.rb
392
- - spec/unit/plugins/cloud_spec.rb
393
- - spec/unit/plugins/darwin/cpu_spec.rb
394
- - spec/unit/plugins/darwin/filesystem_spec.rb
395
- - spec/unit/plugins/darwin/hardware_spec.rb
396
- - spec/unit/plugins/darwin/hardware_system_profiler_output.rb
397
- - spec/unit/plugins/darwin/hostname_spec.rb
398
- - spec/unit/plugins/darwin/kernel_spec.rb
399
- - spec/unit/plugins/darwin/memory_spec.rb
400
- - spec/unit/plugins/darwin/network_spec.rb
401
- - spec/unit/plugins/darwin/platform_spec.rb
402
- - spec/unit/plugins/darwin/virtualization_spec.rb
403
- - spec/unit/plugins/digital_ocean_spec.rb
404
- - spec/unit/plugins/dmi_spec.rb
405
- - spec/unit/plugins/docker_spec.rb
406
- - spec/unit/plugins/ec2_spec.rb
407
- - spec/unit/plugins/elixir_spec.rb
408
- - spec/unit/plugins/erlang_spec.rb
409
- - spec/unit/plugins/eucalyptus_spec.rb
410
- - spec/unit/plugins/fail_spec.rb
411
- - spec/unit/plugins/freebsd/cpu_spec.rb
412
- - spec/unit/plugins/freebsd/hostname_spec.rb
413
- - spec/unit/plugins/freebsd/kernel_spec.rb
414
- - spec/unit/plugins/freebsd/platform_spec.rb
415
- - spec/unit/plugins/gce_spec.rb
416
- - spec/unit/plugins/go_spec.rb
417
- - spec/unit/plugins/groovy_spec.rb
418
- - spec/unit/plugins/haskell_spec.rb
419
- - spec/unit/plugins/hostname_spec.rb
420
- - spec/unit/plugins/init_package_spec.rb
421
- - spec/unit/plugins/java_spec.rb
422
- - spec/unit/plugins/joyent_spec.rb
423
- - spec/unit/plugins/kernel_spec.rb
424
- - spec/unit/plugins/linode_spec.rb
425
- - spec/unit/plugins/linux/block_device_spec.rb
426
- - spec/unit/plugins/linux/cpu_spec.rb
427
- - spec/unit/plugins/linux/filesystem_spec.rb
428
- - spec/unit/plugins/linux/fips_spec.rb
429
- - spec/unit/plugins/linux/hostname_spec.rb
430
- - spec/unit/plugins/linux/hostnamectl_spec.rb
431
- - spec/unit/plugins/linux/kernel_spec.rb
432
- - spec/unit/plugins/linux/lsb_spec.rb
433
- - spec/unit/plugins/linux/lspci_spec.rb
434
- - spec/unit/plugins/linux/machineid_spec.rb
435
- - spec/unit/plugins/linux/mdadm_spec.rb
436
- - spec/unit/plugins/linux/memory_spec.rb
437
- - spec/unit/plugins/linux/network_spec.rb
438
- - spec/unit/plugins/linux/platform_spec.rb
439
- - spec/unit/plugins/linux/sessions_spec.rb
440
- - spec/unit/plugins/linux/sysctl_spec.rb
441
- - spec/unit/plugins/linux/systemd_paths_spec.rb
442
- - spec/unit/plugins/linux/uptime_spec.rb
443
- - spec/unit/plugins/linux/virtualization_spec.rb
444
- - spec/unit/plugins/lua_spec.rb
445
- - spec/unit/plugins/mono_spec.rb
446
- - spec/unit/plugins/netbsd/hostname_spec.rb
447
- - spec/unit/plugins/netbsd/kernel_spec.rb
448
- - spec/unit/plugins/netbsd/platform_spec.rb
449
- - spec/unit/plugins/network_spec.rb
450
- - spec/unit/plugins/nodejs_spec.rb
451
- - spec/unit/plugins/ohai_spec.rb
452
- - spec/unit/plugins/ohai_time_spec.rb
453
- - spec/unit/plugins/openbsd/hostname_spec.rb
454
- - spec/unit/plugins/openbsd/kernel_spec.rb
455
- - spec/unit/plugins/openbsd/platform_spec.rb
456
- - spec/unit/plugins/openstack_spec.rb
457
- - spec/unit/plugins/os_spec.rb
458
- - spec/unit/plugins/packages_spec.rb
459
- - spec/unit/plugins/passwd_spec.rb
460
- - spec/unit/plugins/perl_spec.rb
461
- - spec/unit/plugins/php_spec.rb
462
- - spec/unit/plugins/platform_spec.rb
463
- - spec/unit/plugins/powershell_spec.rb
464
- - spec/unit/plugins/python_spec.rb
465
- - spec/unit/plugins/rackspace_spec.rb
466
- - spec/unit/plugins/root_group_spec.rb
467
- - spec/unit/plugins/ruby_spec.rb
468
- - spec/unit/plugins/rust_spec.rb
469
- - spec/unit/plugins/scala_spec.rb
470
- - spec/unit/plugins/scaleway_spec.rb
471
- - spec/unit/plugins/scsi_spec.rb
472
- - spec/unit/plugins/shard_spec.rb
473
- - spec/unit/plugins/shells_spec.rb
474
- - spec/unit/plugins/softlayer_spec.rb
475
- - spec/unit/plugins/solaris2/cpu_spec.rb
476
- - spec/unit/plugins/solaris2/dmi_spec.rb
477
- - spec/unit/plugins/solaris2/filesystem.rb
478
- - spec/unit/plugins/solaris2/hostname_spec.rb
479
- - spec/unit/plugins/solaris2/kernel_spec.rb
480
- - spec/unit/plugins/solaris2/memory_spec.rb
481
- - spec/unit/plugins/solaris2/network_spec.rb
482
- - spec/unit/plugins/solaris2/platform_spec.rb
483
- - spec/unit/plugins/solaris2/virtualization_spec.rb
484
- - spec/unit/plugins/ssh_host_keys_spec.rb
485
- - spec/unit/plugins/sysconf_spec.rb
486
- - spec/unit/plugins/timezone_spec.rb
487
- - spec/unit/plugins/vbox_host_spec.rb
488
- - spec/unit/plugins/virtualbox_spec.rb
489
- - spec/unit/plugins/vmware_spec.rb
490
- - spec/unit/plugins/windows/cpu_spec.rb
491
- - spec/unit/plugins/windows/filesystem_spec.rb
492
- - spec/unit/plugins/windows/fips_spec.rb
493
- - spec/unit/plugins/windows/kernel_spec.rb
494
- - spec/unit/plugins/windows/memory_spec.rb
495
- - spec/unit/plugins/windows/network_spec.rb
496
- - spec/unit/plugins/windows/system_enclosure_spec.rb
497
- - spec/unit/plugins/windows/uptime_spec.rb
498
- - spec/unit/plugins/windows/virtualization_spec.rb
499
- - spec/unit/plugins/zpools_spec.rb
500
- - spec/unit/provides_map_spec.rb
501
- - spec/unit/runner_spec.rb
502
- - spec/unit/system_spec.rb
503
- - spec/unit/util/file_helper_spec.rb
504
- - spec/unit/util/ip_helper_spec.rb
505
346
  homepage: https://github.com/chef/ohai/
506
347
  licenses:
507
348
  - Apache-2.0