You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@vcl.apache.org by Andy Kurth <an...@ncsu.edu> on 2010/01/19 19:16:11 UTC
Move response checking from provisioning module to OS module
I'd like to propose a design change for the modularized backend code. The
provisioning modules (xCAT.pm, vmware.pm, etc) are currently responsible for
monitoring and waiting for the computer's OS to respond after an image has been
loaded. It would be better if this task were handled by the OS modules because
the sequence of things to monitor and the appropriate timeouts vary widely among
OS's.
This will solve a problem currently affecting Windows Server 2008, Vista, and
most likely 2007. Sysprep's mini-setup phase takes a horrendously long time
with the newer OS's compared to XP and 2003. This is causing timeouts to be
reached before Sysprep is done. There is currently no way to specify longer
timeouts for the newer versions of Windows without having it apply to all OS's.
Having the OS module monitor and wait for the computer to respond would solve
this problem.
To accomplish this, the waiting/monitoring responsibility would be moved to the
post_load() subroutine in the OS module and new.pm will keep track of the
install attempt count, passing it to load() and post_load(). The sequence is:
1. new.pm calls $provisioner->load($install_attempt)
2. new.pm calls $os->post_load($install_attempt)
The return value sent back to the new.pm module by the provisioning module's
load() subroutine would be:
1: computer is done being loaded and ready for OS post_load()
0: error occurred, attempt image load again
undefined: error occurred, don't attempt load again
The return value sent back to new.pm from the OS module's post_load() would be:
1: computer OS is configured and ready for a reservation
0: error occurred, attempt image load again
undefined: error occurred, don't attempt load again
Having new.pm keep track of the attempt count and pass it to the load() and
post_load() subroutines allows them to be able to use this value to adjust their
timeouts and return values if appropriate.
This will also remove the SSH dependency from the provisioning modules. There
was a thread a few months ago about supporting methods other than SSH to control
computers. This will facilitate that feature.
I created VCL-291 and will begin to work on this. Please reply if you have any
thoughts or suggestions.
Thanks,
Andy