- 09 Aug, 2004 1 commit
-
-
Leigh B. Stoller authored
supporting both a shell script driven interface, plus the newer XMLRPC interface. This change removes the script driven interface from boss, replacing it with just the XMLRPC interface. Since we like to maintain backwards compatability with interfaces we have advertised to users (and which we know are being used), I have implemented a script wrapper that exports the same interface, but which converts the operations into XMLRPC requests to the server. This wrapper is written in python and uses our locally grown xmlrpc-over-ssh library. Like the current "demonstation" client, you can take this wrapper to your machine that has python and ssh installed, and use it there; you do not need to use these services from just users.emulab.net. Other things to note: * The wrapper is a single python script that has a "class" for each wrapped script. Running the wrapper without any arguments will list all of the operations it supports. You can invoke the wrapper with the operation as its argument: {987} stoller$ script_wrapper.py swapexp --help swapexp -e pid,eid in|out swapexp pid eid in|out where: -w - Wait for experiment to finish swapping -e - Project and Experiment ID in - Swap experiment in (must currently be swapped out) out - Swap experiment out (must currently be swapped in) Wrapper Options: --help Display this help message --server Set the server hostname --login Set the login id (defaults to $USER) --debug Turn on semi-useful debugging But more convenient is to create a set of symlinks so that you can just invoke the operation by its familiar scriptname. This is what I have done on users.emulab.net. {987} stoller$ /usr/tesbed/bin/swapexp --help swapexp -e pid,eid in|out swapexp pid eid in|out * For those of you talking directly to the RPC server from python, I have added a wrapper class so that you can issue requests to any of the modules from a single connection. Instead using /xmlrpc/modulename, you can use just /xmlrpc, and use method names of the form experiment.swapexp, node.reboot, etc. Tim this should be useful for the netlab client which I think opens up multiple ssh connections? * I have replaced the paperbag shell with a stripped down xmlrpcbag shell that is quite a bit simpler since we no longer allow access to anything but the RPC server. No interactive mode, no argument processing, no directory changing, etc. My main reason for reworking the bag is to make it easier to understand, maintain, and verify that it is secure. The new bag also logs all connections to syslog (something we should have done in the orginal). I also added some setrlimit calls (core, maxcpu). I also thought about niceing the server down, but that would put RPC users at a disadvantage relative to web interface users. When we switch the web interface to use the XMLRPC backend, we can add this (reniceing from the web server would be a pain cause of its scattered implementation).
-
- 05 Aug, 2004 1 commit
-
-
Robert Ricci authored
UPDATING.
-
- 28 Jul, 2004 1 commit
-
-
Leigh B. Stoller authored
-
- 13 Jul, 2004 1 commit
-
-
Leigh B. Stoller authored
For new distributed routing support, must first run this script as root to generate a data file for each existing experiment. sudo sql/gentopmaps.pl
-
- 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?
-
- 22 Jun, 2004 1 commit
-
-
Robert Ricci authored
-
- 15 Jun, 2004 1 commit
-
-
Robert Ricci authored
their ports.
-
- 14 Jun, 2004 1 commit
-
-
Robert Ricci authored
-
- 17 Apr, 2004 1 commit
-
-
Leigh B. Stoller authored
-
- 03 Mar, 2004 1 commit
-
-
Robert Ricci authored
it out of a file in /usr/testbed/etc . We put it in a seperate file from the rest of the certificate, because we need the fingerprint to be publically-readable.
-
- 02 Mar, 2004 1 commit
-
-
Robert Ricci authored
instead of only 10 characters.
-
- 26 Feb, 2004 1 commit
-
-
Robert Ricci authored
-
- 21 Jan, 2004 1 commit
-
-
Robert Ricci authored
we were attempting to start up duplicate copies of everything as boss went down.
-
- 20 Jan, 2004 1 commit
-
-
Robert Ricci authored
better.
-
- 12 Jan, 2004 1 commit
-
-
Leigh B. Stoller authored
-
- 15 Dec, 2003 1 commit
-
-
Robert Ricci authored
our source and DB that need to be made on boss and ops. Things like changes to ports or system configuration files should go into this file.
-