1. 11 Dec, 2004 2 commits
  2. 10 Dec, 2004 7 commits
  3. 09 Dec, 2004 11 commits
    • Robert Ricci's avatar
      Added 'rebootable' bit to node_types · a588ecd4
      Robert Ricci authored
      a588ecd4
    • Leigh B. Stoller's avatar
      By the pervision of TCL, I have hidden the details: · 1c0efe2c
      Leigh B. Stoller authored
      	source tb_compat.tcl
      	set ns [new Simulator]
      
      	tb-elab-in-elab 1
      	tb-set-inner-elab-eid two-simple
      	tb-set-security-level Red
      
      	$ns run
      
      tbsetup/ns2ir/elabinelab.ns has all the goo, which is sourced from the
      NS run subroutine, using "uplevel 1" so that the context is correct.
      You can of course include you own goo, in which case the default goo
      will be skipped.
      1c0efe2c
    • Timothy Stack's avatar
      · 1f16a276
      Timothy Stack authored
      Make the dots move on the robot map web page:
      
      	* configure, configure.in: Add robots/emc/loclistener.
      
      	* event/lib/event.h, event/lib/event.c: Add some helper functions
      	for sending events and parsing args.
      
      	* event/lib/tbevent.py.tail, event/lib/tbevent.py: Add support for
      	clients that register using keyfiles.
      
      	* robots/emc/GNUmakefile.in: Install loclistener on boss.
      
      	* robots/emc/emcd.h, robots/emc/emcd.c: Send update events every
      	two seconds with the node's location.  Fill out a little more of
      	the event callback, not sure what to do with the requested
      	destination though.  Add some code to the vmc callback to store
      	position updates.  Changed the config file format to also include
      	the vname of the robot.
      
      	* robots/emc/loclistener.in: Listen for NODE MODIFY events with
      	coordinates and update the database accordingly.  Kinda sucks, but
      	it works.
      
      	* robots/emc/test_emcd.config: Add vnames to the robots to reflect
      	change in the config file format.
      
      	* tbsetup/ns2ir/node.tcl: Add nodes to the virt_agents table.
      1f16a276
    • Daniel Flickinger's avatar
      New application: gorobotc · ffa60e93
      Daniel Flickinger authored
       (Console interactive robot driving program)
      
      Major fixes to grobot. Added facilities to track goto moves, and avoid multiple gotos from executing at once. Also added functions for estimating final positions after executing a goto command.
      ffa60e93
    • Daniel Flickinger's avatar
      New application: gorobotc · 86624061
      Daniel Flickinger authored
       (Console interactive robot driving program)
      86624061
    • Leigh B. Stoller's avatar
      Okay, here is the current development approach for dealing with · 5a4e9df8
      Leigh B. Stoller authored
      ElabinElab experiments that wrap another experiment, either firewalled
      or not. This instead of my security level stuff, that I decided was
      too much of a pain the user, at least for now. New NS syntax:
      
      	tb-set-inner-elab-eid two-simple
      
      In the ElabinElab file, sets the name of an existing experiment in the
      same project. Experiment is parsed, and after the parse we notice in
      tbprerun that we have an inner eid, so we reparse the NS file, only
      this time we pass in the maximum number of nodes needed by the inner
      eid (tbprerun now computes min/max nodes at prerun time, instead of
      later as first part of swapin). This number is used to allocatethe
      appropriate number of inner experimental nodes. Why do it this way?
      Cause the NS parser is the only tool we have for generating the virt
      topology, and I do not want go down the path of inventing a new
      frontend.
      
      Anyway, after the reparse, we now have the proper number of nodes in
      the wrapper experiment. Now its simply a matter of copying over the
      type and fixnode info from the inner experiment to the outer
      experiment.  Why? So that when the outer experiment is swapped in, it
      gets the nodes (of the right type/fixnode) that the inner experiment
      is going to want later, when it is swapped in by the inner emulab!
      
      Another approach would be to make elabinelab and elabinelab_eid
      options to batchexp (and thus the web form and XMLRPC interface) so
      that we can avoid the double parse. I suspect people do not want more
      crap on the web form, so I did not do it this way.
      5a4e9df8
    • Leigh B. Stoller's avatar
      When the elabinelab experiment is also firewalled, ssh into the · 12c44d00
      Leigh B. Stoller authored
      firewall node and disable the rules during the inner elab setup, and
      then turn them back on after the inner boss has rebooted. In the case
      that an experiment is to be launched inside, launch the experiment
      async and then turn rules back on. Technically, this should be proxied
      through the firewall instead of directly, but this is okay for now.
      
      As for experiment teardown, I am not doing anything yet since the
      closed firewall lets ssh through, and thats all I need to teardown the
      inner elab.
      
      Also during teardown, if DHCPD cannot be killed on inner boss, then
      skip rest of the steps and return okay so that the rest of experiment
      teardown proceeds (if need be, inner nodes will be power cycled). Not
      being be able to kill DHCPD can happen for lots of reasons (like,
      experiment never setup in the first place).
      12c44d00
    • Leigh B. Stoller's avatar
      Trivial print statement change. · e1a4917a
      Leigh B. Stoller authored
      e1a4917a
    • Russ Fish's avatar
      Minor path fix for getmac. · f7edc323
      Russ Fish authored
      f7edc323
    • Leigh B. Stoller's avatar
    • Leigh B. Stoller's avatar
      a744e491
  4. 08 Dec, 2004 7 commits
    • Daniel Flickinger's avatar
      small updates · 563c6aca
      Daniel Flickinger authored
      563c6aca
    • Timothy Stack's avatar
      · feea9720
      Timothy Stack authored
      Elvinize emc and some bug fixes...
      
      	* configure, configure.in: Add "robots/emc/test_emcd.sh" script to
      	the list of template files.
      
      	* robots/GNUmakefile.in: Add a target for install-subdir.
      
      	* robots/emc/GNUmakefile.in: Compile emcd and install it on ops.
      	Add test_emcd.sh test case.
      
      	* robots/emc/emcd.h, robots/emc/emcd.c: Elvinize, add support for
      	events, and some minor cleanup.
      
      	* robots/emc/robot_list.c: Compilation fixes.
      
      	* robots/emc/test_emcd.config: Robot config for the test case.
      
      	* robots/emc/test_emcd.sh.in: Test case for emcd, just starts it
      	up and uses mtp_send to send a few messages to it.
      
      	* robots/mtp/GNUmakefile.in: Install mtp_send and mtp_recv on ops.
      
      	* robots/mtp/mtp.h, robots/mtp/mtp.c: Marshall floats correctly,
      	doh!  Move the packet printing code from mtp_recv to the lib.
      
      	* robots/mtp/mtp_recv.c: Move the packet printing code to the
      	lib.
      
      	* robots/mtp/mtp_send.c: Add a "-w" option to wait for a response
      	from the peer and then dump the packet to stdout.  Allow multiple
      	packets to be sent from a single invocation, the arguments for
      	each packet must be separated by a double dash (--), see
      	test_emcd.sh.in for an example.
      
      	* robots/mtp/mtp_test.c: Gah, test with actual floating point
      	values dummy.
      feea9720
    • Leigh B. Stoller's avatar
      Allow specification of inner elab experiment eid in the NS file. I'm · 2ea12718
      Leigh B. Stoller authored
      so unhappy with my current approach that I decided to drop that idea
      for now and just specify the eid of the experiment to run.  Obviously,
      it has to be an existing experiment in the same project, whose nsfile
      is grabbed from the DB and shipped over to the inner boss.
      2ea12718
    • Leigh B. Stoller's avatar
      Stripped down version of the floormap code that shows the robotmap · ca9ea012
      Leigh B. Stoller authored
      with no other stuff on page. Notes:
      
      * I added a new building called MEB-ROBOTS cause otherwise it would
        show up on the wireless maps since floormap gets all the floors for
        a building. Need to add type tags someplace, but not sure where yet
      
      * I committed Russ' initial jpeg image to use in the floorimages
        table. Russ can replace that when he generates a better looking
        version.
      
      * I linked the robots map in from the node status page ...
      ca9ea012
    • Mike Hibler's avatar
      Fix check to ignore LOCK/UNLOCK/DELETE lines generated in the distribution · 7bd329e6
      Mike Hibler authored
      version of database-fill.sql
      7bd329e6
    • Leigh B. Stoller's avatar
    • Leigh B. Stoller's avatar
      8fb23715
  5. 07 Dec, 2004 12 commits
    • Russ Fish's avatar
    • Russ Fish's avatar
      Mis-placed comma. · 4759da4d
      Russ Fish authored
      4759da4d
    • Russ Fish's avatar
      337dd532
    • Russ Fish's avatar
      Move HOSTSFILE into liblocsetup for Windows. · 1ec51476
      Russ Fish authored
      1ec51476
    • Daniel Flickinger's avatar
      Added socket communications, etc. · 53d65f4a
      Daniel Flickinger authored
      53d65f4a
    • Daniel Flickinger's avatar
      · ce46a57a
      Daniel Flickinger authored
      More sockets and integration
      ce46a57a
    • Leigh B. Stoller's avatar
      A number of changes: · 261b35fe
      Leigh B. Stoller authored
      * Always run assign_wrapper using -t mode. This just runs the top file
        stuff, and writes the min/max nodes into the DB.
      
      * Then look at the security level for the experiment, and if orange or
        red, create a parallel elabinelab experiment to run it in. This is a
        completely new experiement in addition to the original. The two
        experiments are linked with some DB state so we know what experiment
        to fire off inside the inner elab. I am using a template NS file and
        passing in the number of nodes computed in the previous step above.
        The template includes the firewall rules.
      
        This is quote hokey. It should be more invisible to the user.
      
        I have not dealt with yellow (just a firewall).
      
      * I added some stats code so that we update the experiement_stats
        record with the elabinelab status and security level.
      
      * Cleanup how errors were handled and get rid of silly duplicated
        code.
      261b35fe
    • Leigh B. Stoller's avatar
      Add TBExptMinMaxNodes(), TBExptSecurityLevel(), and TBExptIDX() · 8bca6c6f
      Leigh B. Stoller authored
      utility functions, which do the obvious stuff.
      8bca6c6f
    • Timothy Stack's avatar
      · 0ed6b518
      Timothy Stack authored
      Command line tools for the robot protocol:
      
      	* configure, configure.in: Add the robots GNUmakefiles.
      
      	* robots/mtp/GNUmakefile.in: Add command line tools: mtp_send and
      	mtp_recv.
      
      	* robots/mtp/mtp.c: Make readall return an error if all of the
      	data wasn't read instead of making the caller check.  Free the
      	buffer allocated in mtp_send_packet.  Add an mtp_free_packet.
      
      	* robots/mtp/mtp_recv.c: Faux receiver of mtp packets, it doesn't
      	actually follow the protocol, it just prints out whatever it
      	receives.
      
      	* robots/mtp/mtp_send.c: Command line tool for sending mtp
      	packets.
      0ed6b518
    • Leigh B. Stoller's avatar
      Checkpoint latest stable version. The big change is that boss and ops · ce5b0c61
      Leigh B. Stoller authored
      are setup with static routing/ifconfig by adding proper goo to rc.conf.
      Previously, I was asking outer boss on each bootup, but this approach is
      unworkable in a firewalled setting.
      ce5b0c61
    • Leigh B. Stoller's avatar
      * After rebooting the inner nodes, ssh into the inner boss and run · dd3b8989
      Leigh B. Stoller authored
        utility script to wait for them to reboot and reach PXEWAIT. This
        indicates inner emulab is raelly ready
      
      * When an inner experiment is defined (elabinelab_eid in experiments
        table) fire that experiment off by doing an ssh into inner boss. I
        am currently doing this with -w (wait mode) but eventually will need
        to do it async for experiments in which the control net is turned
        off. Also, not actually swapping experiment in yet since multicast
        and frisbee are still broken inside.
      
      * Add -k mode for cleaning up. The intent of this is to avoid power
        cycling all the nodes cause outer elab cannot reboot or ipod them.
        Goes like this:
      
        * Clear the inner_elab_role for experiment's nodes from the reserved
          table.
      
        * Clear def_boot_osid,next_boot_osid,temp_boot_osid for nodes. This
          is bogus cause os_select whines about doing this, but the point is
          to make sure that all nodes will go into PXEWAIT when they reboot.
          We could have them go into MFS, but thats bound to cause problems
          if inner elab has a lot of nodes (remember, cannot trust what is
          on disk). This needs more thought.
      
        * Regen and restart outer dhcpd. Nodes will become part of outer
          emulab on next boot cycle.
      
        * SSH into inner boss and kill inner DHCPD so that there will not be
          any DHCPD responses on inner control network.
      
        * SSH into inner boss and have it reboot all inner nodes.
      
        * Wait for node to reach PXEWAIT.
      
        The above needs more thought wrt firewalled experiments and isolated
        control network.
      
      * Kill off some old MFS copy code since we now get those direct from
        website.
      dd3b8989
    • Mike Hibler's avatar
      If osload part of swapin fails and there is a firewall involved, it is likely · f336fe42
      Mike Hibler authored
      that the firewall rules are preventing essential communication and causing the
      failure, so don't retry.
      
      We should probably only do this if the user has specified additional
      firewall rules.  But right now, I may screw up the default rules too!
      f336fe42
  6. 06 Dec, 2004 1 commit