class Hive::Diagnostic::Tv::Dead

Public Instance Methods

diagnose() click to toggle source
# File lib/hive/diagnostic/tv/dead.rb, line 7
def diagnose
  status = @device_api.status
  case status
  when 'idle'
    self.pass('Device is idle')
  else
    self.fail("Device is #{status}")
  end
end
repair(result) click to toggle source
# File lib/hive/diagnostic/tv/dead.rb, line 17
def repair(result)
  tries = [
    [ :launch_titantv ],
    [ :power_cycle, :launch_titantv ],
    [ :power_on, :launch_titantv ]
  ]

  tries.each do |commands|
    catch :commands_failed do
      commands.each do |command|
        throw :commands_failed if ! @device_api.run_sequence(command)
      end
      timeout = Time.now + 600
      while Time.now < timeout
        if @device_api.status == 'idle'
          return self.pass('Titan TV launched')
        end
        sleep 5
      end
    end
  end

  self.fail("Failed to recover device")
end