1. 14 Feb, 2005 1 commit
  2. 11 Feb, 2005 1 commit
  3. 10 Feb, 2005 1 commit
  4. 09 Feb, 2005 1 commit
    • Timothy Stack's avatar
      · ea206d40
      Timothy Stack authored
      Robot-related improvements based on feedback from Sid:
      
      	* event/sched/event-sched.h, event/sched/event-sched.c,
      	event/sched/rpc.h, event/sched/rpc.cc: Send a notification of the
      	start of event time and timelines.  Add a '-r' option that forces
      	it to use the default rpc path (so dan can use a custom
      	scheduler/rmcd/etc on ops).
      
      	* robots/GNUmakefile.in, robots/emc/GNUmakefile.in,
      	robots/mtp/GNUmakefile.in, robots/primotion/GNUmakefile.in,
      	robots/rmcd/GNUmakefile.in, robots/vmcd/GNUmakefile.in,
      	robots/tbsetdest/tbsetdest.cc: Add a control-install target.
      
      	* robots/primotion/garcia-pilot.cc: Take out some experimental
      	code.
      
      	* robots/primotion/dashboard.hh, robots/primotion/dashboard.cc,
      	robots/primotion/pilotClient.cc, robots/primotion/wheelManager.hh,
      	robots/primotion/wheelManager.cc: When doing a COMMAND_STOP, make
      	sure we only send one update packet, an idle or an abort.  Also
      	send back the actual distance travelled/pivoted.
      
      	* robots/tbsetdest/tbsetdest.cc: Don't output setdest event's with
      	a speed of zero.
      
      	* tbsetup/eventsys_control.in: When replaying/stopping, clear the
      	start of event time for the experiment.
      
      	* tbsetup/power_mail.pm.in: Decrease the threshold used to tell if
      	a node has been power cycled "recently".
      
      	* tbsetup/ns2ir/node.tcl, tbsetup/ns2ir/sim.tcl.in: Bah, backout
      	last change, orientation is supposed to be in degrees at these
      	points.  Also, when automatically picking the sync server, don't
      	use nodes that are subnodes.
      
      	* tmcd/common/bootsubnodes: Send an ISUP for motes.
      
      	* www/moteleds.php3: Show the mote node names instead of the
      	robots.
      
      	* www/powertime.php3: Add option to mark nodes as powered off.
      
      	* www/robotmap.php3: Display the elapsed time for the overall
      	event time and for each active timeline.
      
      	* www/showexp.php3: Only display the blinky lights menu item when
      	there are motes.
      
      	* www/shownode.php3: Change "Update Power Time" -> "Update Power
      	State".
      
      	* www/tutorial/mobilewireless.php3: Fix some nits.
      
      	* xmlrpc/emulabserver.py.in: Add event_time_start method for
      	storing/getting/clearing the start of event time for an
      	experiment/timeline.
      ea206d40
  5. 08 Feb, 2005 2 commits
  6. 04 Feb, 2005 1 commit
    • Timothy Stack's avatar
      · 6f545cf0
      Timothy Stack authored
      Some more robot integration.
      
      	* event/lib/event.h, event/lib/event.c: Add some
      	event_notification creation functions that get used in
      	event-sched.
      
      	* event/sched/event-sched.c, event/sched/rpc.h,
      	event/sched/rpc.cc: Sync the start of event time with the
      	robots reaching their initial positions.  This is done by
      	creating a master event-sequence that takes care of sending
      	the SETDEST events and then starting the Simulator timeline.
      
      	* mote/tbuisp.in: Use node_reboot instead of ssh'ing in.
      
      	* robots/GNUmakefile.in: Don't build tbsetdest if ulsshxmlrpcpp is
      	not available.
      
      	* robots/emc/loclistener.in: Clear the destination values for a
      	node when it reaches its destination.
      
      	* robots/primotion/garcia-pilot.cc,
      	robots/primotion/pilotClient.cc: Some cleanup and debugging.
      
      	* robots/primotion/wheelManager.cc: Check the rear sensors for
      	obstructions and then decide which way to pivot.
      
      	* robots/rmcd/pilotConnection.h, robots/rmcd/pilotConnection.c,
      	robots/rmcd/rclip.h: Even more tweaking.
      
      	* rob...
      6f545cf0
  7. 02 Feb, 2005 2 commits
  8. 31 Jan, 2005 1 commit
  9. 28 Jan, 2005 3 commits
    • Mike Hibler's avatar
      0afe9c54
    • Leigh B. Stoller's avatar
      8d1bce8a
    • Leigh B. Stoller's avatar
      Changes to elabinelab setup. The source code for inner boss/ops no · 03cf92cb
      Leigh B. Stoller authored
      longer comes from the project directory (really, my source directory
      in the various projects). Instead, the source code comes from one of
      two places:
      
      * Using fetch on the inner ops and boss, make a special request to the
        outer webserver to return a tarball, currently stored in
        /usr/testbed/src, and created by toplevel makefile target "elabinelab".
        So, in your object tree (preferably one that is pure, without any of your
        own hacks) run "make elabinelab" and it will create the tarfile for you.
        The tarball is returned only to elabinelab experiments providing the
        experiment secret key (a variant of the existing spewrpmtar file stuff).
      
      * Using the standard tarfile install command, albiet indrectly cause of how
        we hide all of the elabinelab NS goo. So, in your NS file you can do:
      
      	tb-elab-in-elab 1
      	set ::TBCOMPAT::elabinelab_source_tarfile \
      			"/proj/testbed/tarfiles/emulab-src.tar.gz"
      
        Which will arrange for this tarfile to be installed in /usr/src, and then
        copied to the approriate place later when inner boss and inner ops are
        setup. The tarfile should be created in the top of your testbed source
        tree. This is given preference over method 1 above.
      
      XXX Currently the tarfile is unpacked in /usr/src cause install-tarfile
      does not create the target directory. As soon as we have new images, I'll
      move this unpacking to a more suitable place.
      03cf92cb
  10. 27 Jan, 2005 2 commits
  11. 26 Jan, 2005 1 commit
  12. 25 Jan, 2005 1 commit
  13. 24 Jan, 2005 1 commit
  14. 20 Jan, 2005 1 commit
  15. 18 Jan, 2005 1 commit
  16. 14 Jan, 2005 1 commit
    • Russ Fish's avatar
      Work over the accounts and mounts part of the CygWinXP port. · 8c98fc4b
      Russ Fish authored
      Use cygrunsrv -i on sshd to "allow the service to interact with the desktop."
      Now that the sshd daemon has a desktop session context that is inherited by
      the client shell, remote home directories can work.  They start with a blank
      Windows mount context, but once a single Samba connection is made during
      login, it enables all UNC //machine/path mounts to work.  Hence the home
      directories are now CygWin mount points (no longer symlinks) to UNC paths, set
      up by rc.mounts and then shared through CygWin to all of the user logins.
      
      Get rid of the previous horrible (and fragile) hack to set up an auto-login by
      the swapin user which then automatically started a user sshd on port 2222.
      
      tmcd.c - Arrange for tmcd to provide the public key data when a special argument is
      given as "tmcc accounts pubkeys".
      
      rc.accounts - Due to permissions problems with remote-mounted authorized_keys
      files, sshd_config now uses "AuthorizedKeysFile /sshkeys/%u/authorized_keys",
      which is where rc.accounts puts the public key data.
      
      Since root, Administrator, and even SYSTEM can be locked out by permissions on
      NT, WINDOWS() variant logic to set ownership and modes on authorized_keys
      files had to be added to rc.accounts.  There is also a bug in the sshd
      "privilege separation" setreuid() dance that requires the authorized_keys
      files to be owned by SYSTEM (or be mode 644, which is slightly worse.)
      
      cygwinxp/liblocsetup.pm - Pay attention to the users' shell preferences in
      generating /etc/passwd.  Make warnings more uniform.
      8c98fc4b
  17. 11 Jan, 2005 1 commit
  18. 07 Jan, 2005 3 commits
  19. 06 Jan, 2005 1 commit
    • Leigh B. Stoller's avatar
      A bunch of boot changes. Read carefully. · 94ccc3f4
      Leigh B. Stoller authored
      * Add boot_errno to the nodes table so that nodes can report in a
        subcode to indicate what went wrong. At present, we do not report any
        real error codes; that is going to take some time to work out since it
        will reqiure a bunch of changes to the boot scripts.
      
      * Add new table node_bootlogs to store logs provided by the nodes. Not
        a full console log, but a log of the tmcd client side part. We can
        make it a full log if we want though; just means mucking about with
        the boot phase a bit.
      
      * Add new state transition to NORMALv2 and PCVM state machines. "TBFAILED"
        is a new state that is sent (after TBSETUP) if a node fails somewhere in
        the tmcd client side.
      
      * Change TBNodeStateWait() to take a list of states (instead of single
        state) and an optional pass by reference parameter to return the actual
        state that the node landed in. Change all calls to TBNodeStateWait() of
        course.
      
      * Change os_setup (and libreboot in wait mode) to look for both TBFAILED
        and ISUP. If a TBFAILED event is seen, we can terminate the wait early
        and not retry os_setup on physical nodes (although still retry virtual
        nodes). The nice thing about this is that the wait should terminate much
        earlier (rather then waiting for timeout), especially for virtual nodes
        which can take a really long time when there are a couple of hundred.
      
      * Add new routines dobooterrno() and dobootlog() to tmcd. Bump version
        number and increase the buffer size to allow for the larger packets that
        a console log wikk generate (added MAXTMCDPACKET variable, set to 0x4000).
      
      * Add new -f option to tmcc to specify a datafile to send along as the last
        argument to tmcd. This is more pleasing then trying to send a console log
        in on the command line. For example: "tmcc -f /tmp/log BOOTLOG" will send
        a BOOTLOG command along with the contents of /tmp/log.
      
        Also close the write side of the pipe so that server sees EOF on
        read. See aside comment below.
      
      * Changes to rc.bootsetup:
           1. Use perl tricks to capture all output, duping to the console and to
              a log file in /var/emulab/logs.
           2. On any error, send a status code (boot_errno) and the bootlog to
              tmcd.
           3. Generate a TBFAILED state transition.
      
      * Changes to rc.injail:
           1. Same as rc.bootsetup, but do not send log files; that would pummel
              boss. Leave them on the physical node.
      
      * Change vnodesetup (which calls mkjail) to watch for any error and send a
        TBFAILED state transition. This should catch almost all errors, and
        dramatically reduce waiting when something fails.
      
      * Changes to rc.cdboot are essentially the same as rc.bootsetup, although a
        bootlog is sent all the time (success or failure), and I do not generate
        a boot_errno yet. Also, instead of TBFAILED, generate a PXEFAILED state
        since the CDROM is actually operating within the PXEFBSD opmode. I have
        yet to work this into the rest of the system though; waiting to get a new
        CD built and actually experiment with it.
      
      * Add new menu option and web page to display the node bootlog. We store
        only the lastest bootlog, but maybe someday store more then one. Display
        boot_errno on node page.
      
      Aside: I made a big mistake in the tmcd protocol; I did not envision
      passing more then a small amount of data (one fragment) and so I do not
      include a record terminator (ie: close of the write side on the client
      sends EOF) or a size field at the beginning. No big deal since small
      requests are sent in one fragment and the server sees the entire
      thing. Well, with a large console log, that will end up as multiple
      fragments, and the server will often not get the entire thing on the first
      read, and there are no subsequent reads (with no EOF or known size, it
      would block forever). Well, fixing this in a backwards compatable manner
      (for old images) was way too much pain. Instead, tmcc now closes the write
      side, and the server does subsequent reads *only* in the new dobbootlog()
      routine. Note that it *is* possible to fix this in a backwards compatable
      manner, but I did not want to go down that path just yet.
      94ccc3f4
  20. 05 Jan, 2005 1 commit
  21. 21 Dec, 2004 1 commit
  22. 07 Dec, 2004 5 commits
  23. 06 Dec, 2004 1 commit
  24. 02 Dec, 2004 1 commit
  25. 22 Nov, 2004 1 commit
  26. 16 Nov, 2004 1 commit
  27. 11 Nov, 2004 2 commits
    • Mike Hibler's avatar
    • Leigh B. Stoller's avatar
      Checkpoint the client side of ElabInElab changes in case some whacko is · a5c1e591
      Leigh B. Stoller authored
      dying to see whats going on. These changes can go into new images; it will
      be ignored in non ElabInElab experiments;
      
      rc.inelab: A terrible hack that I now regret. The whole point of this
      script to allow inner boss/ops to 1) play by the standard state machine goo
      (ISUP) for the outer emulab. That way os_setup, node_reboot, etc all work
      when dealing with setting up the inner elab. 2) Since the inner
      control can fall on any of the interfaces (as picked by assign), we
      need to still do ifc/route configuration using tmcd. At the time I did
      this, I expected that swapmod/swapin/swapout would be possible and
      that boss/ops would be coming in on different nodes using different
      interfaces for the inner control net, and that I would want to ask
      each reboot. Well, I think swapping an inner emulab is a really long
      way off, maybe so far off I'll be retired by that time.
      
      rc.mkelab: A lot of very ugly code that turns a node into an inner ops
      or boss. I won't bother to describe this code other than to say the
      operating model for this rev is to create a fully functional inner
      emulab based on the DB state provided by the outer emulab. Currently,
      the current testbed software is expected to be in the /proj tree, and
      a full boss/ops install is done, followed by all kinds of
      customizations (like building accounts for members of the project,
      etc) to make it a fully function emulab with just a single project;
      the project in which the inner emulab was created.
      a5c1e591
  28. 09 Nov, 2004 1 commit
    • Mike Hibler's avatar
      Subtle: when creating symlinks, do NOT include $(DESTDIR) as part of · 5cd01fc6
      Mike Hibler authored
      the source of the link.  Otherwise when installing an MFS with something
      like DESTDIR=/mnt, you wind up with links like:
      
      lrwxr-xr-x   1 root  wheel   25 Nov  9 11:45 lib@ -> /mnt/usr/local/etc/emulab
      
      which do not resolve when the MFS is booted.
      
      This assumes that DESTDIR is only used for temporary mounting of filesystems
      that are normally mounted elsewhere (and I believe that has always been the
      intent of DESTDIR, at least in BSD).  If DESTDIR reflected the true path,
      then the links will now be wrong.
      5cd01fc6