-
Leigh B. 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