-if status_packages["sas2ircu-status"]
- Dir.glob("/sys/class/scsi_host/host*") do |host|
- driver = File.new("#{host}/proc_name").read.chomp
-
- next unless driver == "mpt2sas" || driver == "mpt3sas"
-
- bus = host.sub("/sys/class/scsi_host/host", "")
-
- Dir.glob("/sys/bus/scsi/devices/#{bus}:0:*/scsi_generic/*").each do |sg|
- next if File.directory?("#{sg}/../../block")
-
- disks << { :device => File.basename(sg) }
- end
- end
-end
-
-if status_packages["aacraid-status"]
- Dir.glob("/sys/class/scsi_host/host*") do |host|
- driver = File.new("#{host}/proc_name").read.chomp
-
- next unless driver == "aacraid"
-
- bus = host.sub("/sys/class/scsi_host/host", "")
-
- Dir.glob("/sys/bus/scsi/devices/#{bus}:1:*/scsi_generic/*").each do |sg|
- disks << { :device => File.basename(sg) }
- end
- end
-end
-
-if tools_packages.include?("areca") && File.exist?("/opt/areca/x86_64/cli64")
- device = IO.popen(["lsscsi", "-g"]).grep(%r{Areca +RAID controller .*/dev/(sg[0-9]+)}) do
- Regexp.last_match[1]
- end.first
-
- IO.popen(["/opt/areca/x86_64/cli64", "disk", "info"]).each do |line|
- next if line =~ /N\.A\./
-
- if line =~ /^ +[0-9]+ +0*([0-9]+) +(?:Slot#|SLOT )0*([0-9]+) +/
- enc = Regexp.last_match[1]
- slot = Regexp.last_match[2]
-
- disks << { :device => device, :driver => "areca", :id => "#{slot}/#{enc}" }
- elsif line =~ /^ +([0-9]+) +[0-9]+ +/
- disks << { :device => device, :driver => "areca", :id => Regexp.last_match[1] }
- end
- end
-end
-
-disks.each do |disk|
- if disk[:device] =~ %r{^cciss/(.*)$}
- id = File.read("/sys/bus/cciss/devices/#{Regexp.last_match[1]}/unique_id").chomp
-
- disk[:munin] = "cciss-3#{id.downcase}"
- else
- disk[:munin] = disk[:device]
- end
-
- if disk[:id]
- disk[:munin] = "#{disk[:munin]}-#{disk[:id].to_s.tr('/', ':')}"
- end
-
- disk[:hddtemp] = disk[:munin].tr("-:", "_")
-end