summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPete Higgins <pete@peterhiggins.org>2020-04-09 17:32:41 -0700
committerPete Higgins <pete@peterhiggins.org>2020-04-15 16:51:50 -0700
commit4bba1b979c21ae7799e6075c570042df6c84a4f3 (patch)
treefb657c9f73d83de5ee5d49926ab346697ab4c3ff
parent64b4979503f070d0da7f6ae2fd138cb9a41d67b0 (diff)
downloadohai-4bba1b979c21ae7799e6075c570042df6c84a4f3.tar.gz
Preserve original key names rather than reconstructing them.
Signed-off-by: Pete Higgins <pete@peterhiggins.org>
-rw-r--r--lib/ohai/plugins/windows/dmi.rb28
1 files changed, 11 insertions, 17 deletions
diff --git a/lib/ohai/plugins/windows/dmi.rb b/lib/ohai/plugins/windows/dmi.rb
index e9c2dc76..1a990bd9 100644
--- a/lib/ohai/plugins/windows/dmi.rb
+++ b/lib/ohai/plugins/windows/dmi.rb
@@ -53,31 +53,25 @@ Ohai.plugin(:DMI) do
DMI_TO_WIN32OLE.each do |dmi_key, ole_key|
wmi_object = wmi.first_of("Win32_#{ole_key}").wmi_ole_object
- properties = wmi_object.properties_.each.with_object({}) do |property, hash|
- split_name = property.name.scan(SPLIT_REGEX).join(" ")
+ split_name_properties = Mash.new
+ properties = Mash.new
- hash[split_name] = wmi_object.invoke(property.name)
+ wmi_object.properties_.each do |property|
+ property_name = property.name
+ value = wmi_object.invoke(property_name)
+
+ split_name = property_name.scan(SPLIT_REGEX).join(" ")
+ split_name_properties[split_name] = value
+ properties[property_name] = value
end
- dmi[dmi_key] = Mash.new(all_records: [Mash.new(properties)])
+ dmi[dmi_key] = Mash.new(all_records: [split_name_properties], _all_records: [properties])
end
Ohai::Common::DMI.convenience_keys(dmi)
dmi.each_value do |records|
- new_all_records = []
-
- records[:all_records].each do |record|
- new_record = Mash.new
-
- record.each do |key, value|
- new_record[key.split(/\s+/).join] = value
- end
-
- new_all_records << new_record
- end
-
- records[:all_records] = new_all_records
+ records[:all_records] = records.delete(:_all_records)
end
end
end