#!/usr/bin/expect
#
# Reboot a machine connected to a Lantronix SLC8
#
# Copyright 2008 Google Inc., Scott Zawalski <scottz@google.com>
# Released under the GPL v2

set P "reboot-lantronix"

if {[llength $argv] < 3} {
    puts stderr "Usage: $P <ts host> <ts port> <outlet>"
    exit 1
}

#Max number of attempts before stopping
set max_attempts {5}
set tshost [lindex $argv 0]
set tsport [lindex $argv 1]
set outlet [lindex $argv 2]
set connected {0}
set attempts {0}

while {$connected == 0 && $attempts < $max_attempts} {
	spawn telnet $tshost $tsport
	sleep 5
	send "\r"
	set timeout 15
	set attempts [expr $attempts +1 ]
	expect {
		#Connection closed
		"Connection closed by foreign host." {
		    puts "Retrying attempt $attempts"
		  }
		#Already logged in
		"RPC-22>" {
		    send "Reboot $outlet\r"
		    expect "Reboot Outlet $outlet"
		    send "Y\r"
		    expect "Rebooting"
		    expect "RPC-22"
		    send "quit\r"
		    puts "Machine successfully rebooted."
		    exit 0
		    }
		timeout {
		    puts "Timed out connecting."
		    }
		}
	}

puts "Unable to connect after $attempts connection attempts."
exit 1
