1. 07 Apr, 2004 1 commit
    • Leigh B. Stoller's avatar
      Initial DB support for wireless nodes. Added a "protocol" text field and · 90a6e82b
      Leigh B. Stoller authored
      an "is_accesspoint" boolean to virt_lans. The former defaults to
      "ethernet" but can be set to anything (80211a, 80211b, etc) in the NS
      file. The is_accesspoint is temporary, and simply allows you to set
      which node is the accesspoint in the NS file. This slot will probably
      move to another table at some point.
      
      Added interface_capabilities table, which is intended to list the
      capabilities and the default values, for interfaces listed in the
      interface_types table. This allows a more flexible description of
      interfaces, expecially wireless devices. Initially, I have seeded the
      table with just the default protocol (ethernet) and the speed. For
      example, the fxp:
      
      	fxp              | protocols         | ethernet |
      	fxp              | ethernet_defspeed | 100000   |
      
      As you can see, protocols is plural, and is intended to be a comma
      separated list. So, for the atheros wireless card:
      
      	ath              | protocols         | 80211a,80211b,80211g |
      	ath              | 80211a_defspeed   | 54000                |
      	ath              | 80211b_defspeed   | 11000                |
      	ath              | 80211g_defspeed   | 54000                |
      
      I gave up on using the entire row as a primary key; this is just too
      painful from perl/php/python where hashes are the most popular data
      structure, and duplicate columns get overwritten.
      90a6e82b
  2. 31 Mar, 2004 1 commit
  3. 20 Mar, 2004 1 commit
  4. 19 Mar, 2004 1 commit
  5. 16 Mar, 2004 1 commit
  6. 15 Mar, 2004 1 commit
  7. 09 Mar, 2004 1 commit
    • Leigh B. Stoller's avatar
      Clean up of the web to batchexp interface: · b6a9b9c2
      Leigh B. Stoller authored
      * Add proper check_slot() calls to all of the user input that is going into
        the DB (already had taint checking), since batchexp is now available for
        interactive use from ops.
      
      * Remove separate DB insertions of noswap/noidleswap reasons from web
        script, and pass on the command line from web to batchexp. Now inserted
        in the backend script so that they can be provided on the command line
        when batchexp is used interactively.
      
      * Change defaults in backend script; experiments now default to swappable
        and idleswap; previously defaulted to not swappable and no idleswap.
      
      * Remove [-s] (swappable) and add [-S <reason>] option. -S sets experiment to
        not swappable, with supplied reason (text string).
      
      * Add [-L <reason>] option. -L sets experiment to no idleswap, with
        supplied reason (text string).
      
      * Add several missing table_regex entries for experiments table.
      b6a9b9c2
  8. 27 Feb, 2004 1 commit
  9. 17 Feb, 2004 1 commit
  10. 13 Feb, 2004 1 commit
  11. 11 Feb, 2004 1 commit
  12. 09 Feb, 2004 1 commit
  13. 02 Feb, 2004 1 commit
  14. 28 Jan, 2004 3 commits
  15. 23 Jan, 2004 3 commits
  16. 15 Jan, 2004 1 commit
    • Mac Newbold's avatar
      libdb changes: · 78ad260c
      Mac Newbold authored
      - add functions to recursively dump hashes and arrays into a string
        suitable for printing as debugging output (great for data structures)
      
      - add three new trigger strings
      
      - add 'use strict', do corresponding cleanup
      
      stated changes:
      
      - move special-cased stuff in handleEvent for PXEBOOTING and BOOTING into
        triggers (PXEBOOTING, BOOTING, and CHECKGENISUP)
      
      - clarify (via comments) the existing kinds of triggers and which ones run
        when, and add a new kind (global "any-mode" triggers). We already had
        per-node mode-specific, per-node any-mode, and global mode-specific
        triggers. Now you can have a trigger that is good for any mode in a
        given state, that can be overridden on a mode-specific basis. This is
        great for PXEBOOTING, BOOTING, and ISUP, since they each have a trigger
        list that should be run regardless of what mode you're in. Now they only
        require 3 entries instead of 3*N that have to be maintained per mode.
      
           # A note about triggers:
           #
           # "per-node" triggers only affect their specific node in a
           # particular mode/state, and are run first of all. "global"
           # triggers are triggers for a given mode/state that affect all
           # nodes, and are run after any per-node triggers. "Any-mode"
           # triggers are tied to a state, and occur in that state in any
           # mode. The any-mode triggers are over-ridden by global triggers,
           # and if an "Any-mode" trigger for state XYZ exists as well as a
           # global trigger for mode FOOBAR state XYZ, then when I arrive in
           # XYZ any per-node triggers will be run. Then, if I'm in mode
           # FOOBAR, only the global trigger will run. If I'm in any other
           # mode, only the any-mode trigger will run.
      
           # (our "*" is stored as $TBANYMODE)
           # Per-node triggers have a specific node_id
           # Global triggers have "*" as the node_id
           # Any-mode triggers have "*" as the mode, and can be global or per-node
      
        The updated table looks like this in the accompanying change to
        database-fill.sql:
      
      +---------+----------+------------+-----------------------+
      | node_id | op_mode  | state      | trigger               |
      +---------+----------+------------+-----------------------+
      | *       | *        | BOOTING    | BOOTING, CHECKGENISUP |
      | *       | *        | ISUP       | RESET                 |
      | *       | *        | PXEBOOTING | PXEBOOT               |
      | *       | RELOAD   | RELOADDONE | RESET, RELOADDONE     |
      | *       | ALWAYSUP | SHUTDOWN   | ISUP                  |
      +---------+----------+------------+-----------------------+
      
      - I also cleaned up the functions that add, get, and delete triggers.
        Before, the get function didn't include global triggers. Now it does,
        and has an option to just get the per-node triggers. Add and delete are
        still just per-node, of course.
      
      - Also found and fixed some little bugs while I was in there. (global
        triggers not taking a list,
      
      These changes are me getting ready to re-add all the changes I made months
      ago in order to do a before-and-after experiment for my thesis. Between
      now and the end of next week I'll be working on taking before numbers,
      patching stated with the changes, and getting after numbers.
      
      The problems I'm trying to replicate are the problems and slowdowns we
      used to get when os_{load,setup} would reboot a node, thinking it had
      timed out, when it really didn't know whether it was making progress or
      not. The fix includes making os_{load,setup} depend on stated to watch for
      progress and timeouts, and do any appropriate retries. Part of that is the
      StateWait stuff, that lets programs watch for events easily, and the
      node_reboot-with-events stuff that puts stated in control of nodes as they
      reboot.
      78ad260c
  17. 14 Jan, 2004 1 commit
  18. 12 Jan, 2004 2 commits
  19. 08 Jan, 2004 1 commit
  20. 29 Dec, 2003 2 commits
  21. 25 Dec, 2003 1 commit
  22. 22 Dec, 2003 3 commits
  23. 21 Dec, 2003 1 commit
  24. 17 Dec, 2003 2 commits
  25. 08 Dec, 2003 1 commit
  26. 07 Dec, 2003 1 commit
    • Shashi Guruprasad's avatar
      Minimal NSE related changes on the mainbed so that I can work · 425b4e47
      Shashi Guruprasad authored
      in the dev tree. I'm tired of problems on the mini that wastes
      my time.
      
      Changes include 2 new tmcd commands: tmcc routelist returns
      the routes for all the vnodes hosted on a pnode. tmcc role
      returns the role of a reserved node, like 'virthost' or
      'simhost.  tmcc ifconfig now reports an RTABID field which
      is calculated in assign wrapper. All the new changes
      in assign wrapper will be checked in after I finish testing.
      
      All the DB changes are in: simnode_capacity in node_types, rtabid in
      interfaces and veth_interfaces. New NSE event_objtype and NSEEVENT
      event_eventtype. Changed the erole field in the reserved table
      to have 'simhost' instead of 'simnode'. Changed the correspoding
      libdb subroutines.
      425b4e47
  27. 02 Dec, 2003 1 commit
  28. 19 Nov, 2003 1 commit
  29. 17 Nov, 2003 1 commit
    • Leigh B. Stoller's avatar
      Merge the two state machines (batchstate and state) into a single · 2025e0bd
      Leigh B. Stoller authored
      state machine (state). All of the stuff that was previously handled by
      using batchstate is now embedded into the one state machine. Of
      course, these mostly overlapped, so its not that much of a change,
      except that we also redid the machine, adding more states (for
      example, modify phases are now explicit. To get a picture of the
      actual state machine, on boss:
      
      		stategraph -o newstates EXPTSTATE
      		gv newstates.ps
      
      Things to note:
      
      * The "batchstate" slot of the experiments table is now used solely to
        provide a lock for batch daemon. A secondary change will be to
        change the slot name to something more appropriate, but it can
        happen anytime after this new stuff is installed.
      
      * I have left expt_locked for now, but another later change will be to remove
        expt_locked, and change it to active_busy or some such new state name in
        the state machine. I have removed most uses of expt_locked, except those
        that were necessary until there is a new state to replace it.
      
      * These new changes are an implementation of the new state machine,
        but I have not done anything fancy. Most of the code is the same as
        it was before.
      
      * I suspect that there are races with the batch daemon now, but they
        are going to be rare, and the end result is probably that a
        cancelation is delayed a little bit.
      2025e0bd
  30. 11 Nov, 2003 1 commit
  31. 06 Nov, 2003 1 commit