Skip to content
  • Leigh B Stoller's avatar
    Add new API call CreateImage; create/snapshot a geni sliver node. · 750be519
    Leigh B Stoller authored
    This call allows a geni user to create a sliver, customise the node,
    and then take a snapshot (possibly creating a new image descriptor)
    without having to use the Emulab web interface. The API looks like:
    
      int CreateImage(slice_urn, sliver_urn, imagename, credentials[]);
    
    The slice must be unlocked and the sliver in the ready state. Once
    the operation starts, the slice is locked until the backend finishes.
    This is something that I might revisit later, but this was the easiest
    approach that ensures consistency. 
    
    The imagename is looked up in the current project the node is attached
    to. If it does not exists, create it. Then snapshot the node. You can
    call this again of course, to take a new snapshot, without having to
    provide a new imagename.
    
    The image file is written to the images directory of the project,
    which is available to the node via /proj, so the user can get to it
    (since the user might not have a local account).
    750be519