1. 18 Jun, 2012 3 commits
  2. 13 Jun, 2012 2 commits
  3. 12 Jun, 2012 9 commits
  4. 11 Jun, 2012 5 commits
  5. 08 Jun, 2012 2 commits
  6. 07 Jun, 2012 3 commits
    • 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
    • Leigh B Stoller's avatar
      New script, clone_image to simplify create/snapshot from a node. · b01c991d
      Leigh B Stoller authored
      clone_image is a wrapper around newimageid_ez and create_image, that
      simplifies the most common operation; creating a new imageid derived
      from the image/os that is currently running in the node, and then
      taking a snapshot of the node. So for example, if node pcXXX is
      running image FREEBSD, and you want to create a custom image from that
      node, all you need to do:
      
      	boss> clone_image myfreebsd pcXXX
      
      which will create the new descriptor, deriving everything from the
      FREEBSD image on the node, and then take a snapshot from pcXXX. If
      the descriptor already exists, just take the snapshot.
      
      So what if you do:
      
      	boss> clone_image FREEBSD pcXXX
      
      well, the image is always looked up in the project the node is
      currently attached to, so in fact a new descriptor is created in that
      project, and you do not actually overwrite an image from some other
      project. 
      
      I've added some locking to images to prevent concurrent snapshots.
      This seemed like a good idea since this script is going to be used
      from the ProtoGeni interface. More on this in another commit.
      b01c991d
    • Leigh B Stoller's avatar
      Minor bug fix; slot name is IP, not ip. · 516dec51
      Leigh B Stoller authored
      516dec51
  7. 06 Jun, 2012 12 commits
  8. 04 Jun, 2012 4 commits