anchor.diff:          devices[:disks] << disk
           controller[:disks] << disk[:id]
           array[:disks] << disk[:id]
  -      elsif disk && line =~ /^Firmware state:\s+(.*\S)\s*$/
  -        Regexp.last_match(1).split(/,\s*/).each do |state|
  -          case state
  -          when "Unconfigured(bad)" then disk[:status] = "unconfigured"
  -          when "Online" then disk[:status] = "online"
  -          when "Hotspare" then disk[:status] = "hotspare"
  -          when "Failed" then disk[:status] = "failed"
  -          when "Spun Up" then disk[:state] = "spun_up"
  -          when "Spun down" then disk[:state] = "spun_down"
  -          end
  +      elsif disk && line =~ /^Firmware state:\s+(.*\S),\s*(.*\S)\s*$/
  +        case Regexp.last_match(1)
  +        when "Unconfigured(good)" then disk[:status] = "unconfigured"
  +        when "Unconfigured(bad)" then disk[:status] = "unconfigured"
  +        when "Hotspare" then disk[:status] = "hotspare"
  +        when "Offline" then disk[:status] = "offline"
  +        when "Online" then disk[:status] = "online"
  +        when "Rebuild" then disk[:status] = "rebuilding"
  +        when "Failed" then disk[:status] = "failed"
  +        when "Copyback" then disk[:status] = "rebuilding"
  +        else disk[:status] = "unknown"
  +        end
  +        case Regexp.last_match(2)
  +        when "Spun Up" then disk[:state] = "spun_up"
  +        when "Spun down" then disk[:state] = "spun_down"
  +        else disk[:state] = "unknown"
           end
         elsif disk && line =~ /^(\S.*\S)\s*:\s+(\S.*)$/
           case Regexp.last_match(1)
  
positive.code:     end
  
      devices[:disks].each do |disk|
       disk[:smart_device] = "cciss,#{disks.find_index(disk[:location])}"
      end
    end
  
  
negative.code: 
            devices[:disks] << disk
          end
        elsif disk && line =~ /^Firmware state:\s+(.*\S),\s*(.*\S)\s*$/
          case Regexp.last_match(1)
          when "Unconfigured(good)" then disk[:status] = "unconfigured"
          when "Unconfigured(bad)" then disk[:status] = "unconfigured"
          when "Hotspare" then disk[:status] = "hotspare"
          when "Offline" then disk[:status] = "offline"
          when "Online" then disk[:status] = "online"
          when "Rebuild" then disk[:status] = "rebuilding"
          when "Failed" then disk[:status] = "failed"
          when "Copyback" then disk[:status] = "rebuilding"
          else disk[:status] = "unknown"
          end
          case Regexp.last_match(2)
          when "Spun Up" then disk[:state] = "spun_up"
          when "Spun down" then disk[:state] = "spun_down"
          else disk[:state] = "unknown"
          end
        elsif disk && line =~ /^(\S.*\S)\s*:\s+(\S.*)$/
          case Regexp.last_match(1)
  