1. 21 Aug, 2008 1 commit
  2. 30 Jul, 2007 1 commit
  3. 28 Jun, 2007 1 commit
  4. 18 Jun, 2007 1 commit
  5. 30 May, 2007 1 commit
  6. 06 Mar, 2007 1 commit
  7. 07 Feb, 2007 1 commit
    • David Johnson's avatar
      Python interface to db is now most of the way up to speed with · 5da05762
      David Johnson authored
      libdb.pm.in.  There's a nasty little hack to deal with forks, because the
      underlying python mysql db module does not help us deal with them.
      Basically, there is no way (and I mean no way!) to close a connection in
      the child without actually sending a disconnect to the server... so the
      parent's connection gets killed too.  The only way around this is to hack
      the Python C API wrapper that the mysql python module is built on.  For
      now, we just close off both connections before a fork via a TBDBPreFork(),
      and restore them implicitly on the first query after the fork.  It sucks,
      but it's the best we can do until hacking the mysql module.
      
      Anyway, the big fix is that testbed-ops no longer gets spammed with
      DBQuery failures; they are retried just like in libdb.pm.in.
      5da05762
  8. 10 Jan, 2007 1 commit
  9. 09 Jan, 2007 1 commit
  10. 15 Dec, 2005 1 commit
    • Kirk Webb's avatar
      · 41c54939
      Kirk Webb authored
      The revived Plab interface is here!
      
      Lots of updates to the plab backend, including improved plab <-> elab node
      id translation and update handling.  Includes support for the current PLC
      API, and the new pl_conf node manager interface API.  Several more db library
      routines were ported from the perl library to the python one to support the
      new code (mostly the node_id tracking stuff).  Fixes to the client side and
      also a rootball creation cleanup (binaries removed from the CVS repo).
      
      There are also enhancements to the experiment view page for experiments
      including plab nodes: site and widearea hostname are now displayed along
      with the other node information.
      
      Note that the way setup timeout for vnodes is calculated has been changed a
      bit.  Instead of using a hardwired base timeout, the base timeout is now
      based on the reload_waittime database field, which comes from the 'OS'
      (e.g., FBSD-JAIL, RHL-PLAB) the vnode runs.
      
      The default max duration for a plab slice created through the plab_ez interface
      is set to 1 year, and linktest is currently disabled and hidden through
      the ez interface.
      
      There is still work to do, but this checkin brings with it a functional
      plab portal!
      41c54939
  11. 07 Nov, 2004 1 commit
    • Timothy Stack's avatar
      · f95e336d
      Timothy Stack authored
      Change to the SSL version of the event scheduler.
      
        * db/libdb.py.in, xmlrpc/emulabserver.py.in: Only add the testbed
          library path to sys.path if it is not already there.
      
        * event/sched/GNUmakefile.in: Make the SSL version of the scheduler
          the default instead of the SSH version and statically link the
          executable.
      
        * event/sched/event-sched.c: Pass the default SSL port number (3069)
          to RPC_init.
      
        * event/sched/rpc.cc: Bring the SSL code up to date: read the cert
          from the user's home directory, make the connection persistent,
          and use TBROOT as the request path, so the development version of
          the XML-RPC library is used when appropriate.
      
        * xmlrpc/sslxmlrpc_server.py.in: Updated to let the user select from
          a set of allowed library paths where the 'emulabserver' module
          should be imported from.  Import the 'emulabserver' module after the
          fork so we always get the latest version of the module.  Twiddled
          the necessary bits to turn on persistent connection support.
      f95e336d
  12. 19 Jul, 2004 2 commits
    • Leigh B. Stoller's avatar
      If no matching rows, return () instead of None so that it looks like · a7f6662e
      Leigh B. Stoller authored
      a query that succeeded but did not return any matches.
      a7f6662e
    • Kirk Webb's avatar
      · 03921d0e
      Kirk Webb authored
      A bunch of plab interface updates that I've worked on over the last while.
      Most significant is the revamped renewal code that tries to push the leases
      out to the policy defined maximum of two months during each iteration through
      the plabrenewd daemon loop.
      
      - added python lib code to get SiteVars
      - Fixed up comments to reflect current code operation
      - revamped renewal code (again)
        - changed all times to UTC for consistency
        - removed node-level renew invocation in favor of slice-level
          - if backend module requires node-level renewals, it must handle them
            itself in the slice-level function
          - better reporting
      - set admin bit if creating svc slice
        - other updates to ensure admin bit is preserved
      - update rootball handling function naming
      - updated tryXmlRpcCmd() to accept two new sets of strings, and a callback
        function.  The strings represent Faults that either 1) indicate success,
        or 2) indicate failure.  The callback is another optional error handling
        method, allowing the caller to decide how to treat individual faults as
        they see fit.
      - updated the backend module code to take advantage of the new string
        match status identifiers in tryXmlRpcCmd()
      - completely revamped slice renewal code in mod_PLC backend
        - compare against real lease expiration data gathered direct from PLC
        We used to just infer from our originally requested lease length
        - warn when our notion of expiration doesn't match PLC's
      - added agent caching and lease expiration info caching to mod_PLC
        backend.
      03921d0e
  13. 23 Mar, 2004 3 commits
    • Kirk Webb's avatar
      Couple of items: · ed848fd5
      Kirk Webb authored
      * Small fix to DBQueryFatal in libdb.py: () is a valid return value,
        don't fail on it(insert/replace); do fail if DBQuery returns None though.
      
      * Fix up libplab.py to not choke on new plab_slices column.
      ed848fd5
    • Kirk Webb's avatar
      Snapshot. · fd6d8cc9
      Kirk Webb authored
      * incompatible option handling and use removed from gen purpose libs
      * Global PLC mutex implemented, but currently disabled
      * plabmonitord parallelization cut in half (for now)
      
      I'm still very frustrated with option handling/passing.  Needs more thought,
      but the primary issue is that there really isn't a global variable space in
      python (global to file, yes, but not global to interpreter invocation).
      
      I've learned that __builtin__ might work for this, but it seems hacky..
      fd6d8cc9
    • Leigh B. Stoller's avatar
      Fix my last revision to that DBQueryFatal() and DBQuery() really do · af79be8f
      Leigh B. Stoller authored
      what I want them to do and properly mirror the perl impl.
      af79be8f
  14. 19 Mar, 2004 2 commits
  15. 17 Mar, 2004 1 commit
    • Kirk Webb's avatar
      Snapshot. · 856c2509
      Kirk Webb authored
      * Changed the way options are parsed in the python scripts so that modules
        can easily add and use their own options independent of top-level scripts.
      
      * Added --noIS and --pollNodes module options.
      
      * Added batch option to vnode_setup (degree of parallelization)
        - defaults to 10
      
      * Major updates to plamonitord
        - batches testing, currently to 40
      856c2509
  16. 26 Feb, 2004 1 commit
  17. 25 Feb, 2004 1 commit
    • Kirk Webb's avatar
      Kirk takes the weed whacker to the plab code. This is the first pass result. · ae2eec76
      Kirk Webb authored
      I'll come along for a closer cut in the future.
      
      * Modularized the plab communications 'adaptor' interface and moved the
        dslice- and PLC-specific code into their own modules.
      
      * Wrote an API definition README
      
      * Separated out generic routines from libplab into their own library modules
        (libtestbed.py and libdb.py)
      
      Functionally, not much has changed - this was just a massive re-org with some
      other cleanup.  Should be much easier to code up new PLAB interfaces as the
      plab folks flail around in their attempt to standardize on something.
      
      XXX: may want to re-think where the generic library modules should go.  If
      more python code enters Elab, we'll probably want to move 'em to more standard
      locations.
      
      This isn't the end of the cleanup - I would eventually like to go back and
      rethink the class structures, beef up the comments, and extend the API.
      ae2eec76