• Leigh B. Stoller's avatar
    A wide ranging set of event system changes: · 0318cc22
    Leigh B. Stoller authored
    assign_wrapper.in: Hack in a change that ensures a delay node is
    created for any link on which an event is posted (up,down,modify),
    no matter what its initial parameters are. ie: If a link is created
    with no delay, but there is an event that adds a delay later, then we
    must drop in a delay node. Same for up/down on a link. We do this in
    the delay node. I am reasonably confident that this change is fine for
    duplex links, but I am less sure of the effect on lans!
    eventsys_control.in: Checkpoint latest changes. Add "replay" option,
    which right now just stops and starts the event scheduler so that it
    reloads the entire event list. Add check for existing experiment, and
    that the experiment is either active or swapping (do not want to start
    a scheduler for a swapped out experiment!). Add check to see if there
    are any events, and skip startup if there are not events in the DB.
    Lastly, get very serious about preventing more than one scheduler from
    being started, either by accident or intentionally. My protocol is to
    lock the table, grab and set the pid to -pid, test the pid for a
    positive value, and if positive, send the scheduler a kill(TERM) so
    that it can cleanup, clear the pid to zero in the DB, and exit. This
    approach ensures that we do not try to send a kill to a pid that is no
    longer active or owned by the user (this last part is not really
    necessary cause of how pids are reused, but it was easy to add so why
    exports_setup.in: Trivial change to make it easier to turn this on
    temporarily in devel trees.
    named_setup.in: Ditto.
    node_reboot.in: Add call to TBdbfork() in child cause of apparent DB
    connection problems across forks. In the child, set the eventstatus
    for the node to REBOOT if successful (not this event status stuff is
    temporary, will be recast in next set of revisions).
    GNUmakefile:  Add new controlling program, eventsys_control.
    power.in:     Ditto previous comment about REBOOT.
    os_setup.in:  Non event system cleanups.
    tbend.in:     Add DB cleanup of the new virt_trafgens and eventlist tables.
    tbprerun.in:  Ditto.
    tbreport.in:  Print out the event list in a pretty print format.
    tbswapin.in:  Add call to start the event system. Also a big fix; move
                  the named script up above the os_setup so that the named
                  tables have been updated by the time the first node
                  reboots. I noticed that nodes were failing on gethostbyname().
    tbswapout.in: Add call to stop the event system.