- Feb 17, 2006
-
-
Leigh B. Stoller authored
except that we do not "skip grant tables" on ops.
-
- Feb 15, 2006
-
-
David Johnson authored
- added a new defs var, TBROBOCOPSEMAIL * tbsetup/power_mail.pm.in: - add some new info to robot powerup mails * db/libdb.pm.in: - add a new function to determine if an experiment contains nodes of a given class/type * tbsetup/swapexp.in: - check if exp is a robot exp; that is, if it has robots or motes; if so, cc error msgs to TBROBOCOPSEMAIL in addition to TBOPS
-
- Jan 26, 2006
-
-
Leigh B. Stoller authored
GNUmakefile auto generated.
-
- Jan 23, 2006
-
-
Leigh B. Stoller authored
-
Timothy Stack authored
Parse the NS file with the real NS parser so we can make sure linktest is doing the "right" thing. * configure, configure.in: Add tbsetup/nsverify files. * tbsetup/GNUmakefile.in: Add nsverify subdir. * tbsetup/tbprerun.in: Run verify-ns on the experiments NS file. * tbsetup/ns2ir/nstb_compat.tcl: Bring up-to-date with the current world. * tbsetup/nsverify/GNUmakefile.in: Makefile. * tbsetup/nsverify/ns-2.27.patch: Patch file for NS version 2.27. * tbsetup/nsverify/nstbparse.in: Wrapper for the NS parser. * tbsetup/nsverify/tb_compat.tcl: Different version of tb_compat.tcl that is used to verify linktest parameters. * tbsetup/nsverify/verify-ns.in: Script that runs on boss and verifies that the testbed parser worked correctly. * tbsetup/ns2ir/parse-ns.in, tbsetup/ns2ir/parse.proxy.in: Tweaked a bit so parse.proxy can be used to run the regular NS parser in addition to the testbed one.
-
- Jan 09, 2006
-
-
Mike Hibler authored
figuring out how to cope with the new dhclient in FreeBSD 6 and above which only handles a single interface.
-
- Jan 05, 2006
-
-
Leigh B. Stoller authored
of the archive.
-
- Jan 02, 2006
-
-
Timothy Stack authored
First cut at a daemon that does regular checkups of the testbed hardware/software. * configure, configure.in: Add tbsetup/checkup directory. * db/audit.in: Add a listing of stuck checkups. * install/boss-install.in: Add 'elabckup' user. * rc.d/3.testbed.sh.in: Startup the checkup_daemon. * sql/database-create.sql, sql/database-migrate.txt: Add the checkups tables. * tbsetup/GNUmakefile.in: Descend into the checkup directory. * tbsetup/checkup: The checkup daemon, man page, and associated scripts. * tbsetup/ptopgen.in: Add a feature with a value of 0.9 to prereserved nodes to keep them from being allocated unless they're really wanted. * utils/firstuser.in: Add some other options so the script can be used to create other pseudo users.
-
- Dec 19, 2005
-
-
Kevin Atkinson authored
Updates to to Error Logging API Code. You should start seeing much better error messages coming from my system. Errors coming from parse.proxy and assign (the two most frequent sources of errors) should now be concise and to the point. Errors coming from libosload/libreboot (the next most frequent source of errors) should now also be much better, but not perfect. Getting perfect errors will likely a rework of how errors are handled in libosload/libreboot, just adding tberror/tbwarn/tbnotice calls is not enough. I can do this at a latter date if necessary. A few minor database changes. Some changes to the API. A few bug fixes. Lots of tberror/tbwarn/tbnotice added to scripts. Since assign is a C program, and at this time my API is perl only, I wrote a second wrapper around assign, assign_wrapper2. When assign fails errors are now parsed in assign_wrapper2, sent to stderr and logged. This means that RunAssign() just returns when assign fails rather than echoing some of assign.log output and then quiting. The output to the activity log remains unchanged. Since "parse.proxy" is run from ops I couldn't use my API in it, even though it is a perl program. Instead I parse the errors coming form it in parse-ns.
-
- Dec 16, 2005
-
-
Mike Hibler authored
-
- Dec 15, 2005
-
-
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!
-
- Dec 13, 2005
-
-
Kirk Webb authored
Update SSH_ARGS to remove "Protocol 1" specification. Everyone needs to reconfig their object trees!
-
- Dec 12, 2005
-
-
Timothy Stack authored
-
Leigh B. Stoller authored
to use a delay value that is too low.
-
- Dec 01, 2005
-
-
Timothy Stack authored
-
- Nov 28, 2005
-
-
Timothy Stack authored
Make the netlab client applet available to locals. * configure, configure.in: Add xmlrpcpipe.php3. * xmlrpc/emulabserver.py.in: Add missing virtual_tables. Add getareas call to get the list of robot areas. Add node.getlist and node.typeinfo methods for getting information about the nodes. Add a "nic" argument to node.available to get the count of wireless nodes. Add "exclude" argument to experiment.virtual_topology so we don't have to download the massive route table, also delete the 'pid'/'eid' fields for the same reason. Don't return string output of virtual_topology, it's huge. Return some more info in experiment.getlist(). * www/GNUmakefile.in: Add xmlrpcpipe.php3. * www/beginexp_form.php3, www/modifyexp.php3: Add links to the client gui. * www/netlab-client.jar: The client binary.
-
Timothy Stack authored
Install NFS tracing stuff so we can gather some data. * configure, configure.in: Add some nfstrace files. * sensors/GNUmakefile.in: Add nfstrace directory to the build. * sensors/nfstrace/GNUmakefile.in, nfs.sql, nfsdump2db, nfstrace.init.in, nfstrace.proxy: Prototype of scripts to trace NFS traffic from experimental nodes and build a list of the files that are accessed. * sensors/nfstrace/nfsdump2/*: Slightly customized version of the nfsdump program. * tbsetup/GNUmakefile.in: Install nfstrace control script which is used to talk to the proxy on ops.
-
- Nov 17, 2005
-
-
Mike Hibler authored
* Add libadminmfs.pm with routines for entering/exiting and executing commands in, the admin MFS. Node admin and firewall swapout (see below) now use this, the image creation process does not yet. * Add swapout time hooks for running an admin mode process, likely to be used to collect swapout time state. Currently controlled globally by two new sitevars. * Modified node_admin to use the library and added a "-c <command>" option to have nodes go into admin mode and run a command. I don't really expect this to be useful, it was just a testing vehicle for the library. 2. Improved the swapout process for firewalled experiments. Largely just generalized what we already did for paniced experiments. At swapout, firewalled nodes are: - powered off - set to boot into admin mode and run a disk zapper - powered on The swapout process then waits for all nodes to successfully complete disk zapage, at which point the nodes are nfree'ed as usual. Any failure of the above process, marks the experiment as panic'ed (to ensure that we are involved in cleanup) and sends mail to testbed-ops describing the state of the nodes. 3. Added the aforementioned disk zapper, a little C program in the MFS which zeroes out the MBR and partition boot blocks (but not the MBR partition table or FS superblocks). This is added insurance that if a node somehow gets diverted after being nfree'd but before getting the disk reloaded (e.g., goes to hwdown), that we cannot accidentally boot from the disk. This program gets installed in the admin MFS. 4. Related to firewalls, modified swapin to use the new documented "snmpit -N" to get the firewall VLAN number rather than parsing the output that was a side-effect of VLAN creation.
-
- Nov 08, 2005
-
-
Leigh B. Stoller authored
remote site (currently just www.datapository.net) wants to verify the user (log the user in), it redirects the user to: https://www.emulab.net/login_redirect.php?redirect_to=http://www.datapository.net/login.rhtml Emulab verifies the user, and then issues an ssh to the host in the URL, giving it the uid and a freshly generated hash string. Emulab then redirects the users browser back over to the redirect_to URL, appending the user name and the hash. http://www.datapository.net/login.rhtml?user=$uid&auth='$hash' What the remote site does with all of this is up to that site.
-
- Oct 24, 2005
-
-
Leigh B. Stoller authored
emulab version of iperf. Linux makefile stuff not working yet.
-
- Oct 20, 2005
-
-
Kirk Webb authored
New node_attributes facility and table. Auxiliary node attributes, such as service tag #, BIOS version, etc., are should now be placed into the node_attributes table. This can be accomplished by either using the node_attributes command line tool, or by using the modnodeattributes_form.php3 form (not linked in anywhere yet, but will be in a moment). Attribute names and values are checked for sanity using table_regex entries. Also note that I started with the nodecontrol stuff as a template. The command line tool and web form (which simply calls the command line tool to actually do the modifications) can add, delete, and/or remove attributes. Finally, note that the bios_version column has been moved from the nodes table to the node_attributes table. The Node Information page will show the list of current attributes at the bottom of the info table.
-
- Sep 20, 2005
-
-
Leigh B. Stoller authored
Ready for local people to play with. The current implementation is that we munge the mysql DB on ops directly, underneath jabberd. We add/del users from the authreg table, and set up buddy lists in the roster-items and roster-groups tables. modgroups will invoke the modjabberbuddies whenever a user is added or removed from a group, although currently I am building buddy lists for just the top level projects. The "My IM" link in the collaboration menu will tell the user their jabber ID on the Emulab chat server (jabber.emulab.net) and also give them their plain text password to plug into their chat client. I also installed a java applet (Jeti) that is a simple chat client that I found off the jabberware page. Like all applets, it exhibits a degree of flakiness, but I really do not expect too many people to use it.
-
- Sep 14, 2005
-
-
Mike Hibler authored
Entailed new instructions for manual setup as well as integration into elabinelab framework. First, the manual path: setup.txt, setup-boss.txt, setup-ops.txt and new setup-fs.txt: Updated to reflect potential for separate fs node. The org here is a little dicey and could be confusing with ops+fs vs. ops and fs. Has not been field tested yet. */GNUmakefile.in: new fs-install target. configure, configure.in, defs-*: Somewhat unrelated, make min uid/gid to use be a defs setting. Also add config of fs-install.in script. boss-install.in, ops-install.in and new fs-install.in: Handle distinct fs node. If you have one, fs-install is run before ops-install. All scripts rely on the defs file settings of FSNODE and USERNODE to determine if the fs node is seperate. utils/checkquota.in: Just return "ok" if quotas are not used (i.e., if defs file FS_WITH_QUOTA string is null. install/ports/emulab-fs: Meta port for fs node specific stuff. Also a patch for the samba port Makefile so it doesn't drag in CUPs, etc. Note that the current samba port Makefile has this change, I am just backporting to our version. Elabinelab specific changes: elabinelab-withfs.ns: NS fragment used in conjunction with tb-elab-in-elab-topology "withfs" to setup inner-elab with fs node. elabinelab.ns: The hard work on the boss side. Recognize seperate-fs config and handle running of rc.mkelab on that node. fs setup happens before ops setup. rc.mkelab: The hard work on the client side. Recognize FsNode setup as well as differentiate ops+fs from ops setup. Related stuff either not part of the repo or checked in previously: emulab-fs package
-
- Sep 08, 2005
-
-
Leigh B. Stoller authored
-
- Sep 07, 2005
-
-
Leigh B. Stoller authored
-
- Aug 31, 2005
-
-
Leigh B. Stoller authored
XMLRPC server on boss.
-
- Aug 19, 2005
-
-
Timothy Stack authored
Bring linktest in line with the new event system world order and do some generic cleanup. I'm pretty sure I broke backwards compatibility with old disk images though... * configure, configure.in: Remove linktest.h.in from the list of template files. * event/linktest/GNUmakefile.in: Don't make subdirectories for executables since it can mess up the dependencies. Don't install tb_compat.tcl stuff anymore. Check for '/usr/local/bin/pathrate' and friends, and print out a warning if they are not found. Make a version file for the linktest daemon. * event/linktest/linktest.c: Only subscribe to the events we care about 'STOP/KILL'. Subscribe to TIME START events and kill any linktests that are in progress. Send events through the local elvind instead of running tevc. * event/linktest/linktest.pl.in: Don't run the modified NS anymore to generate the topology file, use gentopofile to do that. Send COMPLETE events to indicate that the tests were finished instead of STOP so it works with event-sequences. Use emulab-sync to report errors between linktest daemons. In addition to sending REPORT events, send LOG events to the SIMULATOR agent so the messages end up in the report e-mail. Fix wait_all so it collects child processes immediately and doesn't leave zombies lying around. Make the static route test work with topologies that aren't fully connected. Change ownership of the linktest error files from root to the swapper. Bump latency tolerance up to 2.5ms. * event/linktest/ltevent.c: Use event_schedule instead of event_notify so the events go through the scheduler. * event/linktest/run_linktest.pl.in: Wait for COMPLETE events insetad of STOPs. * event/linktest/linktest.h.in: Removed. * event/sched/error-record.c: Include linktest error output in the report e-mail. * event/sched/event-sched.c: Linktest now sends COMPLETE events for START events. * tbsetup/gentopofile.in, tmcd/common/config/rc.topomap: Piggy back the generation and management of the linktest config file onto the generation of the topomap. * tbsetup/ns2ir/sim.tcl.in: Add "linktest" event to the Simulator object that runs linktest at level 3 (latency, static routing, and loss). * tmcd/common/libsetup.pm: Add TMLTMAP constant that contains the path to the node local linktest config file. * tmcd/common/rc.linktest: Pass '-u' option to the linktest daemon so it knows what user should to change ownership of files to. * tmcd/freebsd/jail/mkjail.pl: Copy the linktest config file (ltmap) into the jail.
-
- Aug 16, 2005
-
-
Leigh B. Stoller authored
-
- Aug 15, 2005
-
-
Leigh B. Stoller authored
Jay has "comments"), but I do not want it hanging around in my source tree. Here is my mail message: * The "My Mailing Lists" is context sensitive (copied from Tim's changes to the My Bug Databases). It takes you to the *archives* for the current project (or subgroup) list. Or it takes you to your first joined project. * The showproject and showgroup pages have direct links to the project and group specific archives. If you are in reddot mode, you also get a link to the admin page for the list. Note that project and group leaders are just plain members of these lists. * The interface to create a new "user" list is: https://www.emulab.net/dev/stoller/newmmlist.php3 We do not store the password, but just fire it over in the list creation process. Anyone can create their own mailing lists. They are not associated with projects, but just the person creating the list. That person is the list administrator and is given permission to access the configuration page. This page is not hooked in yet; not sure where. * Once you have your own lists, you user profile page includes a link in the sub menu: Show Mailman Lists. From this page you can delete lists, zap to the admin page, or change the admin password (which is really just a subpage of the admin page). * As usual, in reddot mode you can mess with anyone else's mailman lists, (via the magic of mailman cookies). * Note on cross machine login. The mailman stuff has a really easy way to generate the right kind of cookie to give users access. You can generate a cookie to give user access, or to the admin interface for a list (a different cookie). Behind the scenes, I ssh over and get the cookie, and set it in the user's browser from boss. When the browser is redirected over to ops, that cookie goes along and gives the user the requested access. No passwords need be sent around, since we do the authentication ourselves.
-
- Aug 04, 2005
-
-
Mike Hibler authored
-
- Jul 20, 2005
-
-
Leigh B. Stoller authored
the repo in case I decide to stay in Switzerland, eating chocolate and cheeseballs.
-
- Jul 12, 2005
-
-
Leigh B. Stoller authored
quota check, and parses the output. Any over limit causes the script to exit with non-zero status. Not hooked in yet ...
-
- Jul 07, 2005
-
-
Leigh B. Stoller authored
enabled in the defs file: CVSSUPPORT=1 each project gets a stub CVS tree created (using 'cvs init') in /proj/$pid/CVS. It is up to users obviously to do something with that tree, and of course they have to either set their CVSROOT env variable, or use the -d option to cvs. The showproject page gets a link to the per-project CVS tree, using the cvsweb interface, which I hacked up a bit to allow restricted access to specific project trees, via a ?pid=$pid argument to the URL. Without the ?pid argument, it falls back to normal behaviour, which is check the cvsallowed bit in the users table, and provide access to the Emulab source repo. If you are curious, go here: https://www.emulab.net/cvsweb/cvsweb.php3/?pid=testbed
-
- Jul 04, 2005
-
-
Timothy Stack authored
-
- Jun 18, 2005
-
-
Leigh B. Stoller authored
-
- Jun 13, 2005
-
-
Timothy Stack authored
Initial checkin of a "repositioning" daemon that moves robots back to their pens on swapout. * configure, configure.in: Add tbsetup/repos_daemon. * db/libdb.pm.in: Add constants for the repositionpending/repositioning experiments. * db/nfree.in: When freeing garcias, send them to repositionpending instead of reloadpending. * event/sched/event-sched.c: Deal with the rare case of no SIMULATOR object being in the agent list for an experiment. * robots/emc/emcd.c, robots/emc/locpiper.in: Fix some typos. * robots/rmcd/masterController.h, robots/rmcd/masterController.c, robots/rmcd/obstacles.h, robots/rmcd/obstacles.c: Ignore dynamic obstacles that are far away and remove dynamic obstacles where the robot is inside the natural obstacle area. * sql/database-create.sql, sql/database-migrate.txt: Add a reposition_status table that tracks the status of robots that are being moved back to their pens. * tbsetup/GNUmakefile.in: Install the repos_daemon script. * tbsetup/reload_daemon.in: Move robots to the repositionpending experiment, if they haven't already reached their pen. * tbsetup/repos_daemon.in: Daemon that takes care of seeing robots back to their pens after they are freed from an experiment.
-
- Jun 09, 2005
-
-
Timothy Stack authored
-
- Jun 03, 2005
-
-
Timothy Stack authored
-
- May 31, 2005
-
-
Leigh B. Stoller authored
I fixed a couple of minor problems, but mostly this worked fine. Note that I have tested this with the installed perl, *NOT* perl 5.8. I am just making sure this stuff gets committed before too much more bitrot sets in.
-
- May 06, 2005
-
-
Leigh B. Stoller authored
-