• Timothy Stack's avatar
    · 898cf9a2
    Timothy Stack authored
    Checkin some changes related to experiment automation and vnode feedback:
    	* configure, configure.in: Add sensors/canaryd/feedbacklogs
    	* db/libdb.pm.in, db/xmlconvert.in: Add "virt_user_environment"
    	table that holds environment variable names and values.
    	* event/lib/event.c: Allocate memory of the right size for
    	* event/program-agent/GNUmakefile.in: Add version.c file and
    	add install targets for the man page.
    	* event/program-agent/program-agent.8: Man page describing the
    	program-agent daemon.
    	* event/program-agent/program-agent.c: Add a bunch of convenience
    	features: let the user specify the working directory for commands;
    	save output to separate files on every invocation of an agent; let
    	the user specify a timeout for a command; make the set of
    	environment variables sane and add vars given in the NS file in
    	the opt array; a "status" file containing process information is
    	written out when children are collected.  Internal changes: child
    	processes are collected immediately, instead of waiting for the
    	next START event, so we can send back COMPLETE events; the daemon
    	now runs with a real-time priority, to increase the chances of
    	receiving events.
    	* event/proxy/evproxy.c: Made it bidirectional so the
    	program-agent's COMPLETE events make it back to the scheduler.
    	* event/sched/error-record.c: Change the default log directory.
    	* event/sched/event-sched.h, event/sched/event-sched.c: Setup an
    	environment similar to a program-agent to run the user's log
    	* event/sched/node-agent.cc: Add a handler for the SNAPSHOT event
    	that runs create_image for the node.
    	* event/sched/simulator-agent.h, event/sched/simulator-agent.cc:
    	Let the user specify a "DIGESTER" script that digests the log
    	files into a summary of the results.  Add event handler for
    	remapping a vnode experiment.
    	* event/sched/timeline-agent.c: Accept the RUN event as well as
    	the START event.
    	* os/GNUmakefile.in: Install the install-tarfile.1 man page.
    	* os/install-tarfile: Automatically chown/chgrp any files that do
    	not have valid user or group IDs, the new owner will be the user
    	that swapped in the experiment.  Include the install directory in
    	the DB file.  Add a "list" mode that just dumps what files have
    	been installed and where.  Add a "force" option so the user can
    	forcefully install the file, even though the DB says its already
    	* os/install-tarfile.1: Man page describing the install-tarfile
    	* os/syncd/GNUmakefile.in: Install man pages on ops.
    	* sensors/canaryd/GNUmakefile.in: Link canaryd statically and
    	install "feedbacklogs" tool.
    	* sensors/canaryd/canaryd.c: Dump dummynet pipe data.
    	* sensors/canaryd/canarydEvents.c: Log errors.
    	* sensors/canaryd/feedbacklogs.in: Tool used to generate feedback
    	data from canaryd log files.
    	* sensors/slothd/GNUmakefile.in: Install digest-slothd on ops.
    	* sensors/slothd/digest-slothd: Fix some bugs and write out an
    	"alert" file with all the nodes/links that were overloaded.
    	* tbsetup/os_load.in, tbsetup/libosload.pm.in: Add "waitmode"
    	argument that lets you specify that you want to wait for the disk
    	to finish loading and/or wait for the node to come back up in the
    	new OS.
    	* tbsetup/power.in: Remove debugging printf.
    	* tbsetup/ns2ir/node.tcl, tbsetup/ns2ir/program.tcl,
    	tbsetup/ns2ir/sequence.tcl, tbsetup/ns2ir/sim.tcl.in: Fix some
    	quoting problems with event-sequences.  Add -expected-exit-code
    	and -tag options to the "$program run" event.  Add -digester to
    	the "$ns report" event that lets the user specify a program to run
    	to digest the log files.
    	* tbsetup/ns2ir/tb_compat.tcl.in: Change the initial scaling
    	factor for feedback nodes to 1%, instead of 100%.
    	* tmcd/tmcd.c, tmcd/common/libtmcc.pm: Add "userenv" command that
    	returns the values in "virt_user_environment".  Return new program
    	agent fields: dir, timeout, and expected_exit_code.
    	* tmcd/common/GNUmakefile.in: Install rc.canaryd.
    	* tmcd/common/bootvnodes: Add hack to boost the program-agents to
    	a real-time priority, they can't do it from inside the jail.
    	* tmcd/common/rc.canaryd: Rc script for canaryd.
    	* tmcd/common/watchdog: Don't fail outright if there is a bad line
    	in the battery.log
    	* tmcd/common/rc.progagent: Append "userenv" data to the
    	program-agent config file.
    	* utils/GNUmakefile.in: Install loghole and its man page on ops.
    	* utils/loghole.1: Document "clean" command and the change in
    	loghole directories.
    	* utils/loghole.in: Add "clean" command and parallelization.
    	* xmlrpc/emulabserver.py.in: Add "virt_user_environment" table.
    	Order the eventlist by "idx" and time, needed for sequences.  And
    	removed unnecessary nologin checks.