X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=facts%2Fraidcontroller.rb;h=12d140fd078ae57347a77146c0befcf0fc0fa9ff;hb=37822cb6b7be585e3eb181b916161b736d2e2358;hp=5ec322ace81ee65c77b56673f5dd8bab59035a8d;hpb=7119e520e83510aa45affaecd9da898d0acb3010;p=mirror%2Fdsa-puppet.git diff --git a/facts/raidcontroller.rb b/facts/raidcontroller.rb index 5ec322ace..12d140fd0 100644 --- a/facts/raidcontroller.rb +++ b/facts/raidcontroller.rb @@ -1,15 +1,48 @@ -Facter.add("raidcontroller") do - confine :kernel => :linux - ENV["PATH"]="/bin:/sbin:/usr/bin:/usr/sbin" - setcode do - controllers = [] - lspciexists = system "/bin/bash -c 'which lspci >&/dev//null'" - if $?.exitstatus == 0 - output = %x{lspci} - output.each { |s| - controllers.push($1) if s =~ /RAID bus controller: (.*)/ +Facter.add("smartarraycontroller") do + confine :kernel => :linux + ENV["PATH"]="/bin:/sbin:/usr/bin:/usr/sbin" + setcode do + ishp = "false" + lspciexists = system "/bin/bash -c 'which lspci >&/dev//null'" + if $?.exitstatus == 0 + %x{lspci}.each { |s| + ishp = "true" if s =~ /RAID bus controller: (.*) Smart Array/ + } + end + ishp == "true" + end +end + +Facter.add("mptcontroller") do + confine :kernel => :linux + setcode do + FileTest.exist?("/proc/mpt/summary") + end +end + +Facter.add("3warecontroller") do + confine :kernel => :linux + setcode do + is3w = "false" + if FileTest.exist?("/proc/scsi/scsi") + IO.foreach("/proc/scsi/scsi") { |x| + is3w = "true" if x =~ /Vendor: 3ware/ + } + end + is3w == "true" + end +end + +Facter.add("swraid") do + confine :kernel => :linux + setcode do + swraid = "false" + if FileTest.exist?("/proc/mdstat") && FileTest.exist?("/sbin/mdadm") + IO.foreach("/proc/mdstat") { |x| + swraid = "true" if x =~ /md[0-9]+ : active/ } end - controllers - end + swraid == "true" + end end +