Add smartd monitory for disks on Areca controllers
authorTom Hughes <tom@compton.nu>
Fri, 13 Mar 2015 21:05:04 +0000 (21:05 +0000)
committerTom Hughes <tom@compton.nu>
Fri, 13 Mar 2015 21:10:20 +0000 (21:10 +0000)
cookbooks/hardware/recipes/default.rb

index de695cd..8655780 100644 (file)
@@ -334,6 +334,25 @@ if status_packages["aacraid-status"]
   end
 end
 
+if tools_packages.include?("areca")
+  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
+
 if disks.count > 0
   package "smartmontools"