1. 25 Jun, 2012 1 commit
  2. 20 Jun, 2012 3 commits
  3. 19 Jun, 2012 2 commits
    • Leigh B Stoller's avatar
      Fix up the ssh port section give proper physhost name. · df046e91
      Leigh B Stoller authored
      Also fix the conditional that was causing it to not
      get printed.
      df046e91
    • Mike Hibler's avatar
      Make frisbee more directly IGMP (v2) aware. · 66e07584
      Mike Hibler authored
      Add "-Q <interval>" option to the master server to allow it to act as an
      IGMP V2 querier in environment where there is otherwise not one. It does
      essentially what the perl-based querier (code.google.com/p/perl-igmp-querier/)
      does, sending out a v2 membership query at the specified interval.
      
      This eliminates the need to run mrouted in some environments (e.g., elabinelab)
      just to issue IGMP queries. As a result, all the boss-install and elabinelab
      setup related to using mrouted to perform this function has been removed.
      The elabinelab CONFIG_MROUTED option has been changed to CONFIG_QUERIER
      (the former is still recognized and mapped to the latter). The undocumented
      defs-* variable NEEDMROUTED has been changed to NEEDMCQUERIER (the former
      still exists in install/installvars.pm.in but is always set to 0) to more
      accurately reflect the variable's purpose. If NEEDMCQUERIER is set, then
      the mfrisbeed startup script is modified to add the "-Q 30" option.
      
      The implementation of the client and server "-K <interval>" keep-alive option
      has been changed to directly send IGMP v2 membership reports containing the
      associated MC address.
      
      Note that the -K options have always been a hack to work-around assorted
      IGMP-related misconfigurations and incompatibilities, and really should
      only be used as a last resort. As implemented, they could cause the host
      machine to be pruned out of other MC groups at the nearest switch since
      they only report membership in the frisbee MC group. With the master server
      acting as an IGMP querier, instances of the frisbee server on that host
      should no longer need to do keep alives. We still have one case where it
      is needed on the client-side: a FreeBSD 8.x or later host connected to an
      IGMPv2-only switch. It appears that the IGMPv3 implementation added in
      FreeBSD 8.x always sends v3 reports, even when the default is configured
      (via sysctl or even recompiling the kernel) as v2.
      66e07584
  4. 18 Jun, 2012 3 commits
  5. 13 Jun, 2012 2 commits
  6. 12 Jun, 2012 9 commits
  7. 11 Jun, 2012 5 commits
  8. 08 Jun, 2012 2 commits
  9. 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
  10. 06 Jun, 2012 10 commits