#!/usr/bin/expect -f
#
# reboot-newisys -- reboot a newisys system via its management interface
#
# This expect script reboots a newisys machine using its command
# interface.  This is typically accessed over ssh.
#
# usage:
#  reboot-newisys <user> <password> <connect command> ...
#
# examples:
#  reboot-newisys USERID PASSW0RD ssh 1.2.3.4
#
# (C) Copyright IBM Corp. 2004, 2005, 2006
# Author: Daniel Sauble <djsauble@us.ibm.com>
#
# The Console Multiplexor is released under the GNU Public License V2
#
set P "reboot-newisys"

if {[llength $argv] != 4} {
	puts stderr "Usage: $P <userid> <password> <type> <machine>"
	exit 1
}
set userid [lindex $argv 0]
set password [lindex $argv 1]
set machine [lindex $argv 3]
set timeout 30

puts "$P: connecting to $machine to initiate reboot ..."

# Log in
eval spawn "ssh -o StrictHostKeyChecking=no $userid\@$machine"
expect "password: "
send -- "$password\r"
expect "localhost \$ "
send "platform get power state\r"

# Check to see if the machine is on or off
# then restart it
expect {
	"On" {send "platform set power state cycle -f\r"}
	"Off" {send "platform set power state on -f\r"}
}
expect "localhost \$ "
expect "localhost \$ "
send "exit\r"

puts "$P: reboot initated"
