1. 10 Nov, 2006 1 commit
  2. 25 Oct, 2006 1 commit
    • Leigh B. Stoller's avatar
      Makefile Whacking! Try to deal with the problem caused by the delay · 7590f9c5
      Leigh B. Stoller authored
      between when something is installed and when post-install runs. Short
      of a global lock (which we probably need anyway someday), my solution
      is this. In your makefiles, add these variables before the line that
      has the include of $(TESTBED_SRCDIR)/GNUmakerules:
      
      	SETUID_BIN_SCRIPTS   =
      	SETUID_SBIN_SCRIPTS  =
      
      I have added three new rules to GNUmakerules that look like this:
      
      	$(addprefix $(SBINDIR)/, $(SETUID_SBIN_SCRIPTS)): $(SBINDIR)/%: %
      		echo "Installing (setuid) $<"
      		-mkdir -p $(INSTALL_SBINDIR)
      		$(SUDO) $(INSTALL) -o root -m 4755 $< $@
      
      Yep, your eyes ain't lying to you; use sudo to run the target so that
      install does the right thing (which is that the old file is not
      replaced until the new one has the proper attributes on it).
      
      Note that post-install is still needed for the initial install, but
      should no longer be needed for day to day installs since all that other
      stuff post-install does is mkdir/chmod on directories.
      7590f9c5
  3. 23 Oct, 2006 1 commit
  4. 20 Oct, 2006 4 commits
    • Mike Hibler's avatar
      Oh crap #2: typo in configure variable · b228e982
      Mike Hibler authored
      b228e982
    • Mike Hibler's avatar
      Fix logic bug that has been around a while · 6326c690
      Mike Hibler authored
      6326c690
    • Mike Hibler's avatar
      Ah crap #1. Typo in configure variable. · 6aae280b
      Mike Hibler authored
      6aae280b
    • 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
  5. 10 Oct, 2006 1 commit
  6. 03 Oct, 2006 1 commit
  7. 26 Sep, 2006 1 commit
  8. 14 Sep, 2006 6 commits
  9. 13 Sep, 2006 2 commits
  10. 12 Sep, 2006 1 commit
    • Leigh B. Stoller's avatar
      This started out as a simple little hack to add a StopRun "ns" event, but · cbdc4178
      Leigh B. Stoller authored
      it got more complicated as it progressed.
      
      The bulk of the change was changing template_exprun so that it can take a
      pid/eid as an alternative to eid/guid. This is a big convenience since its
      easy to find the template from a running experiment, and it makes it
      possible to invoke from the event scheduler, which has never heard of a
      template before (and its not something I wanted to teach it about).  Its
      also easier on users.
      
      Anyway, back to the stoprun event. You can now do this:
      
      	$ns at 100 "$ns stoprun"
      or
      	tevc -e pid/eid now ns stoprun
      
      You can add the -w option to wait for the completion event that is sent,
      but this brings me to the glaring problems with this whole thing.
      
      * First, the scheduler has to fire off the stoprun in the background,
        since if it waits, we get deadlock. Why? Cause the implementation of
        stoprun uses the event system (SNAPSHOT event, other things), and if
        the scheduler is sitting and waiting, nothing...
      cbdc4178
  11. 10 Sep, 2006 1 commit
    • Leigh B. Stoller's avatar
      The bulk of this commit adds the ability to run the program agent on ops · e8bb6bca
      Leigh B. Stoller authored
      so that users can schedule program events to run there. For example:
      
      	set myprog [new Program $ns]
      	$myprog set node "ops"
      	$myprog set command "/usr/bin/env >& /tmp/foo"
      
      	$ns at 10 "$myprog start"
      or
      	tevc -e pid/eid now myprog start
      
      Since the program agent cannot talk to tmcd from ops, there are new
      routines to create the config files that the program agent uses, in
      the expertment tbdata directory.
      
      I also rewrote the eventsys.proxy script that starts the event
      scheduler on ops; I rolled the startup of the program agent into this
      script, via new -a option which is passed over from boss when an ops
      program agent is detected in the virt topology. This keep the number
      of new processes on ops to a small number.
      
      Also part of the above rewrite is that we now catch when event
      scheduler (or the program agent) exits abnormally, sending email to
      tbops and the swapper of the experiment. We have been seeing abnormal
      exits of the scheduler and it would good to detect and see if we can
      figure out what is going wrong.
      
      Other small bug fixes in experiment run.
      e8bb6bca
  12. 07 Sep, 2006 1 commit
  13. 06 Sep, 2006 1 commit
    • Leigh B. Stoller's avatar
      Okay, this is a nasty little hack ... Add support for a global delays · d4881005
      Leigh B. Stoller authored
      reset. I've done this with an event group cause otherwise I was going
      to get sucked into the event system and spit out the other end. You can
      reset the delays in your experiment either from the ns file:
      
      	$ns at 100 "$ns reset-lans"
      
      or from the command line:
      
      	tevc -e foo/bar now all_lans reset
      
      and yes, "all_lans" is a magic token.
      
      It would be nice to support per-link or lan reset, but that is going
      to require reorganizing the delay start up scripts on the delay nodes,
      since right now a single delay agent operates for muliple links and lans.
      d4881005
  14. 05 Sep, 2006 2 commits
    • Leigh B. Stoller's avatar
      Another bugfix. · 9e0eaad1
      Leigh B. Stoller authored
      9e0eaad1
    • Leigh B. Stoller's avatar
      A bunch of template changes resulting from meetings last week. · 087dbfff
      Leigh B. Stoller authored
      * Add XMLRPC interface for template swapin,stoprun,startrun,swapout and
        add the appropriate wrappers to the script_wrapper on ops.
      
      * Allow parameter descriptions in NS files. This is probably not in its
        final form since its a bit confusing as to what has priority; something
        in the NS file or a metadata item. Anyway, you can do this in your NS
        file:
      
      	$ns define-template-parameter GUID "0/0" "The GUID to be analyzed"
      
        The rules are currently that the NS file description has priority and
        is copied to child templates, unless the user has modified a description
        via the web interface, in which case the NS file description is ignored.
        I know, sounds awful, but for the most part people are going to use the
        NS file anyway.
      
      * Add "clear" option when starting a new experiment run; the per
        experiment DB at the logholes are cleared. Note that this is *not* the
        default behaviour; you have to either check the checkbox on the web form
        or use the -c option to the script wrapper, or clear=yes if talking
        directly to the XMLRPC server.
      
      * Fix up how email is generated for template_swapin and template_create,
        so that Kevin can debug tblog/tbreport stuff, but also so that we maintain
        mail logs as before. I have made some improvements to libaudit so as to
        centralize the mail goo, and avoid duplicating all that stuff.
      
      * Minor fixes to the program agent so that the new environment strings are
        sent before the program agent exits and reloads them!
      
      * Other minor little things.
      087dbfff
  15. 30 Aug, 2006 1 commit
  16. 29 Aug, 2006 1 commit
  17. 25 Aug, 2006 1 commit
    • Kirk Webb's avatar
      · e3c90cb9
      Kirk Webb authored
      Fix experiment event stream unsubscribe bug.
      e3c90cb9
  18. 15 Aug, 2006 1 commit
  19. 14 Aug, 2006 1 commit
    • Leigh B. Stoller's avatar
      Change for templates. A new experiment run will cause the program · 0607b3b4
      Leigh B. Stoller authored
      agent to exit. rc.progagent now loops, restarting the program agent,
      but first getting new copies of the agent list and the environment
      from tmcd.
      
      Note that this conflicts slightly with the pa-wrapper used on plab
      nodes, which also loops. I think we can just get rid of pa-wrapper
      now, along with a slight change to rc.progagent. I'm gonna let Kirk
      comment on this.
      
      Need new images ...
      0607b3b4
  20. 11 Aug, 2006 1 commit
    • Kirk Webb's avatar
      · 169d5076
      Kirk Webb authored
      Fix up another place where the hostname lookup can fail, and thus cause
      the proxy (or anything else) to exit.  Both evproxyplab and the event lib
      now first try to lookup the hostname to get the IP, and then fall
      back to grabbing the IP from /var/emulab/myip.
      169d5076
  21. 10 Aug, 2006 1 commit
    • Kirk Webb's avatar
      · 7901885c
      Kirk Webb authored
      The other half of the changes that cause the plab event proxy to now try
      to get the routable IP of the node from tmcd rather than relying on
      the success of a hostname lookup.  It will still fall back to trying a
      hostname lookup if it can't get the IP from tmcd.
      7901885c
  22. 03 Aug, 2006 1 commit
  23. 28 Jul, 2006 2 commits
  24. 25 Jul, 2006 3 commits
  25. 17 Jul, 2006 1 commit
  26. 14 Jul, 2006 1 commit
  27. 13 Jul, 2006 1 commit
    • Mike Hibler's avatar
      Ugly-ass backward-compat fixes. · aa9dba78
      Mike Hibler authored
      Still not complete, we really have to disable the LAN-optimization if the
      experiment involves a node running an old linktest.
      aa9dba78