X-Git-Url: https://git.openstreetmap.org/chef.git/blobdiff_plain/0ab965b5a8f38efddc6ff92651ec7718d9bde015..3ee69a4a0bc0ae69998e3f93f4418b0b7c111dba:/cookbooks/hardware/templates/default/ohai.rb.erb?ds=inline diff --git a/cookbooks/hardware/templates/default/ohai.rb.erb b/cookbooks/hardware/templates/default/ohai.rb.erb index 20a2f7786..a5c2d7505 100644 --- a/cookbooks/hardware/templates/default/ohai.rb.erb +++ b/cookbooks/hardware/templates/default/ohai.rb.erb @@ -11,6 +11,14 @@ Ohai.plugin(:Hardware) do rescue Errno::ENOENT, Errno::EINVAL end + def parse_disk_size(size) + if size =~ /^(\d+(?:\.\d+))?\s*TB/i + sprintf "%dTB", $1.to_f * 2**40 / 1000000000000 + elsif size =~ /^(\d+(?:\.\d+))?\s*GB/i + sprintf "%dGB", $1.to_f * 2**30 / 1000000000 + end + end + def pci_devices device = nil @@ -240,7 +248,7 @@ Ohai.plugin(:Hardware) do when "Device Id" then disk[:smart_devlce] = "megaraid,#{Regexp.last_match(2)}" when "WWN" then disk[:wwn] = Regexp.last_match(2) when "PD Type" then disk[:interface] = Regexp.last_match(2) - when "Raw Size" then disk[:size] = Regexp.last_match(2).sub(/\s*\[.*\]$/, "") + when "Raw Size" then disk[:size] = parse_disk_size(Regexp.last_match(2).sub(/\s*\[.*\]$/, "")) when "Inquiry Data" then disk[:vendor], disk[:model], disk[:serial] = Regexp.last_match(2).split end elsif array && line =~ /^(\S.*\S)\s*:\s+(\S.*)$/ @@ -270,7 +278,7 @@ Ohai.plugin(:Hardware) do when "Device Id" then disk[:smart_devlce] = "megaraid,#{Regexp.last_match(2)}" when "WWN" then disk[:wwn] = Regexp.last_match(2) when "PD Type" then disk[:interface] = Regexp.last_match(2) - when "Raw Size" then disk[:size] = Regexp.last_match(2).sub(/\s*\[.*\]$/, "") + when "Raw Size" then disk[:size] = parse_disk_size(Regexp.last_match(2).sub(/\s*\[.*\]$/, "")) when "Inquiry Data" then disk[:vendor], disk[:model], disk[:serial] = Regexp.last_match(2).split end end