- 15 Dec, 2005 1 commit
-
-
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!
-
- 13 Sep, 2004 2 commits
-
-
Kirk Webb authored
finished up (waiting for resolution of the service slice bootstrapping issue).
-
Kirk Webb authored
* the python mysql client returns a datetime object rather than a string sequence - must convert it to string * PLAB moved the URL to their programmatic API - adjusted on our end. * PLAB changed format of expiration time in listSlices() RPC from a datetime string to seconds since the epoch in UTC. There is still an outstanding issue that I have mailed plab support about: The listSlices() RPC is only returning the first entry in the list of slices we have allocated at PLC (the same call used to grab all slice entries). This is causing us to fail on renewal for the unlisted slices.
-
- 19 Jul, 2004 1 commit
-
-
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.
-
- 23 Jun, 2004 1 commit
-
-
Leigh B. Stoller authored
vserver/pcplab). Rather then 10000s of fixed node entries in the DB, create node entries on the fly as needed (assign_wrapper), and then delete them when they are no longer used (nfree). When new nodes check in, no longer create all those nodes table entries (utils/newnode.in and tbsetup/plab/libplab.py.in). I've added a new library: db/Node.pm which is something I started a while back, and decided to commit, along with the support for creating and deleting virtual nodes. CreateVnodes() creates a new set of nodes, choosing non-conflicting names in the DB, and then immediately reserves them to the pid/eid specified. DeleteVnodes takes a list of vnodes and deletes them from nodes,reserved,etc. This library does a few other things which I am going to be playing with, so you might want to go read the comment at the top of the file. Feel free to speak up. CreateVnodes() is from called assign_wrapper when a node type has the "isdynamic" property. Otherwise does the existing avail/nalloc stuff. DeleteVnodes() is called from nfree when the node type has the isdynamic property. I've added a script (sql/delvnodes.pl) to run after updating the DB and software. All free pcvm and pcplab virtual nodes are deleted from the DB; reserved ones will get deleted whenever their experiment ends. I've noted all of this in doc/UPDATING, including setting the isdynamic property on pcvm in the node_types table. I've left tbsetup/plab/libplab.py.in to create a single pcplab node for the management sliver (still called -20). We can worry about this later. All this for modelnet?
-
- 23 Apr, 2004 1 commit
-
-
Kirk Webb authored
-
- 19 Apr, 2004 1 commit
-
-
Leigh B. Stoller authored
-
- 25 Mar, 2004 1 commit
-
-
Kirk Webb authored
* Node.__copy() now uses rsync instead of weird 'dd' pipe - can do since sudo now works from square one after sliver instantiation * Made fixsudo and addgroup operations in emulabify() non-fatal - setup sometimes works even if they don't (esp. on dirty sliver) * option parser fixes * Shutup stupid warning messages from remote commands (tcgetattr, sudo lecture)
-
- 23 Mar, 2004 3 commits
-
-
Kirk Webb authored
* add "slicename" arg to Slice() constructor - so it can be specified manually * pushed up vnode setup wait time in plabmonitord to 16 minutes.
-
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.
-
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..
-
- 18 Mar, 2004 1 commit
-
-
Jay Lepreau authored
-
- 17 Mar, 2004 2 commits
-
-
Kirk Webb authored
* Added comments * Added Emulab copyright * made mod_PLC handle the "not assigned" error case in freeNode() - optimization and less log clutter. * bug fix in plabmonitord (ISUP decection)
-
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
-
- 03 Mar, 2004 1 commit
-
-
Kirk Webb authored
* implemented PLC slice renewal * restructured daemon code/startup - removed getfree daemon (replaced by plabdiscover; run from cron) - moved generic daemonizing code into libtestbed (class) - created plabrenewd - small script that utilizes daemonizing class - removed plabdaemon file. - updated bossnode startup scripts * changed slice prefix - PLC denies permission w/ anything other than "utah" * Minor semantic changes to module API to be more consistent with other parts. * Some bug fixes.
-
- 02 Mar, 2004 1 commit
-
-
Kirk Webb authored
* removed unused and not generally useful ping checking * reorganized node discovery and added node info updating - e.g., update IP, SITE, or HOSTNAME when they have changed - no longer part of the backend module as this is independent of which backend is used; may modularize it due to plab's new "trumpet" service, which is basically its node DB available via a decentralized transport/API. * introduced new method of getting node info - use plab sites.xml file * various other cleanups.
-
- 26 Feb, 2004 1 commit
-
-
Kirk Webb authored
-
- 25 Feb, 2004 2 commits
-
-
Kirk Webb authored
-
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.
-
- 10 Jan, 2004 1 commit
-
-
Kirk Webb authored
-
- 06 Jan, 2004 1 commit
-
-
Kirk Webb authored
-
- 03 Jan, 2004 2 commits
- 31 Dec, 2003 1 commit
-
-
Kirk Webb authored
mechanism in the service sliver).
-
- 30 Dec, 2003 3 commits
-
-
Kirk Webb authored
vnode_setup for the timeout on waiting for child processes. I've set it to 10 minutes since all ancillary setup programs have their own time bounds (I think - the plab ones do anyway). The function of plabmonitord has changed slightly. Instead of setting up and tearing down vnodes, its job is to just setup the emulab management sliver on plab nodes in hwdown. Once the vserver comes up and reports isalive, it moves the node out of hwdown. Currently, it first tries to tear down the vserver before reinstantiating it. In the future, we could get fancier and try interacting with the service sliver directly before simply tearing it down. All new plab nodes now start life in hwdown, and must be summoned forth into production by plabmonitord. This commit does NOT include support for the node-local httpd. That will come soon.
-
Mike Hibler authored
-
Kirk Webb authored
central. Also, back out Mike's hack, and use the ALLOWED_LIST feature Austin originally had to limit node scope.
-
- 29 Dec, 2003 1 commit
-
-
Mike Hibler authored
-
- 23 Dec, 2003 2 commits
-
-
Kirk Webb authored
-
Mike Hibler authored
than contacting the dslice agent which no longer exists.
-
- 15 Dec, 2003 1 commit
-
-
Kirk Webb authored
lease for a slice before we've _successfully_ set one up.
-
- 12 Dec, 2003 1 commit
-
-
Kirk Webb authored
us correlate better with log entries on plab nodes.
-
- 09 Dec, 2003 1 commit
-
-
Kirk Webb authored
A couple of things: 1) Added PLAB_SLICEPREFIX so that we can separately instantiate plab slices from mini, or elsewhere. On the mainbed, its set to "emulab". On mini, its set to "emulab_mini". The "emulab" part has to exist first so that the new plab node manager doesn't nuke our dslice slivers. 2) Fixed up Plab.getFree() so that it doesn't try to add the same IP twice to the DB if a new one is found, and listed more than once.
-
- 08 Dec, 2003 1 commit
-
-
Leigh B. Stoller authored
node's primary virtual type.
-
- 02 Dec, 2003 2 commits
- 01 Dec, 2003 2 commits
- 17 Nov, 2003 1 commit
-
-
Kirk Webb authored
-
- 05 Nov, 2003 1 commit
-
-
Kirk Webb authored
-