1. 27 Mar, 2012 2 commits
  2. 09 Mar, 2012 1 commit
    • Mike Hibler's avatar
      Add a node-default pxe_boot_path to go along with node-type-default. · 99a462a8
      Mike Hibler authored
      As if things weren't hairy enough for the pxe_boot_path, we need a per-node
      default value. This should not be confused with the next_pxe_boot_path or
      pxe_boot_path fields in the nodes table, which is a per-node value but only
      for the lifetime of the current experiment.
      
      We need this new field specifically so that we can switch some, but not all,
      of the d710s over to the TPM-aware pxeboot.
      
      For the record, the select order for setting the filename field in
      dhcpd.conf is:
      
       1. nodes.next_pxe_boot_path for node
       2. nodes.pxe_boot_path for node
       3. "pxe_boot_path" node_attribute for node
       4. "pxe_boot_path" node_type_attribute for node type
       5. don't set (i.e., use the dhcpd.conf global default).
      99a462a8
  3. 19 Jan, 2012 1 commit
    • Leigh B Stoller's avatar
      Deprecate the use of jailip in the nodes table, for local dynamic · 1a52760a
      Leigh B Stoller authored
      virtual nodes. We now create an interfaces table entry so that we do
      not special code to find the control network interface. This entry is
      delated along with the node entries when the experiment is swapped
      out.
      
      Of course, we still have existing nodes with jailip entries, so not
      much code was removed, but this saves me from having to add more
      special cases for XEN elabinelab, and at some point we can remove the
      deprecated code.
      1a52760a
  4. 12 Jan, 2012 2 commits
  5. 28 Nov, 2011 1 commit
  6. 10 Nov, 2011 2 commits
  7. 26 Sep, 2011 2 commits
  8. 22 Sep, 2011 1 commit
  9. 20 Sep, 2011 2 commits
  10. 17 Aug, 2011 1 commit
  11. 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
  12. 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
  13. 10 Aug, 2011 1 commit
  14. 25 May, 2011 1 commit
  15. 16 May, 2011 1 commit
  16. 11 May, 2011 1 commit
  17. 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
  18. 06 Apr, 2011 1 commit
  19. 05 Apr, 2011 1 commit
  20. 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
  21. 18 Feb, 2011 1 commit
  22. 16 Feb, 2011 2 commits
  23. 10 Dec, 2010 1 commit
  24. 07 Dec, 2010 1 commit
  25. 04 Nov, 2010 1 commit
  26. 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
  27. 14 Oct, 2010 2 commits
  28. 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
  29. 03 Sep, 2010 1 commit
  30. 22 Jul, 2010 1 commit
  31. 19 Jul, 2010 2 commits
  32. 23 Jun, 2010 1 commit