diff options
author | Pete Higgins <pete@peterhiggins.org> | 2020-04-09 17:32:41 -0700 |
---|---|---|
committer | Pete Higgins <pete@peterhiggins.org> | 2020-04-15 16:51:50 -0700 |
commit | 4bba1b979c21ae7799e6075c570042df6c84a4f3 (patch) | |
tree | fb657c9f73d83de5ee5d49926ab346697ab4c3ff | |
parent | 64b4979503f070d0da7f6ae2fd138cb9a41d67b0 (diff) | |
download | ohai-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.rb | 28 |
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 |