1. 30 Aug, 2011 1 commit
  2. 23 Aug, 2011 1 commit
  3. 17 Aug, 2011 1 commit
  4. 11 Aug, 2011 1 commit
    • Mike Hibler's avatar
      Initial support for loading Windows7 .wim images via WinPE/ImageX. · ac711ea5
      Mike Hibler authored
      1. Support for "one-shot" PXE booting ala the one-shot osid. Switches to
         pxelinux to boot WinPE and then switch back after done. Painful now
         because we have to HUP dhcpd everytime we change the PXE path, but we
         may be able to fix this in the future by going all-pxelinux-all-the-time.
      
      2. Added pxe_select, analogous to os_select, for changing the pxe_boot_path
         including the one time path.
      
      3. Added the WIMRELOAD state machine to shepherd a node through the process.
         Still has some rough edges and may need refining.
      ac711ea5
  5. 28 Jul, 2011 1 commit
  6. 13 Jul, 2011 1 commit
  7. 27 Jun, 2011 1 commit
  8. 22 Jun, 2011 1 commit
    • Mike Hibler's avatar
      When forcing a transition to a new opMode, look for a valid next state. · 2b3fd82a
      Mike Hibler authored
      Previously, a forced opModeTransition would just remain in the same state
      after moving to the new op_mode rather than looking for a valid
      oldmode/oldstate => newmode/newstate transition in the mode_transitions
      table. This should only effect the transition from SECUREBOOT/TPMSIGNOFF,
      since all other uses should not find a valid newstate and should remain in
      the old state as before.
      2b3fd82a
  9. 20 Jun, 2011 1 commit
    • Mike Hibler's avatar
      If stated were a space probe it would have crashed into Mars... · c88f89f3
      Mike Hibler authored
      Minor units conversion problem here. IO::Poll() takes seconds as it argument,
      not milliseconds as we were doing (by multiplying the arg by 1000 before
      calling).
      
      Unfortunately, this is not the Big One (memory corruption) that we have been
      chasing for so long. Sigh...
      (cherry picked from commit 1ee85494)
      c88f89f3
  10. 13 Jun, 2011 1 commit
    • Mike Hibler's avatar
      If stated were a space probe it would have crashed into Mars... · 1ee85494
      Mike Hibler authored
      Minor units conversion problem here. IO::Poll() takes seconds as it argument,
      not milliseconds as we were doing (by multiplying the arg by 1000 before
      calling).
      
      Unfortunately, this is not the Big One (memory corruption) that we have been
      chasing for so long. Sigh...
      1ee85494
  11. 02 Jun, 2011 1 commit
  12. 11 May, 2011 1 commit
  13. 10 May, 2011 1 commit
    • Leigh B Stoller's avatar
      Gack, must call "select STDOUT" after the reopen operation, since we · 84a6e9fe
      Leigh B Stoller authored
      used "select STDERR" to change the line buffering. The result was that
      after the log roll, the child was printing to STDERR instead of
      STDOUT, and so the parent never saw any new events.
      
      Note that USR1 (re-exec binary) does not work since exec bypasses the
      END block, and things get messed up. Not fixed yet.
      84a6e9fe
  14. 13 Mar, 2011 1 commit
  15. 25 Feb, 2011 1 commit
    • Mike Hibler's avatar
      Fix some nagging bugs. · 85d8986c
      Mike Hibler authored
      We were not processing the timeout queue because we got stuck forever in
      the loop that processed events. Now before looping back to sysread, make
      sure there is something to read so we don't block.
      
      When we startup or re-read the DB state, ignore really old state timeout
      values; e.g., for nodes that have been dead for ages but happen to be in
      a state such as SHUTDOWN that has a timeout.
      
      In the main loop, handle any re-read of the DB state before testing the
      queue length to see if we can do a blocking poll. Re-reading the state may
      add timeouts to the queue.
      85d8986c
  16. 24 Feb, 2011 1 commit
  17. 04 Feb, 2011 1 commit
  18. 02 Feb, 2011 2 commits
  19. 01 Feb, 2011 1 commit
  20. 25 Jan, 2011 1 commit
  21. 24 Jan, 2011 1 commit
  22. 17 Nov, 2010 2 commits
  23. 12 Nov, 2010 1 commit
  24. 10 Nov, 2010 1 commit
  25. 09 Nov, 2010 2 commits
  26. 29 Sep, 2010 2 commits
    • Mike Hibler's avatar
      5ae92284
    • Mike Hibler's avatar
      Handle a common failure on the node reload path. · 4dc57d48
      Mike Hibler authored
      Under load, nodes that have just entered reloading and have just rebooted
      might fail to get bootinfo.  The default behavior in this case is for the
      node to boot from disk (dubious, but that is the topic for another day).
      This causes the node to fall off the RELOAD path, winding up in either
      TBFAILED or ISUP.  Worse, if the node makes it to ISUP, its reload state
      is cleared and even if the reload_daemon reboots the node, it will still
      not go through the reloading process.
      
      The result is a bunch of nodes left in reloading.  Now if a node makes an
      invalid transition to TBFAILED or ISUP while in the RELOAD state machine,
      it fires the new REBOOT trigger which does...well, you figure it out.
      Note that in the ISUP case, this trigger overrides the default that would
      otherwise clear the reload state--so reboot is sufficient to get the machine
      back on the RELOAD track.
      4dc57d48
  27. 28 May, 2010 1 commit
  28. 26 May, 2010 1 commit
  29. 25 May, 2010 1 commit
  30. 20 May, 2010 2 commits
    • Robert P Ricci's avatar
      Add a new timeout action; STATE · 159552a3
      Robert P Ricci authored
      Allows the state_timeouts table to contain a new type of action
      to take on timeout: STATE:newstate . This will force stated to
      transition the node to newstate, and take any trigger actions
      associated with that state.
      
      We will use this to make timeouts in the secure reload path
      force the node into the SECVIOLATION state.
      
      Not yet tested.
      159552a3
    • Robert P Ricci's avatar
      Add two new triggers for secure boot · 9f5a312f
      Robert P Ricci authored
      Add 'POWEROFF' and 'EMAILNOTIFY' state triggers - the idea is that
      these will be used as triggers when a node enters the 'SECVIOLATION'
      state in the secure reload path, to turn off the node and send
      testbed-ops mail about it.
      
      Not yet tested.
      9f5a312f
  31. 05 Jan, 2010 2 commits
  32. 04 Aug, 2009 1 commit
    • Kevin Atkinson's avatar
      Implement frontend and middleend support for loading multiple images · e7871305
      Kevin Atkinson authored
      at once with Frisbee (excludes the actual MFS changes).
      
      Os_load now takes take a list of comma serrated image names for the
      "-i" and "-m" options.  The default OS is the OS for the last image
      specified in the list.  I also changed the "-p" option of osload to
      search both the project specified and emulab-ops for the image rather
      than just the project specified in order to simplify specifying
      multiple images (and because I personally found that behavior annoying
      when using osload).
      
      I modified the current_reloads table to be able to specify more than one
      image for a node by adding an "idx" column which controls the order of
      the reloads.  I also added a "prepare" column to the table (explained
      below)
      
      I modified tmcd to basically loop over the entries in the table and
      create a multiline LOADINFO responsive, and modified rc.frisbee to
      handle the multiline response and load each image in turn.
      
      I modified os_load to take a new option "-P" which will tell rc.frisbee
      to zap the superblocks even if a whole disk image is not specified.
      To do this I set the prepare entry for the first image in the
      current_reloads table to true.  Tmcd than passes this into to
      rc.frisbee in the LOADINFO line.  When rc.frisbee sees this it will
      make sure to zap the superblock before loading that image.
      
      To support having multiple images as the default, "default_imageid"
      can now be a comma separated list.  I implemented a hack to be able to
      set multiple imageids via editnodetype.php3.  Basically the form
      splits default_imageid into default_imageid_0, default_imageid_1, etc
      and than adds an empty default_imageid_# slot to allow adding an
      imageid.  Multiple images can be added by adding one image, than
      submitting the form, and than adding another into the empty slot.  Not
      the best, but I don't thing this will be a very common operation.
      When the form is submitted it will than combine all default_imageid_#
      into a comma separated list ignoring any that are deleted or set to
      "No ImageID" (ie 0).
      
      Everything will work fine with old MFSs as long as only one image is
      loaded.  If multiple images are loaded with an old MFS, an email will
      be sent to testbed-ops.  This works by having tmcd detect old MFS's by
      using the version number and setting the state to RELOADOLDMFS.  Stated
      will pick up on the and send the email to testbed-ops via a trigger.
      e7871305
  33. 19 Apr, 2007 1 commit
  34. 06 Mar, 2007 1 commit