1. 31 Mar, 2011 1 commit
  2. 28 Mar, 2011 1 commit
    • Leigh Stoller's avatar
      Begin the transition away from the ancient Mysql.pm module to the more · 5030b44d
      Leigh Stoller authored
      current and maintained DBI::mysql module. A couple of things make this
      a little more work then you might think.
      
      Mysql exports a slightly different API then DBI, both at the DB *and*
      the statement level. The former required some restructuring of
      emdbi.pm, partly cause we want external sites to continue using Mysql
      for a while longer. So, emdbi suppports both interfaces, via the
      configure variable TBUSEDBI.
      
      I also took the opportunity to also scrap the existing fork()
      detection code and redo it in an easier to understand manner.
      Actually, I had no idea what the previous code was trying to do, so it
      was easier to just get rid of it, rather then try to make it work for
      the DBI API.
      
      There are also API differences in the "statement" class, but
      fortunately this can be hidden by wrapping the statement class with a
      wrapper that adds the routines we need to avoid making silly changes
      to 1000s of queries. They are all trivial little things since mostly
      its a matter of naming (numrows --> rows).
      
      I also changed the library we use on ops (db/libtbdb.pm.in) to use
      DBI, but in this case I just switched it over. Seemed like overkill to
      worry about supporting both APIs on ops. If it works it works, and so
      far it does. 
      
      Lastly, the following modules still use Mysql directly. They all need
      to be changed, but none of these are on the critical path to swapin
      and swapout, so they can change later.
      
      db/dumperrorlog.proxy.in
      db/showgraph.in
      db/sitevarscheck.in
      bgmon/find-asymmetric
      db/pelab_opspush.proxy.in
      slothd/sdisrunning.in
      utils/export_tables.in
      utils/setbuildinfo.in
      pelab/bgmon/libpelabdb.pm
      pelab/dbmonitor/libtbdb.pm
      5030b44d
  3. 10 Feb, 2011 1 commit
  4. 18 Jan, 2011 1 commit
  5. 11 Jan, 2011 1 commit
    • Mike Hibler's avatar
      Found a patch that will make the SelfLoader work with perl 5.10.1. · f0ea7d23
      Mike Hibler authored
      Repeating myself since not everything got committed last time...
      
      In the lastest version of SelfLoader they fixed the taint problem.  It is
      literally one line of code (plus updating version string) so I just made
      a patch.  Also, fixup boss/ops-install to apply the patch and change the
       default to use the SelfLoader again.
      f0ea7d23
  6. 22 Dec, 2010 1 commit
  7. 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
  8. 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
  9. 21 Oct, 2010 1 commit
  10. 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
  11. 15 Oct, 2010 2 commits
  12. 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
  13. 22 Jul, 2010 1 commit
  14. 18 Jun, 2010 1 commit
  15. 03 Jun, 2010 1 commit
  16. 28 Apr, 2010 1 commit
  17. 16 Apr, 2010 2 commits
  18. 15 Apr, 2010 1 commit
  19. 01 Apr, 2010 1 commit
  20. 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
  21. 20 Mar, 2010 2 commits
  22. 19 Mar, 2010 1 commit
  23. 09 Feb, 2010 1 commit
  24. 18 Dec, 2009 2 commits
  25. 01 Dec, 2009 2 commits
  26. 16 Oct, 2009 1 commit
  27. 10 Jul, 2009 2 commits
  28. 07 Jul, 2009 1 commit
  29. 10 Jun, 2009 1 commit
  30. 14 May, 2009 1 commit
  31. 08 May, 2009 1 commit
  32. 02 Mar, 2009 2 commits
    • Leigh Stoller's avatar
      A bunch of changes for a "standalone" clearinghouse. Presently this · 60f04310
      Leigh 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 Stoller's avatar
      More refactoring for protogeni · 1912a25a
      Leigh Stoller authored
      1912a25a