1. 27 Apr, 2005 1 commit
  2. 26 Apr, 2005 2 commits
  3. 22 Apr, 2005 2 commits
  4. 20 Apr, 2005 2 commits
  5. 19 Apr, 2005 1 commit
  6. 15 Apr, 2005 2 commits
    • Leigh B. Stoller's avatar
      Two changes: · fe3f6f9a
      Leigh B. Stoller authored
      1. Redirect to outer emulab XMLRPC server when invoked from an inner
         emulab (as it is from the newnode web page). The XMLRPC server
         constructs the response using the interfaces and wires table
         entries for the nodes in the inner emulab.
      
      2. Changes hardwired "experimental" and "control" strings to libdb
         defs (which are actually different strings, but since no one
         actually looks at that part of the switchmac return, the change is
         not going to bother anyone.
      fe3f6f9a
    • Leigh B. Stoller's avatar
      Move the dynrange up to the top of the network, but leave room for · 80d3ea3d
      Leigh B. Stoller authored
      boss and ops, which I now set to .252 and .253 instead of .70 and .74.
      This avoids conflict and confusion.
      80d3ea3d
  7. 14 Apr, 2005 1 commit
    • Mike Hibler's avatar
      Changes to respect the "imageable" field of the node_types table: · 65a39cd5
      Mike Hibler authored
       - os_load will not attempt to load a non-imagable node, it will
         be skipped without error
       - nfree will respect imageable even with an entry in scheduled_reloads
       - reload_daemon will free any non-imageable nodes that happen to make
         it into reloadpending/reloading
      65a39cd5
  8. 13 Apr, 2005 1 commit
  9. 06 Apr, 2005 2 commits
  10. 04 Apr, 2005 2 commits
    • Timothy Stack's avatar
      · 463ee6b1
      Timothy Stack authored
      Mote and robot related stuff.  The main thing is the addition of relay
      capabilities to capture and related things.
      
      	* GNUmakefile.in: Add the capture and tip subdirectories to the
      	client and client-install targets.
      
      	* configure, configure.in, config.h.in: Detect srandomdev() for
      	capture and add "mote/newmote" script.
      
      	* capture/GNUmakefile.in, capture/capture.c: Add "relay"
      	capabilities to capture.
      
      	* capture/capquery.c: Query the capserver for the relay receiver's
      	port number.
      
      	* capture/capserver.c: Small hack to return the port number
              for a node.
      
      	* db/libdb.pm.in, db/xmlconvert.in: Add virt_tiptunnels table.
      
      	* event/program-agent/program-agent.c: Change log file names to
      	something a little more user-friendly.  Add a "MODIFY" event
      	handler that lets the user set agent attributes (command, tag,
      	timeout) without having to run a program.
      
      	* event/sched/GNUmakefile.in, event/sched/console-agent.cc,
      	event/sched/console-agent.h, event/sched/event-sched.c: Add
      	console agents that can be used to snapshot a section of the
      	capture log file.
      
      	* event/sched/node-agent.cc: Some minor cleanup.
      
      	* event/sched/simulator-agent.cc, event/sched/simulator-agent.h:
      	Add the config data to the report mail.  Add a "RESET" event
      	handler that runs "loghole clean".  Save the report mail in a file
      	so it gets archived with the rest of the logs.
      
      	* lib/libtb/tbdefs.h: Add CONSOLE object type.
      
      	* mote/GNUmakefile.in, mote/newmote: Add newmote script, just a
      	quick hack to add motes to the DB.
      
      	* mote/tbuisp.in: Add another backend for loading motes through
      	their relay capture server.
      
      	* robots/mtp/mtp_dump.c: Dump the min/max values for x and y,
      	handy for figuring out the bounds of the camera.
      
      	* sql/database-fill.sql: Change the RELOAD-MOTE/SHUTDOWN ->
      	ALWAYSUP/SHUTDOWN mode transition to ALWAYSUP/ISUP since stated
      	doesn't seem to run triggers after a state change by a mode
      	transition.
      
      	* tbsetup/tbreport.in: Change the ordering of the eventlist so it
      	displays event-sequences appropriately.
      
      	* tbsetup/ns2ir/GNUmakefile.in, tbsetup/ns2ir/console.tcl,
      	tbsetup/ns2ir/node.tcl, tbsetup/ns2ir/parse.tcl.in,
      	tbsetup/ns2ir/sim.tcl.in: Add a "console" agent that represents
      	the serial console for a node.
      
      	* tbsetup/ns2ir/sequence.tcl: Add an "append" method so it is
      	easier to build sequences dynamically.
      
      	* tbsetup/ns2ir/topography.tcl: Make checkdest available to
      	regular users.
      
      	* tip/GNUmakefile.in, tip/tiptunnel.c: Add support for uploading a
      	file to a relay version of capture and exporting the end
      	connection as a pty.
      
      	* tmcd/decls.h, tmcd/common/libsetup.pm: Bump version number since
      	the dosubnodelist change is not backwards compatible.
      
      	* tmcd/tmcd.c: Make dosubnodelist and dosubconfig callable even
      	when a node isn't allocated.  Add dotiptunnels command that
      	returns which serial consoles are to be mounted on a node.  Add
      	mote version of subconfig that returns information needed to
      	startup the relay version of capture.
      
      	* tmcd/common/bootsubnodes: For motes, startup the relay version
      	of capture (XXX stargate specific).
      
      	* tmcd/common/libsetup.pm, tmcd/common/libtmcc.pm,
      	tmcd/common/config/rc.config, tmcd/common/config/rc.tiptunnels:
      	Client side changes for mounting another nodes serial line.
      
      	* tmcd/common/rc.bootsetup: Always boot the subnodes, even when
      	free.  This is used for motes since their capture needs to be up
      	for reloading at the time.
      
      	* tmcd/linux/ixpboot: Shuffle some code around so the script
      	doesn't fail if the ixp isn't allocated.
      
      	* utils/loghole.in: Add "digest.out" and "report.mail" as global
      	logs to be saved in archives and display the "report.mail" file
      	when showing a loghole archive.
      
      	* xmlrpc/emulabserver.py.in: Scrub more of the return values to
      	get rid of "None"s.
      463ee6b1
    • Mike Hibler's avatar
      d75ced68
  11. 31 Mar, 2005 1 commit
    • Timothy Stack's avatar
      · 6095eb48
      Timothy Stack authored
      Use node_startloc table to figure out where robots are physically
      located initially, instead of using location_info for current location
      and initial.
      
      	* tbsetup/ptopgen.in: When adding features for nodes attached to a
      	building (e.g. robots), pull the building names from node_startloc
      	instead of location_info.  This change lets the robots exist in
      	two different areas.
      
      	* tbsetup/ns2ir/parse-ns.in: Pull building names from
      	node_startloc instead of location_info.
      6095eb48
  12. 30 Mar, 2005 1 commit
  13. 25 Mar, 2005 1 commit
  14. 24 Mar, 2005 1 commit
  15. 23 Mar, 2005 1 commit
  16. 22 Mar, 2005 1 commit
  17. 21 Mar, 2005 1 commit
  18. 18 Mar, 2005 2 commits
    • Mike Hibler's avatar
      Add whack-on-lan power cycle module. · d9d8a58e
      Mike Hibler authored
      To enable WhOL, you need to add outlets table entries for nodes which are
      whol-enabled.  The power_id encodes the interface on boss to use:
      
      +---------+-----------+--------+----------------+
      | node_id | power_id  | outlet | last_power     |
      +---------+-----------+--------+----------------+
      | pcwf6   | whol-fxp0 |      0 | 20050318152119 |
      +---------+-----------+--------+----------------+
      
      You then need interfaces and wires table entries for that interface on
      boss, so that snmpit works with syntax like "boss:1".  This is probably not
      really needed once the VLAN has been setup.
      
      You need a magic VLAN called "WhOL", I used VLAN 999.  Add it to all the
      switches and trunks.  Put boss's port in it.  It will remain there, enabled,
      forever.
      
      In the interfaces table entry for every interface that supports WhOL,
      you need to set the 'whol' field to 1.
      d9d8a58e
    • Mike Hibler's avatar
      Add -q 'quiet' option so it doesn't spew so much information. · 03eb87ad
      Mike Hibler authored
      Used in the power_whol module.
      03eb87ad
  19. 17 Mar, 2005 1 commit
    • Mike Hibler's avatar
      Partial support for disk-zeroing on experiment termination. · 60e7adb8
      Mike Hibler authored
      I did the "back half" support.  If the 'mustwipe' field is non-zero
      in the reserved table entry for a node then its disk must be zeroed.
      How the zeroing is done, depends on the value of the mustwipe field.
      Right now, '1' means pass the '-z' option to frisbee to have it zero
      all non-allocated blocks.  The value '2' is reserved for enabling a
      "full wipe" pass of the disk before running frisbee, which Keith Sklower
      (DETER) wanted to be able to do.  Note that 1 and 2 are effectively the
      same, if we are loading a full-disk image; i.e. all non-allocated blocks
      from the new image are zeroed.  But if the disk were being loaded with
      a single-partition image, then "frisbee -z" would only wipe unused
      blocks in that partition.
      
      The reload_daemon has been modified to extract the mustwipe info and
      invoke os_load accordingly.   os_load now takes a "-z <type>" option
      to enable the zeroing by setting a value in the current_reloads table.
      tmcd will read and return that info to its caller in the "loadinfo" command.
      Finally, the rc.frisbee script that runs in the frisbee MFS extracts the
      loadinfo info and crafts the frisbee startup command.
      
      What still needs to be done is the "front end," how the user specifies
      the value and how it winds up in the DB reserved table.  This will probably
      involve addition of state to the experiments table as this will likely be
      a per-experiment setting.
      60e7adb8
  20. 15 Mar, 2005 1 commit
  21. 10 Mar, 2005 1 commit
    • Robert Ricci's avatar
      Added two new options, needed for WhOL support. · b992395a
      Robert Ricci authored
      The new -b option gives you a string with the current status of a
      port (ie. if it's enabled, and which VLAN it's in). After getting
      this string, you can then modify the port (change its VLAN, enable it,
      whatever). Then, when you're done, you can pass the string -b gave you
      back into snmpit with -B, and it should restore the original status
      of the port.
      
      Make sure to put the status string in single quotes when you pass it
      on the command line. It contains some stuff that the shell won't like,
      such as semicolons.
      b992395a
  22. 09 Mar, 2005 1 commit
  23. 07 Mar, 2005 1 commit
    • 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
      	template.
      
      	* 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_notifications.
      
      	* 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
      	digester.
      
      	* 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
      	there.
      
      	* os/install-tarfile.1: Man page describing the install-tarfile
      	tool.
      
      	* 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.
      898cf9a2
  24. 06 Mar, 2005 1 commit
  25. 24 Feb, 2005 1 commit
  26. 23 Feb, 2005 1 commit
  27. 22 Feb, 2005 2 commits
    • Leigh B. Stoller's avatar
      Okay, first attempt to deal with os_setup waittimes on a per node_type · facc7acd
      Leigh B. Stoller authored
      and per OSID basis.
      
      * Added bios_waittime to node_types table and reboot_waittime to
        os_info table. Initialized them as follows:
      
              update node_types set bios_waittime=60 where class='pc';
              update os_info set reboot_waittime=150 where OS='Linux' or
      	  OS='FreeBSD' or OS='NetBSD';
              update os_info set reboot_waittime=180 where OS=Windows';
      
      * The bios waittime can be edited via the web interface.
      
      * The reboot waittime can be set only by admin people right now; this
        is another case of something that maybe the user should not see
        cause its too much stuff? Instead, default values are established in
        www/osiddefs.php3.
      
      * os_setup computes its per-node waitime as:
      
      	(bios_waittime + reboot_waittime) * 2
      
        as per Mike's suggestion. If either value is not defined in the DB,
        it defaults the original 7 minute value.
      facc7acd
    • Leigh B. Stoller's avatar
      Minor bug fix; make sure that swapuid and swaptime are updated. I · ec63ab8f
      Leigh B. Stoller authored
      must have pruned this out by accident when cleaning up batchexp
      a while back (combined it with startexp).
      ec63ab8f
  28. 17 Feb, 2005 1 commit
  29. 15 Feb, 2005 1 commit
    • Timothy Stack's avatar
      · 585c40c5
      Timothy Stack authored
      Robot stuff:
      
      	* robots/emc/emcd.c: Send an event containing battery levels when
      	a telemetry packet comes in from rmcd.
      
      	* robots/emc/loclistener.in: Update battery stats.
      
      	* robots/mtp/mtp.x: Add robot_id field to telemetry structure.
      
      	* robots/mtp/*.java: Regenerate jrpcgen stubs.
      
      	* robots/primotion/garcia-pilot.cc: Send telemetry to rmcd every
      	minute.
      
      	* robots/primotion/pilotClient.cc: Broadcast contact reports to
      	all clients.
      
      	* robots/rmcd/pilotConnection.c: Resend telemetry packets from
      	pilot to emcd.
      
      	* tbsetup/tbrsync.in: Wait for the node to come up before doing
      	the rsync.
      
      	* www/garcia-telemetry.jar: Removed.
      
      	* www/mtp.jar: Regenerated.
      
      	* www/telemetry.php3: Make the applet window a little bigger.
      
      	* www/garcia-telemetry/GNUmakefile.in: Don't put the jar in the
      	source tree.
      
      	* www/thinlet.jar, www/garcia-telemetry/GarciaTelemetry.java,
      	www/garcia-telemetry/UpdateThread.java,
      	www/garcia-telemetry/main.xml: Switch to the homegrown version of
      	thinlet and add contact report packets to the log.
      
      	* www/tutorial/mobilewireless.php3: Spell check.
      585c40c5
  30. 14 Feb, 2005 2 commits
    • Kirk Webb's avatar
      · f239ba2b
      Kirk Webb authored
      Garcia hack refined in reload_daemon to free the garcias upon reload.  This
      task is normally handled by stated for regular nodes.  In the case of the
      garcias, however, no RELOADDONE state transition happens, so we just free
      the node up directly.  The code to free them was stolen from stated.
      f239ba2b
    • Leigh B. Stoller's avatar
      In leu of a proper "disable swapping" directive, when web logins are · f73ae29d
      Leigh B. Stoller authored
      disabled, skip batch processing loop and pause.
      f73ae29d
  31. 12 Feb, 2005 1 commit
    • Kirk Webb's avatar
      · f14bfb3e
      Kirk Webb authored
      If WINSUPPORT isn't set, don't try generating/updating the samba shares.
      f14bfb3e