1. 23 Oct, 2003 1 commit
    • Kirk Webb's avatar
      · 5b52831c
      Kirk Webb authored
      Well, here it is:  The checkin implementing robust recovery/retry and
      asynchronous safe termination in plab allocation/deallocation/setup.
      
      Here are some of the more prominent changes/additions:
      
      * Bounded plab agent communication
        Scripts should never hang waiting for plab xmlrpc commands to complete;
        they have their own internal timeouts.  Node.create() in libplab is an
        exception, but is always run under a timeout constraint in vnode_setup
        and can be changed easily if the need arises.
      
      * Wrote functions in libplab to do the retry/recovery/timeout of remote
        command exection.
      
      * Wrapped critical sections with a signal watcher.
      
      * Added code to handle various error conditions properly
      
      * Added a libtestbed function, TBForkCmd, which runs a given program in
        a child process, and can optionally catch incoming SIGTERMs and terminate
        the child (then exit itself).
      
      * Fixed up vnode_setup to batch the 'plabnode free' operation along with
        a few other cleanups.  This should alleviate Jay's concern about how
        long it used to take to teardown a plab expt.
      
      * Whacked plabmonitord into better shape; fixed a couple bugs, taught it how
        to daemonize, and implemented a priority list for testing broken plab nodes.
        This list causes new (as yet unseen) nodes to be tried first over ones that
        have been tested already.
      5b52831c
  2. 23 Sep, 2003 1 commit
  3. 28 May, 2003 1 commit
  4. 24 May, 2003 1 commit
  5. 24 Jan, 2003 1 commit
  6. 06 Jan, 2003 1 commit
  7. 13 Sep, 2002 1 commit
  8. 11 Jul, 2002 1 commit
  9. 09 Jul, 2002 1 commit
  10. 07 Jul, 2002 1 commit
  11. 16 Jun, 2002 1 commit
  12. 09 May, 2002 1 commit
    • 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
  13. 08 May, 2002 1 commit
  14. 01 Apr, 2002 1 commit
  15. 12 Feb, 2002 1 commit
  16. 26 Dec, 2001 1 commit
    • Leigh Stoller's avatar
      A bunch o' account managment script schanges. I have reworked · 46068860
      Leigh Stoller authored
      mkprojdir, mkacct-cntrl, mkgroup, and group-update into a set of new
      scripts that are more specific to their intended operation, and strive
      to do less work.
      
      1. mkacct - Replaces mkacct-cntrl. This script no longer does any
         group stuff. All it does is create new accounts, or update the
         password and gecos fields of existing accounts. Usage is the same
         as it was: "mkacct <userid>", and is typically invoked from the web
         interface via the approveuser form.
      
      2. mkgroup - Replaces group-update. This script creates new groups,
         either for the main project when it is approved, or for subgroup
         creation. This script does not alter the group membership. Usage
         is typically from the web interface, but mkgroup can be invoked
         from the command line: "mkgroup [-b | -a] <pid> <gid>" where -b
         puts it in the background and sends email later, while -a just
         captures the log and emails. This "audit" feature is going to find
         its way into more scripts as soon as I figure out a neat and clean
         perl mechanism to make it easy.
      
      3. setgroups - Replaces group-update. This script modifies the group
         membership of either specific users, or all the users in a
         project. It is typically invoked from the web interface when a
         project leader edits the subgroup membership or when a user is
         first approved to a project or subgroup. Command line usage is:
      
      	setgroups [-b | -a] -p <pid> [user ...]
              setgroups [-b | -a] [user ...]\n
      
         The first form is mostly a means to speed things up. The web
         interfaces knows exactly what users have need to be changed, but a
         global project update is nice too.
      
      4. mkproj - Replaces mkprojdir. Actually, mkproj still has all that
         directory code, but it also handles creating the groups and the
         account for the project leader. Part of my policy to move as much
         random code out of the web interface and into the PERL backend
         where it belongs.
      46068860
  17. 17 Oct, 2001 1 commit
    • Leigh Stoller's avatar
      Rework of the batch experiment code. Unified it with the immediate · 4d420b21
      Leigh Stoller authored
      experiment code. No longer uses another table. Rather, the experiment
      record contains a couple of extra fields for the batch system. Also
      combined some of the backend code (no longer a killbatch script).
      Also added scriptable experiments; the batchexp program in the bin
      directory can start an experiment from the command line, and in fact
      is used from the web page for both batch experiments and immediate
      experiments (-i option). All of the DB code that was in the web
      interfaces was moved to batchexp.
      4d420b21
  18. 16 Oct, 2001 1 commit
  19. 26 Sep, 2001 1 commit
  20. 19 Sep, 2001 1 commit
  21. 28 Aug, 2001 1 commit
    • Leigh Stoller's avatar
      Cleanup of the Chris' TB scripts. Cosmetic in principle, but reworked · c874636d
      Leigh Stoller authored
      to use the DB library access routines, which also changed in response
      to what the tb scripts needed. Added some functions and mor constants.
      Removed the -nologfile option from all the scripts (startexp and
      endexp too), since there is no reason for these scripts to worry about
      log files. Thats handled in the wrappers. Tested with the testsuite
      and live in my own tree.
      c874636d
  22. 23 Aug, 2001 1 commit
    • Mac Newbold's avatar
      Lots of small changes for turning our 'require lib*' lines into 'use lib*'... · e2ed8a1c
      Mac Newbold authored
      Lots of small changes for turning our 'require lib*' lines into 'use lib*' lines. Proper modules declare themselves as a package, and use Exporter to export the names of the subroutines that should be visible from the outside world. Many of ours didn't do that, it was just a file with a bunch of subs in it. So now I've fixed many of them to be proper, and removed the requires and 'push(@INC,...)' hacks and changed it to the proper 'use lib @prefix@/lib/;' and use lib*.
      e2ed8a1c
  23. 10 May, 2001 1 commit
    • Leigh Stoller's avatar
      Lots of little changes for sending email to the right places, with · 3285bc3e
      Leigh Stoller authored
      proper headers. Split out some of the mail into testbed-logs,
      testbed-ops, and testbed-approval. Added a library for including from
      our perl scripts. Contains a couple of mail helper functions, but will
      hopefully contain more as time goes by.
      
      Fixed a bug in the web interface that was causing breakage for people
      with multiple accounts. Mac and Jay have noticed this, when logging
      out and trying to join or create a project under a new or different
      name.
      3285bc3e