1. 16 Feb, 2007 1 commit
    • Mike Hibler's avatar
      Hackery to make sure that Plab slices always have boss/ops in their hosts · 7d7c0999
      Mike Hibler authored
      file: we return info for boss/ops in the "hostnames" command, but only if
      the command would have otherwise returned something.
      
      This is because the default hosts file we distribute in the rootball already
      has boss/ops in it.  But if, during bootup, tmcd returns hostname info, that
      hosts file gets overwritten and boss/ops info gets lost.
      
      I could just grep out the info from the original hosts file and transfer it
      to the one we are building, but what do I grep for: "boss", "ops",
      "emulab.net"?  Don't really want to hardwire any of those in the client-side
      script.
      
      By returning this info via tmcd, I also don't have to modify the client-side
      and thus don't need to build a new rootball!
      7d7c0999
  2. 20 Oct, 2006 1 commit
    • Mike Hibler's avatar
      Wow, this should make me look important! · afa5e919
      Mike Hibler authored
      Two-day boondoggle to support "/scratch", an optional large, shared filesystem
      for users.  To do this, I needed to find all the instances where /proj is used
      and behave accordingly.  The boondoggle part was the decision to gather up all
      the hardwired instances of shared directory names ("/proj", "/users", etc.)
      so that they are set in a common place (via unexposed configure variables).
      This is a boondoggle because:
      
      1. I didn't change the client-side scripts.  They need a different mechanism
         (e.g., tmcd) to get the info, configure is the wrong way.
      
      2. Even if I had done #1 it is likely--no, certain--that something would
         fail if you tried to rename "/proj" to be "/mike".  These names are just
         too ingrained.
      
      3. We may not even use "/scratch" as it turns out.
      
      Note, I also didn't fix any of the .html documentation.  Anyway, it is done.
      To maintain my illusion in the future you should:
      
      1. Have perl scripts include "use libtestbed" and use the defined PROJROOT(),
         et.al. functions where possible.  If not possible, make sure they run
         through configure and use @PROJROOT_DIR@, etc.
      
      2. Use the configure method for python, C, php and other languages.
      
      3. There are perl (TBValidUserDir) and php (VALIDUSERPATH) functions which
         you should call to determine if an NS, template parameter, tarball or
         other file are in "an acceptable location."  Use these functions where
         possible.  They know about the optional "scratch" filesystem.  Note that
         the perl function is over-engineered to handles cases that don't occur
         in nature.
      afa5e919
  3. 07 Jun, 2006 1 commit
  4. 06 May, 2005 1 commit
  5. 04 Apr, 2005 1 commit
    • 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
  6. 07 Jan, 2005 1 commit
    • Mike Hibler's avatar
      We don't have enough config time variables yet, so I added: · 2f6a197d
      Mike Hibler authored
      	FSNODE_IP
      	EXTERNAL_FSNODE_IP
      
      which default to ops' IP address if not set.  This allows for separate
      ops/fs nodes, a config Aero has.
      
      Also push some IP addresses (boss, ops, fs) into config.h so they can
      be used in C programs.  Specifically tmcd for returning values of
      "firewall variables" that can be used in default firewall rules.
      But I will likely wind up putting the var/value pairs in the DB rather
      than compiling them into tmcd.
      2f6a197d
  7. 21 Dec, 2004 1 commit
    • Timothy Stack's avatar
      · 241132a3
      Timothy Stack authored
      Some cleanup of the robot vision system:
      
      	* Makeconf.in: Add INSTALL_INCDIR for includes, EVENTSYS for
      	whether or not the event system is available, HAVE_MEZZANINE for
      	whether or not we'll be building mezzanine, and GTK_CONFIG which
      	refers to the gtk-config binary, if there is one.
      
      	* config.h.in: Add HAVE_LINUX_VIDEODEV_H and HAVE_MEZZANINE
      	defines.
      
      	* configure, configure.in: Check for the robot vision system
      	dependencies.  Add mezzanine template files.
      
      	* robots/GNUmakefile.in: Add some conditionals for directories
      	that depend on the event-system and mezzanine.
      
      	* robots/mezzanine/GNUmakefile.in,
      	robots/mezzanine/libfg/GNUmakefile.in,
      	robots/mezzanine/libmezz/GNUmakefile.in,
      	robots/mezzanine/mezzanine/GNUmakefile.in,
      	robots/mezzanine/mezzcal/GNUmakefile.in,
      	robots/mezzanine/rtk2/GNUmakefile.in: Fold mezzanine into the
      	testbed's build system.
      
      	* robots/vmcd/GNUmakefile.in: When building the vmc-client, use
      	the mezzanine that we build locally instead of an installed
      	version.
      
      	* robots/vmcd/test_vmc-client.sh.in, robots/vmcd/test_vmcd.sh.in,
      	robots/vmcd/test_vmcd2.sh, robots/vmcd/test_vmcd3.sh,
      	robots/vmcd/test_vmcd4.sh: Bring the test cases up-to-date with
      	respect to the actual code.
      
      	* robots/vmcd/vmc-client.c: A bunch of cleanups and bug fixes: add
      	comments, set TCP_NODELAY on the client sockets (doh), etc...
      241132a3
  8. 29 Oct, 2004 2 commits
  9. 18 Aug, 2004 1 commit
  10. 15 Oct, 2003 1 commit
    • Mike Hibler's avatar
      Uniform syslog'ing. Change everything I could find to use a syslog facility · cc6d6fa7
      Mike Hibler authored
      as defined in the defs-* file (e.g. "TBLOGFACIL=local2").  The default is
      "local5" which is what we are setup to use so you shouldn't need to mess
      with your defs- file!
      
      perl scripts just get this value configured in when configure is run.
      C programs get the value in two ways.  For programs that are intimate with
      the testbed infrastructure, and include "config.h", they just get it from
      that file.  For programs that we sometimes use outside the Emulab build
      environment (e.g., frisbee, capture) and that don't include config.h,
      the value is set via a "-DLOG_TESTBED=..." in the GNUmakefile build line.
      If the value isn't set, it defaults to what it used to be (usually LOG_USER).
      
      Still to do: healthd, hmcd (whose build doesn't seem to be completely
      integrated) and plabdaemon.in (since its icky python :-)
      cc6d6fa7
  11. 30 May, 2003 1 commit
  12. 05 Nov, 2002 1 commit
  13. 13 Sep, 2002 1 commit
  14. 18 Jan, 2002 2 commits