1. 06 Jan, 2012 1 commit
  2. 10 Nov, 2011 1 commit
  3. 11 Aug, 2011 1 commit
  4. 10 Aug, 2011 1 commit
    • Leigh Stoller's avatar
      Add support for making OPS a jail on boss. This works for elabinelab, · aefe785a
      Leigh Stoller authored
      but has not been tested for actual Emulab. A typical elabinelab NS
      file would look like:
          
          source tb_compat.tcl
          set ns [new Simulator]
          
          tb-elab-in-elab 1
          tb-elabinelab-singlenet
          tb-elab-in-elab-topology opsvm
          tb-set-elabinelab-attribute CONFIG_WINDOWS 0
          
          namespace eval TBCOMPAT {
              set elabinelab_maxpcs 1
              set elabinelab_hardware("boss") pc3000
          }
          $ns run
      aefe785a
  5. 27 Jul, 2011 1 commit
  6. 19 Jul, 2011 1 commit
  7. 03 Jun, 2011 1 commit
    • Mike Hibler's avatar
      Make secure diskload path handle multiple images. · a14d74c8
      Mike Hibler authored
      Make sure "tmcd imagekey" returns info for all images.
      Make Linux rc.frisbee handle it.
      
      Also: change to elabinelab setup to not load secure image info
      into the elabinelab DB (i.e., so we don't propogate the secret keys).
      a14d74c8
  8. 03 May, 2011 1 commit
    • Mike Hibler's avatar
      Fixes for adding nodes. · 2fb7f5da
      Mike Hibler authored
      Pass -f option to newnodes so it ignores unconnected interfaces.
      Make sure we enter the inner control net IP in new_nodes when !singlenet.
      2fb7f5da
  9. 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
  10. 25 Jun, 2010 1 commit
    • Mike Hibler's avatar
      elabinelab fixes. · 3a5bf377
      Mike Hibler authored
      Important: re-map emulab-ops pid/gid indicies in the os_info and images table.
      
      Nit: fix a comment typo ("all I did was change a comment, really!")
      3a5bf377
  11. 14 Apr, 2010 2 commits
    • Mike Hibler's avatar
      Add some useful elabinelab sitevars. · 9bb38c10
      Mike Hibler authored
      New sitevars:
        elabinelab/singlenet     set the system-wide default for cnet implementation
        elabinelab/boss_osid     default OSID for boss node
        elabinelab/ops_osid      default OSID for ops node
        elabinelab/fs_osid       default OSID for fs node
      
      Also mark the various elabinelab/*pkg* sitevars as deprecated.  Package
      versions are just too dependent on the OS running and we almost always
      wind up overriding these sitevars in rc.mkelab anyway.
      9bb38c10
    • Mike Hibler's avatar
      Changes for speeding up elabinelab server setup. · 6feda7d3
      Mike Hibler authored
      Boss/ops/fs: reboot them together after setup rather than serially.
      
      Nodes: leave them in PXEWAIT throughout the setup, until after boss has
      been rebooted.  At that point we send them the new bootinfo RESTART command
      telling pxeboot to re-DHCP and use the new info obtained (next-server) to
      contact a potentially new boss node.  This is a quick way to switch a node
      in PXEWAIT from talking to the outer boss to talking to the inner one.
      
      A significant number of rinky-dink changes were needed to do this, primarily
      adding a new state, PXELIMBO, where nodes can be sent to sit until they are
      restarted.  It turns out, just putting them in an existing state such as
      PXEWAKEUP or SHUTDOWN wouldn't work, as they tend to timeout or otherwise
      reboot.
      6feda7d3
  12. 29 Mar, 2010 1 commit
  13. 22 Mar, 2010 3 commits
  14. 19 Mar, 2010 1 commit
  15. 12 Mar, 2010 2 commits
  16. 05 Jan, 2010 1 commit
  17. 13 Nov, 2009 1 commit
  18. 22 Jan, 2009 1 commit
  19. 11 Nov, 2008 1 commit
  20. 28 Jan, 2008 1 commit
  21. 14 Jan, 2008 1 commit
  22. 02 Aug, 2007 1 commit
  23. 30 Jul, 2007 1 commit
  24. 27 Jul, 2007 1 commit
    • Leigh Stoller's avatar
      * Add new tables to store NS files (and any files they source) in the · f8333ef2
      Leigh Stoller authored
        DB alongside the resource records. Previously, we stored only the
        nsfiles for current experiments, and purged them when the experiment
        was terminated. The new approach saves them forever using the resource
        record ID. Note that we do not store copies of NS files, but reference
        them indirectly instead so that we can MD5 them and avoid the dups.
      
        I put a "compressed" bit into the table cause at some point we will
        start compressing the data before storing them into the DB. Or maybe
        we bag this and start using GFS!
      
        Also note that this addresses the problem of losing the NS file
        history when using swapmod, since the NS file is overwritten.
      
      * Add a pmapping table stores the nodes (and their types) used by an
        experiment. This data is also saved forever, alongside the resource
        records, so that we can more accurately replay an experiment. As Rob
        points out, the node names can also be used in conjunction with the
        ptop files that are saved, to get a 100% accurate remap of resources.
      f8333ef2
  25. 13 Jul, 2007 1 commit
  26. 12 Jul, 2007 1 commit
    • Russ Fish's avatar
      Check that the inner elab db schema isn't out of date wrt the outer one, · b54ae4da
      Russ Fish authored
        since we import a bunch of dumped db state from the outer to the inner db.
        Added/removed columns in the schema misalign row data, causing much chaos.
      
      tbsetup/elabinelab.in - Dump and send the outer db schema with the db state.
        Runs mysqldump just like schemacheck does.
      
      tmcd/common/config/rc.mkelab - Add the schema check using schemadiff.
      
      utils/schemadiff - Add an option to ignore table creates and drops.
      b54ae4da
  27. 24 Apr, 2007 1 commit
  28. 23 Apr, 2007 1 commit
  29. 13 Mar, 2007 1 commit
  30. 06 Mar, 2007 1 commit
  31. 10 Jan, 2007 1 commit
  32. 01 Dec, 2006 1 commit
  33. 29 Nov, 2006 1 commit
    • Leigh Stoller's avatar
      Keith Sklower's changes to support a single control network model for · 08737f67
      Leigh Stoller authored
      ElabInElab experiments, so as not to consume an interface.
      
      I actually modified Keith's changes so that we can dynmaically choose
      the single or dual model in the NS file (Keith's changes hardwired the
      system to only single control network) since the single network model
      has the disadvantage of not allowing new nodes to be added to an inner
      elab, which would make it impossible to test some things (like the
      newnode path!).
      
      To choose the single control network model, place this in your NS file:
      
      	tb-elabinelab-singlenet
      
      other it defaults to the older dual network model.
      08737f67
  34. 23 Oct, 2006 1 commit
  35. 20 Oct, 2006 1 commit
    • Mike Hibler's avatar
      Wow, this should make me look important! · afa5e919
      Mike Hibler authored
      Two-day boondoggle to support "/scratch", an optional large, shared filesystem
      for users.  To do this, I needed to find all the instances where /proj is used
      and behave accordingly.  The boondoggle part was the decision to gather up all
      the hardwired instances of shared directory names ("/proj", "/users", etc.)
      so that they are set in a common place (via unexposed configure variables).
      This is a boondoggle because:
      
      1. I didn't change the client-side scripts.  They need a different mechanism
         (e.g., tmcd) to get the info, configure is the wrong way.
      
      2. Even if I had done #1 it is likely--no, certain--that something would
         fail if you tried to rename "/proj" to be "/mike".  These names are just
         too ingrained.
      
      3. We may not even use "/scratch" as it turns out.
      
      Note, I also didn't fix any of the .html documentation.  Anyway, it is done.
      To maintain my illusion in the future you should:
      
      1. Have perl scripts include "use libtestbed" and use the defined PROJROOT(),
         et.al. functions where possible.  If not possible, make sure they run
         through configure and use @PROJROOT_DIR@, etc.
      
      2. Use the configure method for python, C, php and other languages.
      
      3. There are perl (TBValidUserDir) and php (VALIDUSERPATH) functions which
         you should call to determine if an NS, template parameter, tarball or
         other file are in "an acceptable location."  Use these functions where
         possible.  They know about the optional "scratch" filesystem.  Note that
         the perl function is over-engineered to handles cases that don't occur
         in nature.
      afa5e919
  36. 19 Jul, 2006 1 commit