lib/facter/facts/linux/disks.rb in facter-4.0.35 vs lib/facter/facts/linux/disks.rb in facter-4.0.36
- old
+ new
@@ -2,14 +2,33 @@
module Facts
module Linux
class Disks
FACT_NAME = 'disks'
+ ALIASES = %w[blockdevices blockdevice_.*_model blockdevice_.*_size blockdevice_.*_vendor'].freeze
def call_the_resolver
+ facts = []
disks = Facter::Resolvers::Linux::Disk.resolve(:disks)
- Facter::ResolvedFact.new(FACT_NAME, disks)
+ return Facter::ResolvedFact.new(FACT_NAME, nil) if disks.nil? || disks.empty?
+
+ blockdevices = disks.keys.join(',')
+ facts.push(Facter::ResolvedFact.new(FACT_NAME, disks))
+ facts.push(Facter::ResolvedFact.new('blockdevices', blockdevices, :legacy))
+ add_legacy_facts(disks, facts)
+
+ facts
+ end
+
+ private
+
+ def add_legacy_facts(disks, facts)
+ disks.each do |disk_name, disk_info|
+ facts.push(Facter::ResolvedFact.new("blockdevice_#{disk_name}_model", disk_info[:model], :legacy))
+ facts.push(Facter::ResolvedFact.new("blockdevice_#{disk_name}_size", disk_info[:size_bytes].to_s, :legacy))
+ facts.push(Facter::ResolvedFact.new("blockdevice_#{disk_name}_vendor", disk_info[:vendor], :legacy))
+ end
end
end
end
end