• Leigh Stoller's avatar
    Big round of image/osid changes. This is the first cut (final cut?) at · a73e627e
    Leigh Stoller authored
    supporting autocreating and autoloading images. The imageid form now
    sports a field to specify a nodeid to create the image from; If set,
    the backend create_image script is invoked. Thats the easy part.
    Slightly harder is autoloading images based on the osid specified in
    the NS file. To support this, I have added a new DB table called
    osidtoimageid, which holds the mapping from osid/pctype to imageid.
    When users create images, they must specify what node types that image
    is good for. Obviously, the mappings have to be unique or it would be
    impossible to figure it out! Anyway, once that image mapping is
    in place and the image created, the user can specify that ID in the NS
    file. I've changed os_setup to to look for IDs that are not loaded,
    and to try and find one in the osidtoimageid. If found, it invokes
    os_load. To keep things running in parallel as much as possible,
    os_setup issues all the loads/reboots (could be more than a single set
    of loads is multiple IDs are in the NS file) at once, and waits for
    all the children to exit. I've hacked up os_load a bit to try and be
    more robust in the face of PXE failures, which still happen and are
    rather troublsesome. Need an event system!
    
    Contained in this revision are unrelated changed to make the OS and
    Image IDs per-project unique instead of globally unique, since thats a
    pain for the users. This turns out to be very messy, since underneath
    we do not want to pass around pid/ID in all the various places its
    used. Rather, I create a globally unique name and extened the OS and
    Image tables to include pid/name/ID. The user selects pid/name, and I
    create the globally unique ID. For the most part this is invisible
    throughout the system, except where we interface with the user, say in
    the web pages; the user should see his chosen name where possible, and
    the should invoke scripts (os_load, create_image, etc) using his/her
    name not the internal ID. Also, in the front end the NS file should
    use the user name not the ID. All in all, this accounted for a number
    of annoying changes and some special cases that are unavoidable.
    a73e627e
Name
Last commit
Last update
apache Loading commit data...
assign Loading commit data...
autoconf Loading commit data...
capture Loading commit data...
db Loading commit data...
dhcpd Loading commit data...
discvr Loading commit data...
doc Loading commit data...
event Loading commit data...
hw_config Loading commit data...
ipod Loading commit data...
lib Loading commit data...
os Loading commit data...
pxe Loading commit data...
rc.d Loading commit data...
rpms Loading commit data...
security Loading commit data...
sensors Loading commit data...
sql Loading commit data...
sysadmin Loading commit data...
tbsetup Loading commit data...
testsuite Loading commit data...
tip Loading commit data...
tmcd Loading commit data...
utils Loading commit data...
vis Loading commit data...
www Loading commit data...
xmlrpc Loading commit data...
BUGS Loading commit data...
GNUmakefile.in Loading commit data...
GNUmakerules Loading commit data...
Makeconf.in Loading commit data...
PROJECTS Loading commit data...
config.h.in Loading commit data...
configure Loading commit data...
configure.in Loading commit data...
defs-calfeld-emulab Loading commit data...
defs-default Loading commit data...
defs-mini Loading commit data...
defs-neo-paper Loading commit data...
defs-newbold-emulab Loading commit data...
defs-ricci-emulab Loading commit data...
defs-ricci-neo-paper Loading commit data...
defs-stoller-emulab Loading commit data...
defs-stoller-home Loading commit data...