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. 28 Oct, 2010 2 commits
    • Ryan Jackson's avatar
      Enable new event scheduler · 2c0d82a5
      Ryan Jackson authored
      Use the new event scheduler by default for any
      users/groups/experiments configured for it using EmulabFeatures.
      
      Added '-N' option to eventsys.proxy to have it use the new scheduler
      (if it exists) instead of the old one.
      
      Added test for NewEventScheduler feature to eventsys_control so that
      it will pass the '-N' option to eventsys.proxy for
      experiments/users/groups using the feature.
      
      These changes will go away when the new event scheduler replaces the
      old one.
      2c0d82a5
    • Mike Hibler's avatar
      One last change to remove SHD. · 9ab46722
      Mike Hibler authored
      9ab46722
  3. 21 Oct, 2010 1 commit
  4. 20 Oct, 2010 1 commit
    • Mike Hibler's avatar
      Support for no shared filesystem (unsupport for shared filesystem?) and · c1c1bce2
      Mike Hibler authored
      (eventual) support for NFS servers without race conditions!
      
      This means no NFS between nodes and ops/fs. There are still NFS mounts of
      ops on boss however.
      
      Added new defs-* variable NOSHAREDFS, which when set non-zero will disable
      the export of NFS filesystems to nodes.  Involved lots of little changes:
      
       * /users, /proj, and /share filesystems are not exported to nodes.
      
       * Returned mount info now includes an FSTYPE key which will be set to "LOCAL"
         if NOSHAREDFS is in effect (by default it is set to "NFS-RACY"; more on
         this later).  In the case where it is set to LOCAL, the other mount lines
         no longer contain REMOTE=foo settings.  Because of this change,
         THE TMCD VERSION NUMBER HAS BEEN BUMPED TO 32.
      
       * The client rc.mounts script will now create local versions of /users/*,
         /proj/<pid>, and /share when FSTYPE=LOCAL.  It first runs mkextrafs to
         create a large partition for these, since someday we will likely want
         to pre-populate these with a non-trivial amount of data.  Right now,
         the only thing that is put in the user's homedir is the standard dotfiles
         for the OS and the Emulab authorized_keys file (so you can login).
      
       * Linktest had to be modified to fetch the various results files (via
         loghole) rather than just assuming they were in /proj.  And also changed
         to invoke tevc with the local copy of the event key so it won't try to
         read it over NFS.
      
       * create_image was modified to ssh to the node and run the imagezip
         command, capturing the output of ssh.  This is controlled via the "-s"
         option which defaults to on for a NOSHAREDFS system, but can also be
         used on a normal system.
      
       * elabinelab's can be configured with/without a shared FS via the
         CONFIG_SHAREDFS attribute (note polarity change) which defaults to 1.
      
      Another new defs-* variable, NFSRACY, will some day allow you to specify
      (by setting to 0) that your NFS server does NOT have the nefarious mountd
      race condition when changing /etc/exports.  Currently, this defaults to 1
      since all versions of FreeBSD supported as an "fs" node have this "feature."
      Rumor has it that FreeBSD 8 does not have this problem nor, presumably,
      would a Linux NFS server.
      
      The only use of this variable right now is to set the FSTYPE returned by the
      tmcd "mounts" call, which in turn is used by one client script, rc.topomap
      (via a libsetup function) to determine whether it should try copying
      the topo file multiple times.
      
      Random: add python2.6 to list of python's checked for in configure.
      Random: resync defs-example-privatecnet with defs-example.
      Random: did a little code-pissin here and there.
      c1c1bce2
  5. 15 Oct, 2010 2 commits
  6. 17 Sep, 2010 1 commit
    • Ryan Jackson's avatar
      Fixes for ubuntu 10.4 (lucid lynx) · 304eb320
      Ryan Jackson authored
      Includes hack to "fix" upstart dependency problems:
      
      A) eth* interfaces are probed by ifupdown serially instead of in
         parallel.
      B) Legacy initscript support waits for the the control net probe
         to finish (with either success or failure) before running legacy
         initscripts.
      304eb320
  7. 22 Jul, 2010 1 commit
  8. 18 Jun, 2010 1 commit
  9. 03 Jun, 2010 1 commit
  10. 28 Apr, 2010 1 commit
  11. 16 Apr, 2010 2 commits
  12. 15 Apr, 2010 1 commit
  13. 01 Apr, 2010 1 commit
  14. 30 Mar, 2010 1 commit
    • Tom Mitchell's avatar
      Initial GENI AM API implementation. · ea28f5ed
      Tom Mitchell authored
      Added GENI_AM_SUPPORT to configure. protogeni-cm.pl honors
      GENI_AM_SUPPORT by invoking GeniAM.pm functions instead of GeniCM.pm
      functions. Only GetVersion is implemented.
      ea28f5ed
  15. 20 Mar, 2010 2 commits
  16. 19 Mar, 2010 1 commit
  17. 09 Feb, 2010 1 commit
  18. 18 Dec, 2009 2 commits
  19. 01 Dec, 2009 2 commits
  20. 16 Oct, 2009 1 commit
  21. 10 Jul, 2009 2 commits
  22. 07 Jul, 2009 1 commit
  23. 10 Jun, 2009 1 commit
  24. 14 May, 2009 1 commit
  25. 08 May, 2009 1 commit
  26. 02 Mar, 2009 2 commits
    • Leigh B. Stoller's avatar
      A bunch of changes for a "standalone" clearinghouse. Presently this · 60f04310
      Leigh B. Stoller authored
      its really a hugely stripped down Emulab boss install, using a very
      short version of install/boss-install to get a few things into place.
      
      I refactored a few things in both the protogeni code and the Emulab
      code, and whacked a bunch of makefiles and configure stuff. The result
      is that we only need to install about 10-12 files from the Emulab
      code, plus the protogeni code. Quite manageable, if you don't mind
      that it requires FreeBSD 6.X ... Still, I think it satisfies the
      requirement that we have a packaged clearinghouse that can be run
      standalone from a running Emulab site.
      60f04310
    • Leigh B. Stoller's avatar
      More refactoring for protogeni · 1912a25a
      Leigh B. Stoller authored
      1912a25a
  27. 08 Jan, 2009 1 commit
  28. 03 Nov, 2008 1 commit
  29. 30 Oct, 2008 1 commit
  30. 27 Oct, 2008 2 commits
  31. 16 Oct, 2008 1 commit