1. 24 Nov, 2010 1 commit
    • Mike Hibler's avatar
      First crack at a frisbee "master server" for handling GET (download) requests. · a2a896ab
      Mike Hibler authored
      There are a couple of new packet types in the frisbee protocol which are
      exchanged via TCP with the master server: GETREQUEST and GETREPLY.  The
      client passes to the master server an opaque imageid and a couple of options
      and gets back the addr/port to use to actually download the image.  The
      implementation of the master server is fragile and is more of a test
      framework, Grant is working on a more robust master server.  I am mostly
      doing a backend that communicates with the Emulab DB to do its authentication
      and making the client changes.
      
      The client now uses the -S option to specify the IP address of the master
      server and the -F option to specify an imageid.  If no error is returned,
      the image is downloaded using the returned addr/port.  If -Q is used in place
      of -F, then the client makes a "status only" call getting back info about
      whether the named image is accessible to the client and whether a server is
      currently running.
      
      On the server side, the new master server (mserver.c) has an Emulab
      configuration "backend" that supports host-based authentication.
      The IP address of the caller is mapped to a node_id/pid/gid/eid combo
      that is used to determine access.  On a request, the specified imageid is
      treated either as a pathname (if it starts with '/') or an image identifier
      of the form "<pid>/<imagename>".  If it is a pathname, we check to make
      sure that pathname (after running through "realpath") is contained in one
      of the directories accessible to that node in its current experiment context;
      i.e., /share, /proj/<pid>, /groups/<pid>/<gid>, or /users/<swapper-uid>.
      If it is an image identifier, the DB is queried to ensure that access is
      allowed to that image; i.e., it must be "global" or in the appropriate
      project/group.
      
      The master server forks a frisbeed for each valid request, if one is not
      already running.  The multicast address selection is still based on the
      emulab_indicies.frisbee_index field, but the address/port/server info is no
      longer stored in the frisbee_blobs table (frisbee_pid, load_address,
      load_busy are not set).
      
      Note that this is not yet integrated in the os_load path.  Further work is
      required to replace frisbeelauncher.
      a2a896ab
  2. 23 Nov, 2010 2 commits
  3. 22 Nov, 2010 3 commits
  4. 20 Nov, 2010 1 commit
    • Ryan Jackson's avatar
      Fixed segfault in event/new_sched · 15fc15b7
      Ryan Jackson authored
      Fixed a segfault in the new event scheduler
      
      Cleaned up some code that dealt with converting
      xmlrpc_c::value_strings to C string constants to avoid further memory
      corruption issues.
      
      Also converted AddAgent(), AddGroup(), AddUserEnv() to take 'const
      char *' pointers instead of 'char *'s to silence GCC's warnings about
      invalid conversions from 'const char *' to 'char *'.
      15fc15b7
  5. 19 Nov, 2010 1 commit
    • Kevin Atkinson's avatar
      Misc tb-set-tarfiles client side fixes. · 3a96cf99
      Kevin Atkinson authored
      This includes create a large local filesystem (using mkextrafs) if the
      target directory starts with "/local".
      
      These changes where suppose to go in with my initial commit, but I
      forgot to push from my test node to my devel tree before rebasing and
      hanse they didn't make it in.
      3a96cf99
  6. 18 Nov, 2010 1 commit
  7. 17 Nov, 2010 5 commits
  8. 16 Nov, 2010 7 commits
  9. 15 Nov, 2010 1 commit
  10. 13 Nov, 2010 2 commits
  11. 12 Nov, 2010 15 commits
  12. 10 Nov, 2010 1 commit