1. 01 Jul, 2002 1 commit
  2. 25 Jun, 2002 1 commit
  3. 24 Jun, 2002 1 commit
  4. 21 Jun, 2002 1 commit
  5. 11 Jun, 2002 1 commit
  6. 06 Jun, 2002 1 commit
  7. 05 Jun, 2002 1 commit
    • Leigh Stoller's avatar
      Changes to sshtb. Remove sshremote, and convert sshtb into a perl · 231fc2b1
      Leigh Stoller authored
      script that checks the database to see if local or remote. The problem
      with this is that the ssh syntax makes it hard to determine the host
      name by inspection. Would need to parse all the ssh args (bad idea),
      ot work backwards and try to figure out the difference between the
      command (which is not a string but a sequence of args) and the host
      and the preceeding ssh args. Hell with that! Changed sshtb to require
      a specific -host argument. Read the args and look for it. Error out of
      not found, to catch improper usage.
      
      The moral of this update: "sshtb [ssh args] -host <host> [more args ...]
      231fc2b1
  8. 28 May, 2002 1 commit
  9. 24 May, 2002 2 commits
    • Mac Newbold's avatar
      Big changes. Add idlecheck, sdisrunning and sddeploy to configure and the make... · 5aece56b
      Mac Newbold authored
      Big changes. Add idlecheck, sdisrunning and sddeploy to configure and the make files. Install sd* above into sbin dir. Rename sddeploy.pl and isrunning.pl.
      5aece56b
    • Robert Ricci's avatar
      New script: checkports · 64c78cae
      Robert Ricci authored
      Checks to make sure that all ports for an experiment are in the
      correct switch state. If they are enabled, they should have
      carrier.
      
      Note that enough code is shared between checkports and portstats
      that some of it could probably be moved to a library at this
      point.
      64c78cae
  10. 23 May, 2002 1 commit
    • Robert Ricci's avatar
      Added a GNUmakefile for the tools directory. · 6b4b6141
      Robert Ricci authored
      First, gives us a handy way to build all the tools, if there
      is ever more than one.
      
      Second, it's a workaround for a really annoying problem with
      configure. Since there was nothing in the tools/ directory itself,
      it wasn't getting created, so configure could not make
      tools/pcapper (since the parent directory didn't exist.)
      6b4b6141
  11. 22 May, 2002 1 commit
    • Robert Ricci's avatar
      Belated checkin of a lot of new pcapper features. Highlights: · 58c7b4bb
      Robert Ricci authored
      Event system:
      
      When compiled with -DEVENTSYS, can be made to wait for time to start
      in an experiment before starting to count packets. Times are also
      reported relative to experiment time start. Use the '-e' flag to
      enable.
      
      SUID support:
      
      If compiled with -DDROPROOT, and it seems that pcapper was started
      setuid root (euid == 0, and ruid != 0), drops root permissions after
      opening BPF (or raw socket in Linux.) This allows it get permissions
      to read packets, but still be killed by the user. This is particularly
      useful with the testbed's program objects.
      
      New command-line options:
      
      -s: Print out packet counts to stdout, in addition to listening
              on a socket ('-f -' does the same thing, too)
      -p: Count only payload sizes, not header sizes
      -e: Wait for event system time to start in pid/eid
      -z: Don't count zero-length packets in the packet counts (useful
              with '-p')
      
      Also, now creates a GNUmakefile the _right_ way.
      58c7b4bb
  12. 16 May, 2002 2 commits
  13. 09 May, 2002 3 commits
    • Robert Ricci's avatar
      New library function: libtestbed::TBDebugTimeStamp() · 29edb522
      Robert Ricci authored
      Is controlled by a new configure variable called TIMESTAMPS - if this
      variable is set, prints out a timestamp, along with its arguments (so
      that you can distinguish between the timesteamps.) Otherwise, does
      nothing. The basic idea is that we can sprinkle calls to this in the
      code, and only enable it on devel trees.
      29edb522
    • Chad Barb's avatar
      · eb4bccb3
      Chad Barb authored
      Added new vis tools.
      (we should remove the old ones soon)
      eb4bccb3
    • Leigh Stoller's avatar
      Commit the static routing support. Invoked from tbprerun, after the · 712fe222
      Leigh Stoller authored
      parser runs. The staticroutes script is a wrapper for Chad's route
      solver. The network optimization is currently turned off; use -t to
      turn it on, until I know if its correct.
      
      Note that Chad gets credit for routecalc.cc; I'm just committing the
      file for him, with a couple of trivial changes that I made.
      712fe222
  14. 08 May, 2002 1 commit
  15. 06 May, 2002 1 commit
  16. 02 May, 2002 1 commit
  17. 30 Apr, 2002 1 commit
    • Robert Ricci's avatar
      Added interswitch bandwidth tracking to ptopgen. This feature looks at · 0fc1f7a2
      Robert Ricci authored
      the vlans table to determine how much of the trunk bandwidth is
      currently 'reserved', and subtracts that from the trunk bandwidth
      reported in the output.
      
      This feature is disabled by default. However, you can enable it by
      putting the line
      TRACK_INTERSWITCH_BANDWIDTH=1
      in your defs file.
      0fc1f7a2
  18. 21 Apr, 2002 1 commit
  19. 04 Apr, 2002 1 commit
    • Leigh Stoller's avatar
      First round of ssl'ification of tmcd/tmcc. This needs to be looked at · ffe40d2e
      Leigh Stoller authored
      by smarter brains by me (I have asked Dave to look it over). Anyway ...
      
      I added a top level ssl directory which has a bunch of goo for
      creating certificates and keys.  I currently create a Certificate
      Authority, a server certificate, and a client certificate. The private
      keys for all three are unencrypted, so no password is required. All
      key/cert combos can be installed on boss. The client side needs the
      key/cert pair (in one file), and the CA cert (no key!). There are
      install targets to do this. NOTE, you do not want to create/install
      these without being careful, since you could instantly invalidate all
      the clients!
      
      I have added the necessary SSL routines to tmcd/tmcc. See the ssl.c
      and ssl.h file. I have set it up so that with all you need to do is
      uncomment three lines in the makefile, and accept,connect,read,write,
      and close are redirected to SSL'ified versions in ssl.c. The current
      security model is that the client and server both "demand" certificate
      verification from the other side (as opposed to just server side
      verification). tmcd reads in server.pem, while tmcc reads in
      client.pem. Both read in the emulab.pem (CA cert with no private
      key).
      
      Initial testing indicates I have done this at least partially
      correctly. Whoever invented this stuff has a really twisted mind
      though. There are some questions at the top of ssl.c that need to be
      answered.
      
      Oh, also redid all the syslog stuff throughout tmcd.
      ffe40d2e
  20. 02 Apr, 2002 1 commit
    • Leigh Stoller's avatar
      Ah, the things I do. Added web page and backend script to scroll the · 07323144
      Leigh Stoller authored
      experiment log file to the user as it gets generated. The web page
      does not redraw, it just never exits until the backend sees that the
      experiement transition is done, and then it exists, which terminates
      the script. I added a DB field to hold the logfile name and some
      routines in libdb, with the idea that this might be more generally
      useful at some point. Next time you create an experiment, look for the
      last sentence, and click on "realtime".
      07323144
  21. 01 Apr, 2002 3 commits
    • Robert Ricci's avatar
      New perl event system functions: EventSend{,Warn,Fatal}() These · e58adf16
      Robert Ricci authored
      basically work like the libdb.pm functions of the same name (and in
      fact much of the code was stolen from there.)
      
      Provides a simple single function call to send events. Intended for
      use in scripts whose primary purpose is _not_ to interface with the
      event system, like power and node_reboot. If more control/efficiency
      is required (for example, these functions reconnect to the event
      system every time they're called) , it's better to use the C-like API.
      
      Example call:
      EventSendFatal(objtype   => "TBEXAMPLE",
                     eventtype => $ARGV[0],
                     host      => "*" );
      e58adf16
    • Robert Ricci's avatar
      stated now gets intstalled in @prefix@/sbin · aa2bd0a2
      Robert Ricci authored
      aa2bd0a2
    • Leigh Stoller's avatar
      First cut at supporting RON (or more generally, remote nodes). · bd587829
      Leigh Stoller authored
      * tmcd/ron: A new directory of client code, based on the freebsd
        client code, but scaled back to the bare minimum. Does only account
        and group file maintenance. I redid the account stuff so that only
        emulab accounts are operated on. Does not require a stub file, but
        instead keeps a couple of local dbm files recording what groups and
        accounts were added by Emulab. There is a ton of paranoia checking
        to make sure that local accounts are not touched.
      
        The update script that runs on the client node detaches so that the
        ssh from boss returns immediately. update can also be run from the
        node periodically and at boottime. The script is installed setuid
        root, but checks to make sure that *only* root or "emulabman" has
        invoked it.
      
      * utils/sshremote: New file. For remote nodes, instead of using sshtb,
        use sshremote, which ssh's in as "emulabman", which needs to be a
        local non-root user, but with an authorized_keys file containing
        boss' public key.
      
      * web interface changes: Allow user to specify his own public key in
        addition to the emulab key.
      
        Add option in showexp page to update accounts on nodes in the
        experiment. I was originally intending to do this from approveuser,
        but this was easier and faster. I will add an option to do it on the
        approveuser page later.
      
      * libdb.pm: Add a TBIsNodeRemote() query to see if a node is in the
        local testbed or a pcRemote node. Currently, this test is hardwired
        to a check for class=pcRemote, but this will need to change to a
        node_types property at some point.
      
      * node_update: Reorg so that there is a maximum number of children
        created. Previously, a child was forked for each node, but that
        could chew up too many processes, especially for remote nodes which
        might hang up. For the same reason, we need to "lock" the experiment
        so that it cannot be terminated while a node_update is in progress.
        Might be to relax that, but this was easy for now. Also add
        distinction between local and remote, since for remote we use
        sshremote insted of sshtb. Various cleanup stuff
      
      * mkacct; When generating a new account, include user supplied pub key
        in the authorized keys file, in addition to the eumlab generated
        key. Both keys are stored in the DB in the users table. Anytime we
        update an account, get a fresh copy of the emulab pub key, in case
        user changes it.
      bd587829
  22. 28 Mar, 2002 1 commit
    • Robert Ricci's avatar
      New script: stated · 447bb8a5
      Robert Ricci authored
      Watches for events sent by TMCD regarding the state of nodes. Records
      this information in the database. Also watches for nodes that undergo
      invalid state transitions, or stay in the same state for too long.
      Right now, the only action it takes is to send email, but in the
      future, will take action to 'unstick' nodes.
      
      Not yet installed by default.
      447bb8a5
  23. 25 Mar, 2002 1 commit
  24. 22 Mar, 2002 1 commit
    • Leigh Stoller's avatar
      New "program agent" that runs on the client nodes (freebsd and linux) · 187a3a18
      Leigh Stoller authored
      and reponds to PROGRAM events. Currently, just start and stop. Start
      takes a COMMAND= argument, and allows arbitrary command lines since I
      pass the whole thing off to the shell. Caveat; the agent runs as root
      and starts the program as root. You can has as many program objects in
      your NS file as you like, but each one can be started once; you have
      to either stop or wait for the old one to finish before trying to
      start again.
      187a3a18
  25. 11 Mar, 2002 1 commit
    • Leigh Stoller's avatar
      Rename exports_setup.proxy and console_setup.proxy to .in versions and · 589d4872
      Leigh Stoller authored
      remove the originals, so that we can run the files through configure.
      
      NOTE: I wanted to keep the RCS history intact so I went over to the
      CVS directory on moab and copied the ,v file to the new names, and
      then did a normal cvs remove the originals. This keeps the RCS history
      going without screwing up anyone. Not a recommended approach, but what
      the hell.
      589d4872
  26. 07 Mar, 2002 1 commit
  27. 05 Mar, 2002 1 commit
  28. 04 Mar, 2002 1 commit
    • Robert Ricci's avatar
      New script: schemacheck - Checks to see if the currently-running database · e42f812d
      Robert Ricci authored
      matches the one in the checked-out source.
      
      This now gets called as part of the 'boss-install' target, to guard
      against installing software that is out-of-sync with the running
      database. It is skipped if @prefix@ is not /usr/testbed, to avoid
      getting in the way of development.
      
      If you want to bypass this check, use the 'boss-install-force' target.
      Use of this, however, is not recommended.
      e42f812d
  29. 01 Mar, 2002 1 commit
  30. 27 Feb, 2002 4 commits
  31. 24 Feb, 2002 1 commit