+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
+