1. 29 Apr, 2004 3 commits
    • Leigh Stoller's avatar
      Add prelim support for using linktest. Because of problems, this is · 6cdccbd2
      Leigh Stoller authored
      currently available to only people with stud=1 status in the DB.
      
      * www/tbauth.php3: Add a STUDLY() function to check that bit.
      
      * www/linktest.php3: New page to run linktest on the fly. The level
        defaults to the current level in the experiments table, but you can
        override that via the form on the page.
      
      * www/showexp.php3: Add link to aforementioned page. STUDLY() only.
      
      * www/beginexp_form.php3: Add an option (selection) to set the linktest
        level for create/swapin. Defaults to 0 (no linktest). STUDLY() only.
      
      * www/editexp.php3: Add an option to edit the default linktest level
        for an experiment. STUDLY() only.
      
      * tbsetup/batchexp.in and tbsetup/swapexp.in: Add code to optionally run
        the linktest, sending email if it fails (exists with non-zero status).
        Failure does not affect the swapin.
      6cdccbd2
    • Timothy Stack's avatar
      b43f1ae4
    • Leigh Stoller's avatar
      Fix for the problem of not setting default values when inserting · 6ab03d5f
      Leigh Stoller authored
      experiment table rows after a parse. It used to be that slots that
      were not explicitly given values by the parser would be left as
      whatever they were in the DB. Now I get the default values by doing
      a "describe experiments" query, inserting those values for any slot
      that is not set by the parser.
      6ab03d5f
  2. 28 Apr, 2004 8 commits
  3. 27 Apr, 2004 2 commits
    • Jay Lepreau's avatar
    • Robert Ricci's avatar
      Change the termination conditions in subtle, but important, way. When using · c91cc414
      Robert Ricci authored
      epsilon termination (and ALLOW_NEGATIVE_EPSILON), it used to be the case that
      we wrapped the termination condition in a fabs(), and compared that to epsilon.
      The termination condition is basically a measure of how 'stable' of a score
      we're at. What this meant was that we used to keep going until we reached a
      space where the solution was going neither up nor down too much. All this is
      relative to the difference between initial socre and the best score - so, if
      those are close (ie. it's an easy problem), we could end up thrashing a whole
      lot. With the new behavior, if we ever hit a spot in which solutions start
      getting worse, we'll stop.
      
      Also, fix the GNUPLOT_OUTPUT code, which I used to debut this.
      c91cc414
  4. 26 Apr, 2004 5 commits
    • Leigh Stoller's avatar
      Add -p option to xmlconvert so that converter knows to use older · 6cdef019
      Leigh Stoller authored
      parsing code (for simplistic xml we spit from the parser).
      6cdef019
    • Robert Ricci's avatar
      Some big changes to assign, and some related changes to assign_wrapper · 238dce73
      Robert Ricci authored
      and ptopgen.
      
      Add link typing to assign. Each virtual link is given a single type.
      Each physical link is given one or more types. A virtual link will
      only be mapped to a physical link which can satisfy its type. In both
      the top and ptop files, the link types are now mandatory, and they
      fall at the end of the mandatory link arguments.
      
      This differers from the 'regular' type system in two ways. First, a
      plink is not constrained to filling only one type at a time. If we are
      using emulated links, a plink could satisfy, say, an 'ethernet' link
      and an 'fxp' link at the same time. This seems to more naturally match
      the way we'll use link types.  Second, there are no counts assoicated
      with link types, as there are for node types. ie. a link is not an
      'ethernet:1' link, it's an 'ethernet' link. Presumably, when
      multiplexing virtual links onto a physical one, it's bandwidth that's
      the factor that limits the multiplexing.
      
      The link type is now taken into account when constructing pclasses,
      and in the mapping precheck.
      
      As a side-effect of these changes, the silly 'count' argument on the
      end of link lines in the ptop file, which was used for the fake LAN
      nodes, is no longer supported.
      
      The implementation could be a bit more efficient, but that would mean
      tossing more of the stuff we do with boost's graph library. I think
      this should happen, but today is not the day.
      
      Modify assign_wrapper and ptopgen to spit out top and ptop files in
      the new format.
      
      Changed the constant LINK_UKNOWN to LINK_UNMAPPED - the new name more
      accurately reflects the way this constant is used.
      
      Add a new '-n' flag that tells assign not to do annealing, just exit
      after the type precheck.
      
      Clarify the usage message for the -c flag.
      
      Removed some dead code for dealing with LAN nodes.
      238dce73
    • Mike Hibler's avatar
      Cleanup Makefiles: · 297019fb
      Mike Hibler authored
      1. "make clean" will just remove stuff built in the process of a regular build
      2. "make distclean" will also clean out configure generated files.
      
      This is how it was always supposed to be, there was just some bitrot.
      297019fb
    • Mike Hibler's avatar
      Added config option DISABLE_EXPORTS_SETUP for sites without proper control · 56acaee5
      Mike Hibler authored
      of their file server (aero)
      
      Extend DISABLE_NAMED_SETUP: when set, we don't set a nodes hostname to
      <name>.<eid>.<pid>.<domain> since that won't resolve.  Just stick with
      pc<XXX>.<domain> in those cases.  The various sethostname* scripts are
      now .in so that they get preprocessed to check for the option.
      56acaee5
    • Leigh Stoller's avatar
      Changes to exit status stuff to reflect recent changes by Rob to how · 1c4a613c
      Leigh Stoller authored
      assign exits (exit codes).
      
      * in assign_wrapper, no longer return any status from assign to the
        caller. This was pointless. Instead, return 0 on success, 1 on
        controlled error, and -1 on uncontrolled error (die() called
        someplace). Add in CANRECOVER bit whenever the wrapper exits, even
        if uncontrolled, by putting in an END block to catch the die. This
        should prevent certain cases where a swapmod error would be flagged
        as not recoverable.
      
      * Remove most of the assign output processing since we no longer
        return its codes. Still print a portion of it to the log though.
      
      * Change call to fatal() in assign_wrapper; do not pass an exitcode
        since in every case it was the same damn thing!
      
      * Change tbswap to no longer carry assign_wrapper exit code to its
        exit.
      
      * Change the batch daemon to treat all errors as continuable (keep
        batch queued) unless exit code is -1. We will need to revisit this a
        bit perhaps, when Rob adds precheck code.
      1c4a613c
  5. 23 Apr, 2004 5 commits
    • Mike Hibler's avatar
      Back out seting of vfs.nfs.bufpackets. · e1e6d268
      Mike Hibler authored
      It didn't fix the problem and it makes nodes fail on startup sometimes.
      e1e6d268
    • Kirk Webb's avatar
      Fixed minor typo in __addNode() · a8129f1f
      Kirk Webb authored
      a8129f1f
    • Leigh Stoller's avatar
      I have changed xmlconvert to do the following (note that I have not changed · a3ad59cd
      Leigh Stoller authored
      the parser; it still spits out the simplistic xml stuff and xmlconvert
      still reads that):
      
      * When generating an XML representation of an experiment, I read the
        virtual tables and build a *flat* data structure.
      
      	{"settings" => {pid:testbed, eid:foobar ....}.
      	 "nodes"    => [ {vname:nodeA, osid:RHL-STD ... },  ],
      	 "lans"     => [ {vname:link0, member:nodeA ... },  ],
               ...
      
        So, nodes is a list of node hash tables, lans is a list of hash tables,
        etc. All of the other virt_tables are represented as well.  You can find
        everything you want as long as you the names of the fields!
      
      * Once I have the above data structure, I use the XML-RPC lib to turn it
        into an XML document, and spit out the resulting XML string (a very long
        string!) Note that XML-RPC has its own format that allows you to convert
        data structures into XML and back; thats how you issue an RPC from your
        python client to a perl server.
      
      * Our python XMLRPC server basically uses xmlconvert as a backend so it can
        ship the above data structure back to client. We could also allow the
        client to ship the data structure back, and have xmlconvert upload the
        changes back to the DB.
      
        The reason for doing it in xmlconvert as a backend is so that this XML
        stuff is in just one place; whoever reads/writes this stuff has to know a
        lot of internal detail about an experiment (like what things should not
        be exported and what things we should not allow to be imported). I prefer
        to keep that all in one place since its easy to pass XML strings around
        (as long as everyone is talking the same dialect).
      
      Future work is to pick an XML representation that is not tied to
      XML-RPC. Ideally, we want to take a data structure in Perl, spit out
      the XML tree (with a DTD) and be able to reconstitute that in another
      program, using the XML Parser library (based on expat, which is common
      to Perl, Python, C).
      a3ad59cd
    • Mike Hibler's avatar
      Change watchdog policy so that all plab nodes report their host keys. · 1befb964
      Mike Hibler authored
      Reduce amount of logging for malformed host keys, we are going to be getting
      a lot of those til the new watchdog makes it out to all remote nodes.
      1befb964
    • Mike Hibler's avatar
      Add distinct options to use NFS for loopback mounting of local or remote · a6b2f510
      Mike Hibler authored
      filesystems.  Also add sysctl call to increase socketbuf size for NFS
      sockets.
      a6b2f510
  6. 22 Apr, 2004 8 commits
  7. 21 Apr, 2004 5 commits
  8. 20 Apr, 2004 4 commits
    • Mike Hibler's avatar
      Improve the client-install. You can now do a "make client-install" from · 361ee691
      Mike Hibler authored
      the top level.  This will build all the necessary binaries and then install
      them.  This works on FBSD4 and RHL7.3.  It still doesn't work on FBSD5
      (newer compiler that no longer supports a style of use of _FUNCTION_ in the
      event lib) or RHL9 (event lib needs SSL lib which has a bad dependency
      on Kerberos).  Notes:
      
      - requires that elvin libraries be installed on nodes (they are) to build
        event agents, requires linuxthreads be installed on FBSD (it is now) to
        build imagezip (which is installed, but is not strictly necessary)
      
      - installed event-agents and other binaries are stripped
      
      - added a few missing files to the source tree for bsd (healthd.conf)
        and linux (healthd.conf, rc.local)
      
      - the only thing that doesn't get rebuilt in /usr/local/etc/emulab is
        healthd, I couldn't quickly find how it gets built
      
      - uses a scaled down version of libtb with no DB functions (since mysql
        isn't installed on nodes).  N.B. DO NOT DO A CLIENT INSTALL FROM YOUR
        REGULAR OBJ TREE OR ELSE YOU MAY WIND UP WITH A NEUTERED VERSION OF
        libtb.a!
      
      The build-as-well-as-install semantics are counter to the regular install
      targets, but this is what we gotta do for now.  Once the TB source builds
      under Linux and newer BSDs, we could undo this and just require that people
      do a regular "make" followed by "make client-install"  OTOH, there should
      be no reason to require installation of mysql and other server-side packages
      just to build clients (or make them sit through the compilation of assign),
      so maybe we will keep the client build special.
      361ee691
    • Mike Hibler's avatar
      Cosmetic: don't unconditionally probe i2c-piix4 since that is no longer · c6d589dd
      Mike Hibler authored
      common to all our machines.
      c6d589dd
    • Mike Hibler's avatar
      changes for aero · 95e57ca0
      Mike Hibler authored
      95e57ca0
    • David Anderson's avatar
      Somewhat tweaked organization/documentation, addition of copyright message, · 0fd79f53
      David Anderson authored
      removal of unnecessary TEST option. Pending change: still need to move this to standard emulab style.
      0fd79f53