1. 22 Aug, 2003 1 commit
  2. 06 Aug, 2003 1 commit
  3. 28 Jul, 2003 1 commit
    • Robert Ricci's avatar
      Add newnode_reboot, which is used on nodes that aren't fully in the · 1f5419ae
      Robert Ricci authored
      database yet, so using node_reboot on them would be catastrophic.
      Uses the special newnode MFS's ssh key.
      
      Also, when a node has booted or the first time, it may be up on a
      temporary IP address rather than its permanent one, so we pass the
      node's IP rather than node_id on the command line.
      
      Only tries ssh.
      1f5419ae
  4. 25 Jul, 2003 1 commit
    • Leigh B. Stoller's avatar
      Commit my version of assign_wrapper as assign_wrapper-new, and change · 62e38deb
      Leigh B. Stoller authored
      tbswap to use this version inside the testbed project only! All other
      projects will see the old version for now; there are just too many
      things to test, and the testsuite gets just a fraction of them. Some
      highlights (which I will expand on later when I commit this version to
      the main version):
      
      * New -t option to create the TOP file, and then exit. The only other
        side effect of this is to update the min/max nodes for the
        experiment in the DB, unles new option -n (impotent mode) is given.
      
      * New -n option to operate in impotent mode; do not allocate nodes and
        do not modify the DB. Okay, so this option is not as great as it
        sounds. I eventually hit the point of diminishing returns, with
        trying to make things work right without DB modification. At some
        point I just throw in the towel and exit. This currently happens after
        interpolating the link results of assign. But, I have found it very
        useful, and could get better with time. Being able to run assign on
        the main DB without sucking up the nodes is nice for debugging.
      
      * Lots of data structure organization, mostly on the virtual topology
        side of assign (you can think of assign as two sections, the part
        that interprets the DB tables and creates the TOP file, and the part
        that reads the results of assign and sets up all the physical stuff
        in the DB). I removed numerous global hashes, and combined them into
        aggregate data structures, such as they are in Perl. My approach for
        this was to read the tables from the DB, and keep them handy,
        extending them as needed with stuff that assign_wrapper generates as
        it proceeds. This has the side effect of cutting down on the number
        of queries as well.
      
        The next task is to do the physical side reorg, but not up for that
        yet.
      62e38deb
  5. 14 Jul, 2003 1 commit
  6. 08 Jul, 2003 1 commit
  7. 30 Jun, 2003 1 commit
    • Leigh B. Stoller's avatar
      Make the new parser live on mini. New parser ssh'es over to ops to · 2202fc5a
      Leigh B. Stoller authored
      do the actual parse. The parser now spits out XML instead of DB
      queries, and the wrapper on boss converts that to DB insertions after
      verification. There are some makefile changes as well to install the
      new parser on ops via NFS, since otherwise the parser could
      intolerably out of date on ops!
      2202fc5a
  8. 21 Apr, 2003 1 commit
    • Robert Ricci's avatar
      New script: switchmac . Lists all MACs that have been learned by all · 5f8fea31
      Robert Ricci authored
      the experimental switches. The idea is to be able to auto-detect
      where a node has been plugged in, so that we fill out the wires table
      without any manual intervention! This is a step towards being able
      to automate the adding of nodes.
      
      Has a runtime linear in the number of VLANs on the experimental
      switches, so it should run pretty fast on a new testbed, but can
      be kinda slow on, say, ours.
      5f8fea31
  9. 16 Apr, 2003 1 commit
    • Leigh B. Stoller's avatar
      Add support for idleswapping an experiment as the creator of the · ff5a57de
      Leigh B. Stoller authored
      experiment, rather than as an administrator, which presents group
      permission problems when the experiment is in a subgroup (requires two
      additional group, whereas suexec adds only one group). That aside, the
      correct approach is to run the swap as the creator. To do that, must
      flip to the user (from the admin person) in the backend using the new
      idleswap script, and then run the normal swapexp. Add new option to
      swapexp (-i) which changes the email slightly to make it clear that
      the experiment was idleswapped, and so that the From: is tbops not the
      user (again, to make it more clear).
      ff5a57de
  10. 04 Apr, 2003 1 commit
    • Chad Barb's avatar
      · c5333324
      Chad Barb authored
      tbswapin and tbswapout are no more.
      c5333324
  11. 03 Apr, 2003 1 commit
  12. 11 Mar, 2003 1 commit
    • Chad Barb's avatar
      · caad3a35
      Chad Barb authored
      New version of unified tbswap in/out.
      startexp/endexp/swapexp have been changed to use new script.
      
      tbswapin and tbswapout have been replaced with a script which
      spits out a warning message, then calls tbswap appropriately.
      
      The README has also been modified.
      caad3a35
  13. 07 Mar, 2003 1 commit
  14. 13 Feb, 2003 1 commit
  15. 24 Jan, 2003 1 commit
  16. 19 Dec, 2002 1 commit
  17. 24 Oct, 2002 1 commit
    • Leigh B. Stoller's avatar
      Add stuff to update the SFS keys on the fileserver after someone uses · cc1c4e54
      Leigh B. Stoller authored
      the web page to add/delete a key! Nodes were getting updated, but
      the SFS server was not cause there was no program to fire the new keys
      over there.
      
      The operation is currently simple. sfskey_update on boss constructs a
      new sfs_users file. Then it runs sfskey_update.proxy on ops (vis ssh
      of course), and gives it the new file via stdin. The proxy creates the
      .pub version from that file, and then moves the two new files into
      place in /etc/sfs. I employ the same locking stuff that Rob did in
      exports_setup and named_setup to prevent multiple updates from
      stacking up. Not likely, but might as well. Also note that the entire
      file is regenerated. When we get 5000 users this might have to change
      a little bit!
      
      Also changed mkacct slightly. Instead of doing a "sfskey register" on
      ops after generating the new key, just add it to the DB. Then fire off
      an sfskey_update to push the new keys over. Also add a -f flag to
      mkacct for use from the web page to indicate that the user has changed
      his SFS keys. Note that mkacct should probably take a series of flags
      since we have it as a wrapper for several things. Or maybe split all
      this stuff up.
      cc1c4e54
  18. 18 Oct, 2002 1 commit
    • Mac Newbold's avatar
      Merge the newstated branch with the main tree. · 5c961517
      Mac Newbold authored
      Changes to watch out for:
      
      - db calls that change boot info in nodes table are now calls to os_select
      
      - whenever you want to change a node's pxe boot info, or def or next boot
      osids or paths, use os_select.
      
      - when you need to wait for a node to reach some point in the boot process
      (like ISUP), check the state in the database using the lib calls
      
      - Proxydhcp now sends a BOOTING state for each node that it talks to.
      
      - OSs that don't send ISUP will have one generated for them by stated
      either when they ping (if they support ping) or immediately after they get
      to BOOTING.
      
      - States now have timeouts. Actions aren't currently carried out, but they
      will be soon. If you notice problems here, let me know... we're still
      tuning it. (Before all timeouts were set to "none" in the db)
      
      One temporary change:
      
      - While I make our new free node manager daemon (freed), all nodes are
      forced into reloading when they're nfreed and the calls to reset the os
      are disabled (that will move into freed).
      5c961517
  19. 09 Oct, 2002 1 commit
    • Mac Newbold's avatar
      Add a new script: tbresize · 0dd12dba
      Mac Newbold authored
      (installs into /usr/testbed/bin/tbresize but isn't avail. on ops yet)
      
      Usage: tbresize [-d] -a -e pid,eid -n num -t type [-p prefix]
             tbresize [-d] -r -e pid,eid <node> [<node> ...]
             tbresize -h
      Use -h to show this usage message.
      Use -d to enable extra debugging output.
      Use -a to add nodes to an experiment.
      Use -r to remove nodes from an experiment.
      Use -e pid,eid to specify the experiment to resize.
      Use -n to specify the number of nodes to add.
      Use -t to specify the type of the nodes to be added (pc, pc850, pc600,
      etc).
      Use -p to specify a prefix for vnames (i.e. "node" => node0 .. nodeN).
      With -r, specify a list of one or more nodes to be removed (i.e. pcXX).
      
      Can even resize an expt down to no nodes then back up again. If it has
      one LAN/link in the expt, it adds the new nodes to it. If it has zero or
      more than one, it doesn't connect the new nodes to the topology.
      
      After finding and reserving (or before freeing) it fixes up the right
      places in the db and reruns snmpit, then reruns exports_setup and
      named_setup and reboots all the nodes that are now in the expt so they get
      updated configuration data.
      
      Even visualizes properly after being resized, the only catch is that the
      ns file is the original one, not one generated from the db.
      
      Use it, abuse it, have fun with it, and let me know what breaks.
      0dd12dba
  20. 02 Oct, 2002 1 commit
    • Chad Barb's avatar
      Initial version of delay web control. · dd27f82a
      Chad Barb authored
      Functional, but needs some work.
      Won't allow non-admins to use it (since it doesn't do "proper" permission checking yet.)
      Input is aggressively checked for bad mojo before being pasted into any command line.
      
      Run from /delaycontrol.php3?eid=exptname&pid=projname
      Admin bit must be on.
      dd27f82a
  21. 10 Sep, 2002 1 commit
  22. 06 Sep, 2002 1 commit
  23. 11 Jul, 2002 1 commit
  24. 07 Jul, 2002 1 commit
  25. 28 Jun, 2002 1 commit
  26. 24 Jun, 2002 1 commit
  27. 11 Jun, 2002 1 commit
  28. 31 May, 2002 1 commit
  29. 24 May, 2002 1 commit
    • 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
  30. 16 May, 2002 1 commit
  31. 14 May, 2002 1 commit
  32. 09 May, 2002 1 commit
    • Leigh B. Stoller's avatar
      Commit the static routing support. Invoked from tbprerun, after the · 712fe222
      Leigh B. 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
  33. 08 May, 2002 1 commit
  34. 06 May, 2002 1 commit
    • Chad Barb's avatar
      · cc1dfea4
      Chad Barb authored
      added build of wanlinksolve.cc
      cc1dfea4
  35. 18 Apr, 2002 1 commit
  36. 02 Apr, 2002 1 commit
    • Leigh B. Stoller's avatar
      Ah, the things I do. Added web page and backend script to scroll the · 07323144
      Leigh B. 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
  37. 11 Mar, 2002 1 commit
    • Leigh B. Stoller's avatar
      Rename exports_setup.proxy and console_setup.proxy to .in versions and · 589d4872
      Leigh B. 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
  38. 08 Mar, 2002 1 commit
  39. 07 Mar, 2002 1 commit
  40. 05 Mar, 2002 1 commit
    • Leigh B. Stoller's avatar
      A wide ranging set of event system changes: · 0318cc22
      Leigh B. Stoller authored
      assign_wrapper.in: Hack in a change that ensures a delay node is
      created for any link on which an event is posted (up,down,modify),
      no matter what its initial parameters are. ie: If a link is created
      with no delay, but there is an event that adds a delay later, then we
      must drop in a delay node. Same for up/down on a link. We do this in
      the delay node. I am reasonably confident that this change is fine for
      duplex links, but I am less sure of the effect on lans!
      
      eventsys_control.in: Checkpoint latest changes. Add "replay" option,
      which right now just stops and starts the event scheduler so that it
      reloads the entire event list. Add check for existing experiment, and
      that the experiment is either active or swapping (do not want to start
      a scheduler for a swapped out experiment!). Add check to see if there
      are any events, and skip startup if there are not events in the DB.
      Lastly, get very serious about preventing more than one scheduler from
      being started, either by accident or intentionally. My protocol is to
      lock the table, grab and set the pid to -pid, test the pid for a
      positive value, and if positive, send the scheduler a kill(TERM) so
      that it can cleanup, clear the pid to zero in the DB, and exit. This
      approach ensures that we do not try to send a kill to a pid that is no
      longer active or owned by the user (this last part is not really
      necessary cause of how pids are reused, but it was easy to add so why
      not).
      
      exports_setup.in: Trivial change to make it easier to turn this on
      temporarily in devel trees.
      named_setup.in: Ditto.
      
      node_reboot.in: Add call to TBdbfork() in child cause of apparent DB
      connection problems across forks. In the child, set the eventstatus
      for the node to REBOOT if successful (not this event status stuff is
      temporary, will be recast in next set of revisions).
      
      GNUmakefile:  Add new controlling program, eventsys_control.
      power.in:     Ditto previous comment about REBOOT.
      os_setup.in:  Non event system cleanups.
      tbend.in:     Add DB cleanup of the new virt_trafgens and eventlist tables.
      tbprerun.in:  Ditto.
      tbreport.in:  Print out the event list in a pretty print format.
      tbswapin.in:  Add call to start the event system. Also a big fix; move
                    the named script up above the os_setup so that the named
                    tables have been updated by the time the first node
                    reboots. I noticed that nodes were failing on gethostbyname().
      tbswapout.in: Add call to stop the event system.
      0318cc22