1. 27 May, 2005 1 commit
    • Leigh B. Stoller's avatar
      Couple of bug fixes: · ee486a42
      Leigh B. Stoller authored
      * Use the "role" slot of the interfaces table, instead of joining with
        node_type, to find the control interface. Must do this inside an
        inner Elab of course, since the node_types table does not reflect
        how assign selected the interface we use for the "control" network.
      
      * Use !is_numeric() instead of is_string() to determine if the naming
        patter in alpha based instead of number based ("1" is a string).
      ee486a42
  2. 26 May, 2005 1 commit
    • Leigh B. Stoller's avatar
      In addition to the giant commit log file (which is really getting big), · 5afef257
      Leigh B. Stoller authored
      generate month by month files, and then a little index to include into the
      php script.
      
      I know, this is really important stuff! But, I was reminded to do this by a
      message that Christopher Johnson (the young one) sent on April 29th about
      his project. His code was quaint, but I did not think we needed a new
      python script when it was much easier just to roll it into the existing
      perl script that imports the commitlog.
      5afef257
  3. 25 May, 2005 1 commit
  4. 24 May, 2005 4 commits
  5. 23 May, 2005 1 commit
  6. 20 May, 2005 3 commits
    • Leigh B. Stoller's avatar
      Checkpoint some robot changes. · 5f67fe09
      Leigh B. Stoller authored
      * New robot event listener:
      
          * It is intended to be started and stopped from the experiment
            swapin path instead of as a global daemon. It takes the pid/eid
            of the experiment, and will deal with events only for those
            nodes that are allocated to the experiment. We have some long
            range plans of time sharing the robot lab, so I figured we might
            as get a little bit of a start on that.
      
          * Once it fires up, it subscribes to the usual assortment of
            events, just like the loclistener does.
      
          * It then binds a socket on which to listen for connections from
            the web server.
      
          * Then it loops, looking for events and for connections from the
            web server. Connections from the web server are for forwarding
            the event stream in real time to whatever applets are currently
            viewing the robot lab.
      
          * As each event comes in, it is parsed, entered into the DB (nodes
            and location_info table), and fired out (in a textual form) to
            all the applet listeners. The web interface just acts as pipe in
            this case for the data.
      
          * The event stream is also duplicated to a file in the experiment
            directory (the same stuff that is piped to the applet), named by
            the current resource record ID. I hope to use this stream to
            playback the motion in the applet (coupled with webcam images
            once I figure out how to sync them).
      
      * tbswap: Start and stop the new listener.
      
      * Robotrack: I changed the interface for how we actually communicate
        the event data. Much more reasonable then it was (a comma separated
        string of numbers!).
      
      * new database fields in the experiments table to hold the process ID
        of the listener and the port it is listening on. The port is not
        used yet, as the robot lab is still not shared. Will need to revist
        this later. Currently uses a fixed port number.
      
      * www/robotrack/robopipe.php3: Killed most of the old code and replace
        with simple socket connect to the listener.
      5f67fe09
    • Leigh B. Stoller's avatar
      Build new jar file for Tim. · 29759ea3
      Leigh B. Stoller authored
      29759ea3
    • Leigh B. Stoller's avatar
      Cheesy hack to avoid confusing people with output. The stats scripts · 58919d32
      Leigh B. Stoller authored
      need output formatting work, but its too low priority to find the time.
      58919d32
  7. 19 May, 2005 1 commit
  8. 18 May, 2005 1 commit
  9. 17 May, 2005 1 commit
    • Leigh B. Stoller's avatar
      A couple of changes: · f5e06601
      Leigh B. Stoller authored
      * Allow nodes that currently moving to be dragged to an alternate
        location (thereby interrupting current motion, and giving it a new one).
      
      * Fix some check collision problems.
      f5e06601
  10. 16 May, 2005 2 commits
  11. 13 May, 2005 2 commits
    • Leigh B. Stoller's avatar
      For the benefit of people with no middle mouse button, move the stop/restart · 7bb77131
      Leigh B. Stoller authored
      applet functions to the left button menu, which now pops up all the time.
      7bb77131
    • Leigh B. Stoller's avatar
      Automate initial user/project setup from setup-db.txt. Rather then · dd1b57bc
      Leigh B. Stoller authored
      have the user go through a set of hard to explain steps, just push
      them through it using the web interface.
      
      * New sitevars to control a little state machine used by the web
        interface.
      
      * When first setting up a testbed, the sitevar value will force the
        web interface to present the user with a single menu option "Create
        New Project" and the "Home" link will take the user to that page.
        The user is instructed to login is as elabman.
      
      * The user fills in the form as directed in setup-ops.txt. Even though
        he is logged in as elabman, the newproject form has been altered to
        operate as if no one is logged in. I also default a bunch more of
        the fields in this case.
      
      * The user submits the form. Rather then pend the new project, just
        jump straight into approveproject. That grinds along as usual, and
        when it is done, the elabman account is frozen and the user logged
        out. The user gets a link inviting him to log back in as the user
        just created.
      
      * Side effects of this new process:
      
      	* The user is made an admin user (admin=1) automatically.
      	* The user is added to the emulab-ops project as group_root.
      	* The user verification process is skipped.
      	* The user is added to the unixgroups wheel and tbadmin.
      
      * I reworked this entire section of setup-db.txt ...
      
      * The user still needs to give himself a real shell and password on
        boss, but I left that for the user to do explicitly. I also drop in
        a pointer to the shellonboss.txt. I might automate this part too at
        some point. Not sure yet.
      dd1b57bc
  12. 12 May, 2005 2 commits
    • Leigh B. Stoller's avatar
      Checkpoint the rest of my changes to support swapmod of both ElabInElab and · 6eff9de6
      Leigh B. Stoller authored
      Firewalled experiments (see tbsetup/elabinelab.in for the other stuff).
      
      * To support firewalled experiments, needed to add a new virt_firewalls
        table to split the existing firewalls table up, which included both
        virtual and physical stuff. There are the usual frontend changes and a
        few other things scattered around, including tmcd.c.
      
      * The firewall code in tbswap got some beefing up to support adding and
        deleting nodes from the its special control net vlan. Note that I have
        not made any progress on containment of deleted nodes, just as we do not
        do anything now for teardown (unless its paniced, in which case the
        experiment cannot be modified anyway).
      
      * ptopgen and assign_wrapper got some interesting modifications: Unlike
        regular swapmod, we cannot just tear down all the vlans since that would
        interrupt everything inside the inner elab. Instead, leave the vlans as
        is. The problem is that when assign runs, it can just as easily pick
        different interfaces on the same nodes, which would be a royal pain in
        the ass to deal with! So, ptopgen got a new option (-u) that assign
        wrapper uses to tell ptopgen that it should prune out unused interfaces
        from nodes that are already allocated to the experiment. This is, at
        best, as pathetically gross hack, but it makes sure that all the
        interfaces stay the same across swapmods.
      
      * The unrelated revision of elabinelab has a bunch of new code for adding
        and deleting nodes from the inner elab. Mostly it deals with dhcpd (inner
        and outer, waiting for nodes to reboot, etc). It also deals with updating
        the vlans table in the DB, pruning out any nodes (ports) that are deleted
        but for which there are still interfaces in existing vlans. Said ports
        are them moved back to the default vlan with calls to snmpit. Also under
        another revision a a couple of weeks ago are the web interface changes to
        support the newnode MFS inside an inner Emulab.
      
      * swapexp and endexp got some more checks for firewalled and paniced
        experiments, which were missing.
      6eff9de6
    • Leigh B. Stoller's avatar
      Add scalebar bassed on provided pixels_per_meter argument to applet. · 73e86a6e
      Leigh B. Stoller authored
      Also remove some more defunct double buffering code.
      73e86a6e
  13. 11 May, 2005 4 commits
    • Leigh B. Stoller's avatar
    • Leigh B. Stoller's avatar
      Look for experiments using robots and add links to the tracker and · a3fcacd3
      Leigh B. Stoller authored
      node selector applets.
      a3fcacd3
    • Leigh B. Stoller's avatar
      Add a "withwebcams" option to the tracker applet. When turned on, the · 179cf519
      Leigh B. Stoller authored
      mini images from the webcams (240x180) are displayed in the mechanical
      area in the lower right of the floormap. The frame rate is 2fps to
      avoid pummeling the node, as its all done with Java, including the
      jpeg conversion and display (I grabbed most of this code from my
      tools/webcamapplet that I wrote a while back).
      
      My first attempt at this performed really bad cause I was redrawing
      the entire display whenever a new frame came into any camera. Ack,
      this was chewing 98% of the CPU.
      
      So, I restructured things so that each camera is in its own JPanel and
      has its own paint callback. However, in order to have overlapped
      JPanels (since the base image is also a JPanel) I needed to shift to
      using the LayeredPane instead of the ContentPane of the applet. This
      meant creating a wrapper JPanel to hold the base image, and then
      combining everything together on the layered pane. The result is that
      the repainting system paints only what needs to be painted, and
      everything runs much much faster (about 15% CPU on my desktop).
      
      Also got rid of my inline double buffering; JPanels do that by default
      for you. I did not realize that at the time I wrote the applet cause I
      missed the tiny footnote in the Graphics2D tutorial that says Swing
      components do that for you!
      179cf519
    • Leigh B. Stoller's avatar
      Minor tweak, nothing important. · b10815d4
      Leigh B. Stoller authored
      b10815d4
  14. 06 May, 2005 1 commit
  15. 05 May, 2005 1 commit
  16. 27 Apr, 2005 1 commit
    • Leigh B. Stoller's avatar
      A set of changes to allow the newnode path (MFS and adding nodes) to · 94d97303
      Leigh B. Stoller authored
      work inside ElabInElab.
      
      The crux of this is to emulate what switchmac does when incorporating nodes
      into the testbed. Rather then using snmpit to ask the switches for MAC info,
      we can just ask outer emulab via the proxy to get that same info from the
      DB. Note, there are no changes to the newnode MFS; it will boot and happily
      report it after launching teachswitch, but those packets are harmless to the situation.
      
      Another wrinkle is that we need the outer emulab to tell us which
      interfaces are control and which are experimental, since inside there
      is no real way to determine that. I did this by overloading the final
      field in the return from switchmac, and using that to override the
      "role" setting that utils/newnode would normally choose on its own.
      
      There is another new routine in the XMLRPC server that is intended to
      be used for bypassing the newnode path. This is not hooked into
      anything yet, but the intent is that rather then using the web
      interface to "add" nodes, we just return everything needed to seed the
      new_nodes and new_interfaces table, and then run newnodes directly.
      94d97303
  17. 26 Apr, 2005 2 commits
  18. 22 Apr, 2005 2 commits
  19. 20 Apr, 2005 1 commit
  20. 12 Apr, 2005 1 commit
  21. 07 Apr, 2005 2 commits
  22. 06 Apr, 2005 1 commit
  23. 01 Apr, 2005 1 commit
  24. 31 Mar, 2005 2 commits
  25. 29 Mar, 2005 1 commit