Page MenuHomePhabricator

disk fact

Authored By
jbond
Aug 24 2021, 11:35 AM
Size
652 B
Referenced Files
None
Subscribers
None

disk fact

require 'facter'
Facter.add(:wmf__disks) do
confine :kernel => 'Linux'
disk_dir = '/sys/block'
disks = {ssd: [], hdd: [], virtual: []}
virtual = Facter.fact('virtual').value
setcode do
if virtual == 'physical'
Dir.each_child(disk_dir) do |disk|
type = File.read(File.join(disk_dir, disk, 'queue/rotational')).strip
if type == '0'
disks[:ssd] << disk
else
disks[:hdd] << disk
end
end
disks[:type] = disks[:hdd].length > disks[:ssd].length ? 'hdd' : 'ssd'
else
disks[:virtual] = Dir.children(disk_dir)
disks[:type] = virtual
end
disks
end
end

File Metadata

Mime Type
text/plain; charset=utf-8
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
9165393
Default Alt Text
disk fact (652 B)

Event Timeline