anchor.diff:      end
   
       controllers.each do |controller|
  +      slot = controller[:slot]
  +
  +      IO.popen(%W(ssacli controller slot=#{slot} pd all show status)).each do |line|
  +        if line =~ /^   physicaldrive (\S+) /
  +          disks << Regexp.last_match(1)
  +        end
  +      end
  +
         if device = Dir.glob("/sys/bus/pci/devices/#{controller[:pci_slot]}/cciss*").first
           controller[:device] = File.basename(device).sub(/^cciss(\d+)$/, "/dev/cciss/c\\1d0")
         elsif device = Dir.glob("/sys/bus/pci/devices/#{controller[:pci_slot]}/host*/target*:3:0/*:3:0:0/scsi_generic/sg*").first
  
positive.code:         disk = nil
        elsif controller && line =~ /^   (\S.*):\s+(.*)$/
          case Regexp.last_match(1)
          when "Serial Number" then controller[:serial_number] = Regexp.last_match(2)
          when "Hardware Revision" then controller[:hardware_version] = Regexp.last_match(2)
          when "Firmware Version" then controller[:firmware_version] = Regexp.last_match(2)
  
negative.code:     disk = nil
  
      IO.popen(%w(ssacli controller all show config detail)).each do |line|
        if line =~ /^Smart (?:Array|HBA) (\S+) /
          controller = {
            :id => devices[:controllers].count,
            :model => Regexp.last_match(1),
  