1. 08 Mar, 2018 1 commit
  2. 10 Jun, 2016 1 commit
  3. 28 Apr, 2016 1 commit
  4. 14 Mar, 2016 1 commit
  5. 22 Feb, 2016 1 commit
  6. 12 Mar, 2015 1 commit
  7. 10 Mar, 2014 1 commit
    • Mike Hibler's avatar
      Support "no NFS mount" experiments. · 5446760e
      Mike Hibler authored
      We have had the mechanism implemented in the client for some time and
      available at the site-level or, in special cases, at the node level.
      New NS command:
      
          tb-set-nonfs 1
      
      will ensure that no nodes in the experiment attempt to mount shared
      filesystems from ops (aka, "fs"). In this case, a minimal homdir is
      created on each node with basic dotfiles and your .ssh keys. There will
      also be empty /proj, /share, etc. directories created.
      
      One additional mechanism that we have now is that we do not export filesystems
      from ops to those nodes. Previously, it was all client-side and you could
      mount the shared FSes if you wanted to. By prohibiting the export of these
      filesystems, the mechanism is more suitable for "security" experiments.
      5446760e
  8. 18 Mar, 2013 1 commit
  9. 24 Oct, 2012 1 commit
  10. 24 Sep, 2012 1 commit
    • Eric Eide's avatar
      Replace license symbols with {{{ }}}-enclosed license blocks. · 6df609a9
      Eric Eide authored
      This commit is intended to makes the license status of Emulab and
      ProtoGENI source files more clear.  It replaces license symbols like
      "EMULAB-COPYRIGHT" and "GENIPUBLIC-COPYRIGHT" with {{{ }}}-delimited
      blocks that contain actual license statements.
      
      This change was driven by the fact that today, most people acquire and
      track Emulab and ProtoGENI sources via git.
      
      Before the Emulab source code was kept in git, the Flux Research Group
      at the University of Utah would roll distributions by making tar
      files.  As part of that process, the Flux Group would replace the
      license symbols in the source files with actual license statements.
      
      When the Flux Group moved to git, people outside of the group started
      to see the source files with the "unexpanded" symbols.  This meant
      that people acquired source files without actual license statements in
      them.  All the relevant files had Utah *copyright* statements in them,
      but without the expanded *license* statements, the licensing status of
      the source files was unclear.
      
      This commit is intended to clear up that confusion.
      
      Most Utah-copyrighted files in the Emulab source tree are distributed
      under the terms of the Affero GNU General Public License, version 3
      (AGPLv3).
      
      Most Utah-copyrighted files related to ProtoGENI are distributed under
      the terms of the GENI Public License, which is a BSD-like open-source
      license.
      
      Some Utah-copyrighted files in the Emulab source tree are distributed
      under the terms of the GNU Lesser General Public License, version 2.1
      (LGPL).
      6df609a9
  11. 23 Jan, 2012 1 commit
    • Leigh B Stoller's avatar
      Add support for disk agents. This is just the plumbing, Yathindra is · 95ada2d1
      Leigh B Stoller authored
      doing the real/hard work. Anyway, in your NS file you can do this:
      
      	set newdisk [new Disk $ns]
      	$newdisk set node $n0
      	$newdisk set type foo
      	$newdisk set mountpoint /qq
      	$newdisk set parameters "foo bar fee"
      	$newdisk set command "bla bla bla"
      
      The parameters and command are optional and default to null. Then on
      your node, tmcd returns:
      
      	DISK DISKNAME=newdisk DISKTYPE='foo' MOUNTPOINT='/qq' MOUNTPOINT='foo bar fee' PARAMETERS='bla bla bla'
      
      Note that there is no client support code in this commit.
      95ada2d1
  12. 12 Jan, 2012 1 commit
    • Leigh B Stoller's avatar
      The rest of the virt_node_attributes table support. You can do this in · 51552904
      Leigh B Stoller authored
      your NS file:
      
      	$node0 add-attribute jailip 155.98.36.229
      	$node0 add-attribute jailipmask 255.255.252.0
      
      to override the default jail ip assignment. Use this carefully of
      course since there is no checking yet.
      
      You can also do something like this:
      
      	$myboss add-attribute XEN_EXTRADISKS "disk1:10G,disk2:10G,disk3:10G"
      	$myops  add-attribute XEN_EXTRADISKS "disk1:4G,disk2:10G"
      
      which will add these extra disks to your xen containers. Note that
      this requires clientside changes from another commit to be installed
      in the XEN image.
      51552904
  13. 25 May, 2011 2 commits
  14. 04 Apr, 2011 1 commit
    • David Johnson's avatar
      Add dynamic, per-experiment blobs. Add tables for client side service blobs. · 40039320
      David Johnson authored
      Per-experiment blobs can be created by the parser, and are inserted into
      the blobs table at swapin based on what's in virt_blobs.  We go to some
      effort to keep any existing filename<->uuid mapping in teh blobs table
      so that any caching already done by the server and client in a previous
      download of a blob remains intact.  We also remove blobs on experiment
      modify that are no longer necessary.  Finally, we remove dynamic blobs
      at swapout.
      40039320
  15. 16 Nov, 2010 1 commit
    • Kevin Atkinson's avatar
      Add support for all node "tb-set-tarfiles". · a0d0c95e
      Kevin Atkinson authored
      "tb-set-tarfiles" is like "tb-set-node-tarfiles" except that it
      distributes the tarfile to all nodes rather than just one and that it
      uses frisbee to distribute the file.
      
      These changes involved 1) refactoring frisbee info from images table
      into a new table, frisbee_blobs, 2) a new experiment_blobs table, and
      3) a new tmcd command so the node knows how to get the files from the
      server.
      
      The changes where designed to be general purpose enough to eventually
      support:
        1) Distributing arbitrary files (not just tarfiles) to nodes
        2) Perform arbitrary actions on those files
        3) Use arbitrary methods to get the files
      
      As such the tmcd line is as follows:
        URL=* ACTION=*
      
      where URL is currently:
        frisbee.mcast://<ADDR>/<FILE>
      for example
        frisbee.mcast://234.16.184.192:18092/users/kevina/home-dir.tar.gz
      and when we get around to using a master Frisbee server it could be
        frisbee://*
      or it could be a file://, http://, etc.
      
      and ACTION is currently:
        unpack:<LOCATION>
      for example
        unpackt:/users
      with future syntax to be determined.
      a0d0c95e
  16. 12 Oct, 2010 1 commit
  17. 11 Oct, 2010 1 commit
    • Leigh B Stoller's avatar
      Work on an optimization to the perl code. Maybe you have noticed, but · 92f83e48
      Leigh B Stoller authored
      starting any one of our scripts can take a second or two. That time is
      spent including and compiling 10000s of thousands of lines of perl
      code, both from our libraries and from the perl libraries.
      
      Mostly this is just a maintenance thing; we just never thought about
      it much and we have a lot more code these days.
      
      So I have done two things.
      
      1) I have used SelfLoader() on some of our biggest perl modules.
         SelfLoader delays compilation until code is used. This is not as
         good as AutoLoader() though, and so I did it with just a few 
         modules (the biggest ones).
      
      2) Mostly I reorganized things:
      
        a) Split libdb into an EmulabConstants module and all the rest of
           the code, which is slowly getting phased out.
      
        b) Move little things around to avoid including libdb or Experiment
           (the biggest files).
      
        c) Change "use foo" in many places to a "require foo" in the
           function that actually uses that module. This was really a big
           win cause we have dozens of cases where we would include a
           module, but use it in only one place and typically not all.
      
      Most things are now starting up in 1/3 the time. I am hoping this will
      help to reduce the load spiking we see on boss, and also help with the
      upcoming Geni tutorial (which kill boss last time).
      92f83e48
  18. 03 Jun, 2010 1 commit
    • Leigh B Stoller's avatar
      Add more MLE support. Here is a sample NS file that demonstrates the · 958fc09d
      Leigh B Stoller authored
      new code. Note that this commit implements only the frontend part.
      
      set n1 [$ns node]
      set n2 [$ns node]
      set n3 [$ns node]
      
      set seg1 [$ns duplex-link $n1 $n2 * 0ms DropTail]
      set seg2 [$ns duplex-link $n2 $n3 * 0ms DropTail]
      tb-set-link-layer $seg1 1
      tb-set-link-layer $seg2 1
      
      set mypath [$ns make-path "seg1 seg2"]
      
      set link0 [$ns duplex-link $n1 $n3 * 0ms DropTail]
      $link0 implemented_by $mypath
      958fc09d
  19. 29 Mar, 2010 2 commits
  20. 20 Jul, 2009 1 commit
  21. 25 Jun, 2009 1 commit
  22. 23 Jun, 2009 1 commit
  23. 17 Jun, 2009 1 commit
  24. 11 Jun, 2009 1 commit
  25. 22 Apr, 2009 1 commit
  26. 17 Apr, 2009 1 commit
  27. 18 Mar, 2009 1 commit
  28. 06 Feb, 2009 1 commit
    • Leigh B. Stoller's avatar
      Start at an attempt to bring some sanity to the virt topology tables. · 68b193a5
      Leigh B. Stoller authored
      So far this wraps the virtual tables in objects, and I have changed
      xmlconvert already, but that needs more testing. Eventually I want to
      provide some simple generators like addnode and addlink so that I can
      use form the Protogeni code to build up a virtual topology from an
      rspec. Not sure how that will go.
      68b193a5