• Leigh Stoller's avatar
    A set of changes to run "prepare" on a node just prior to an image · d8f8f9b4
    Leigh Stoller authored
    being taken.
    
    The basic strategy is to have node_reboot (when -p option supplied)
    invoke a special command on the node that will cause the shutdown
    procedure to run prepare as it goes single user, but before the
    network is turned off and the machine rebooted. The output of the
    prepare run is capture and send back via the tmcd BOOTLOG command and
    stored in the DB, so that create_image can dump that to the logfile
    (so that the person taking the image can know for certain that the
    prepare ran and finished okay).
    
    On linux this is pretty easy to arrange since reboot is actually
    shutdown and shutdown runs the K scripts in /etc/rc.d/rc6.d, and at
    the end the node is basically single user mode. I just added a new
    script to run prepare and send back the output.
    
    On FreeBSD this is a lot harder since there are no decent hooks.
    Instead, I had to hack up init (see tmcd/freebsd/init/{4,5,6}) with
    some simple code that looks for a command to run instead of going to a
    single user shell. The command (script) runs prepare, sends the output
    back to tmcd, and then does a real reboot.
    
    Okay, so how to get -p passed to node_reboot? I hacked up the
    libadminmfs code slightly to do that, with new 'prepare' argument
    option. This may not be the best approach; might have to do this as a
    real state transition if problems develop. I will wait and see.
    
    Also, I changed www/loadimage.php3 to spew the output of the
    create_image to the browser.
    d8f8f9b4
Name
Last commit
Last update
account Loading commit data...
apache Loading commit data...
assign Loading commit data...
autoconf Loading commit data...
bugdb Loading commit data...
capture Loading commit data...
cdrom Loading commit data...
collab Loading commit data...
daikon Loading commit data...
db Loading commit data...
delay/linux Loading commit data...
dhcpd Loading commit data...
discvr Loading commit data...
doc Loading commit data...
event Loading commit data...
firewall Loading commit data...
hw_config Loading commit data...
hyperviewer Loading commit data...
image-test Loading commit data...
install Loading commit data...
ipod Loading commit data...
lib Loading commit data...
mote Loading commit data...
named Loading commit data...
os Loading commit data...
patches Loading commit data...
pelab Loading commit data...
pxe Loading commit data...
rc.d Loading commit data...
robots Loading commit data...
rpms Loading commit data...
security Loading commit data...
sensors Loading commit data...
sql Loading commit data...
ssl Loading commit data...
sysadmin Loading commit data...
tbsetup Loading commit data...
testsuite Loading commit data...
tip Loading commit data...
tmcd Loading commit data...
tools Loading commit data...
utils Loading commit data...
vis Loading commit data...
wiki Loading commit data...
www Loading commit data...
xmlrpc Loading commit data...
.loc-ignore Loading commit data...
BUGS Loading commit data...
GNUmakefile.in Loading commit data...
GNUmakerules Loading commit data...
GPL-COPYING Loading commit data...
LGPL-COPYING Loading commit data...
LICENSE Loading commit data...
Makeconf.in Loading commit data...
README Loading commit data...
TODO Loading commit data...
TODO.plab Loading commit data...
config.h.in Loading commit data...
configure Loading commit data...
configure.in Loading commit data...
defs-aerolab Loading commit data...
defs-calfeld-emulab Loading commit data...
defs-davidand-emulab Loading commit data...
defs-default Loading commit data...
defs-duerig-emulab Loading commit data...
defs-elabinelab Loading commit data...
defs-example Loading commit data...
defs-fish-emulab Loading commit data...
defs-gatech Loading commit data...
defs-johnsond-emulab Loading commit data...
defs-kwebb-emulab Loading commit data...
defs-newbold-emulab Loading commit data...
defs-newbold-macdb Loading commit data...
defs-ricci-emulab Loading commit data...
defs-shash-emulab Loading commit data...
defs-stoller-emulab Loading commit data...
defs-stoller-home Loading commit data...
defs-stoller-lbsdb Loading commit data...
defs-uky Loading commit data...
defs-wide Loading commit data...