ElabInElab Addition: New script that uses the frisbee client to
download images from the outer emulab. This script is invoked from frisbeelauncher when ELABINELAB=1 and the filename does not exist (thus attempting to get the image file before bailing). The frisbeeimage script uses a new method in the RPC server to fire up a frisbeed (using frisbeelauncher on the outer Emulab), subject to the usual permission checks against creator of the elabinelab experiment (I assume that the creator will have access to any outer images that are used inside the inner emulab). If outer frisbeelauncher succeeds, its return value is the load_address (IP:port), which is used to fire up a frisbee client to get the image file and write it out (using Mike's new -N option that just dumps the raw data to file). Once the image is downloaded, control returns to inner frisbeelauncher and proceeds as normal. I whacked this together pretty quickly. Under heavy usage it might hit a race condition or two, but I do not expect that to happen in an inner elab for a while.
Showing with 231 additions and 5 deletions