1. 26 Sep, 2011 2 commits
  2. 22 Sep, 2011 1 commit
  3. 20 Sep, 2011 2 commits
  4. 17 Aug, 2011 1 commit
  5. 12 Aug, 2011 1 commit
    • Leigh B Stoller's avatar
      Lets make it easier to manage pre reservations (Mike, this was Rob's · 5c998ffc
      Leigh B Stoller authored
      idea).
      
      New script and table to manage node pre reservations. Lets just look
      at the script.
      
      To create a reservation:
      
          myboss> wap prereserve -t pc850 testbed 2
          Node reservation request for 2 nodes has been created.
      
      To see the reservation status for testbed
      
          myboss> wap prereserve -i testbed
          Project         Cnt (Cur)  Creator    When               Pri Types
          -------------------------------------------------------------
          testbed         1 (1)      stoller    2011-08-12 12:39:07 0   pc850
      
          which says 1 node is pending and 1 node has already been
          pre-reserved. 
      
      To clear the above reservation request (and optionally, clean
      reserved_pid from the nodes table).
      
          myboss> wap prereserve -c -r testbed
      
          The -r is optional, otherwise just the reservation request is
          cleared, and nodes continue to be pre-reserved to the project.
      
      To see a list of all reservation requests:
      
          myboss> wap prereserve -l
      
      
      So, when a node is released in nfree, we look at the reservation
      status for the node and any pending reservation requests.
      
      1. If the node has a reserved_pid and that request is still pending
         (still in the table), nothing is changed.
      
      2. If the node has a reserved_pid, but the request has been cleared
         from the pending table, then clear reserved_pid.
      
      3. If reserved_pid is null, and there are pending requests, then pick
         the highest priority, most recent dated, request, and set
         reserved_pid to that project.
      
      Options:
      
      * -n <pri> - is how you set a priority. Lowest is zero, choose a
        higher number if you want this reservation request to be considered
        before others. In a tie, look at the date of creation, and use the
        oldest.
      
      * -t <typelist> - a comma separated list of types you want to
        consider. Types are considered in order, but not in the fancy way
        you might imagine.
      5c998ffc
  6. 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
  7. 10 Aug, 2011 1 commit
  8. 25 May, 2011 1 commit
  9. 16 May, 2011 1 commit
  10. 11 May, 2011 1 commit
  11. 25 Apr, 2011 1 commit
    • David Johnson's avatar
      Split out a ResetNextOpMode method from OSSelect (which now calls it). · 5d54f373
      David Johnson authored
      This allows other things that don't need to change the OS, but *do* need
      to make sure that a mode transition gets setup if necessary, to setup that
      transition too.  Currently the only case that needs this is push-based
      reloads, when the reload has been setup (and then not performed because it
      was optimized away).
      5d54f373
  12. 06 Apr, 2011 1 commit
  13. 05 Apr, 2011 1 commit
  14. 10 Mar, 2011 1 commit
    • Mike Hibler's avatar
      (Hopefully) temporary hack to detect null chars in node_ids in the nodes table. · 84ea58dc
      Mike Hibler authored
      This is completely reactive and based on no reasoning. A common case of the
      somebodys-been-messin-with-my-memory bug, is that we start seeing node_ids
      with null chars at the end. Here we will send a stack trace to testbed-ops
      if this happens (and we strip off the null). I am hoping to narrow down
      where this happens.
      84ea58dc
  15. 18 Feb, 2011 1 commit
  16. 16 Feb, 2011 2 commits
  17. 10 Dec, 2010 1 commit
  18. 07 Dec, 2010 1 commit
  19. 04 Nov, 2010 1 commit
  20. 15 Oct, 2010 1 commit
    • Mike Hibler's avatar
      Add autoconf variable to control use of SelfLoader. · da55641a
      Mike Hibler authored
      This is a fer-now hack.  Perl 5.10 has issues with bogus taint check
      triggers that appear quite often when using the SelfLoader.  Now if you put:
          SELFLOADER_DATA=""
      In your defs-* file, it will disable the uses that cause problems.  Yes,
      the configure script should figure out if this is needed for you, but...
      another time.
      da55641a
  21. 14 Oct, 2010 2 commits
  22. 11 Oct, 2010 1 commit
    • Leigh B Stoller's avatar
      Work on an optimization to the perl code. Maybe you have noticed, but · 92f83e48
      Leigh B Stoller authored
      starting any one of our scripts can take a second or two. That time is
      spent including and compiling 10000s of thousands of lines of perl
      code, both from our libraries and from the perl libraries.
      
      Mostly this is just a maintenance thing; we just never thought about
      it much and we have a lot more code these days.
      
      So I have done two things.
      
      1) I have used SelfLoader() on some of our biggest perl modules.
         SelfLoader delays compilation until code is used. This is not as
         good as AutoLoader() though, and so I did it with just a few 
         modules (the biggest ones).
      
      2) Mostly I reorganized things:
      
        a) Split libdb into an EmulabConstants module and all the rest of
           the code, which is slowly getting phased out.
      
        b) Move little things around to avoid including libdb or Experiment
           (the biggest files).
      
        c) Change "use foo" in many places to a "require foo" in the
           function that actually uses that module. This was really a big
           win cause we have dozens of cases where we would include a
           module, but use it in only one place and typically not all.
      
      Most things are now starting up in 1/3 the time. I am hoping this will
      help to reduce the load spiking we see on boss, and also help with the
      upcoming Geni tutorial (which kill boss last time).
      92f83e48
  23. 03 Sep, 2010 1 commit
  24. 22 Jul, 2010 1 commit
  25. 19 Jul, 2010 2 commits
  26. 23 Jun, 2010 1 commit
  27. 12 May, 2010 1 commit
  28. 10 May, 2010 1 commit
  29. 13 Apr, 2010 1 commit
  30. 25 Mar, 2010 1 commit
  31. 23 Feb, 2010 1 commit
  32. 23 Dec, 2009 1 commit
  33. 22 Dec, 2009 3 commits