1. 11 Oct, 2010 3 commits
    • Leigh Stoller's avatar
      Work on an optimization to the perl code. Maybe you have noticed, but · 92f83e48
      Leigh 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).
    • Jonathon Duerig's avatar
      Bugfix: Fix typo to ClemsonGENI clause · 40a1c96e
      Jonathon Duerig authored
    • Jonathon Duerig's avatar
  2. 27 Sep, 2010 1 commit
  3. 20 Sep, 2010 1 commit
  4. 19 Jul, 2010 1 commit
  5. 16 Jul, 2010 1 commit
  6. 29 Jun, 2010 2 commits
  7. 25 Jun, 2010 1 commit
  8. 10 Jun, 2010 1 commit
  9. 08 Jun, 2010 1 commit
  10. 14 Apr, 2010 2 commits
    • Mike Hibler's avatar
      Changes for speeding up elabinelab server setup. · 6feda7d3
      Mike Hibler authored
      Boss/ops/fs: reboot them together after setup rather than serially.
      Nodes: leave them in PXEWAIT throughout the setup, until after boss has
      been rebooted.  At that point we send them the new bootinfo RESTART command
      telling pxeboot to re-DHCP and use the new info obtained (next-server) to
      contact a potentially new boss node.  This is a quick way to switch a node
      in PXEWAIT from talking to the outer boss to talking to the inner one.
      A significant number of rinky-dink changes were needed to do this, primarily
      adding a new state, PXELIMBO, where nodes can be sent to sit until they are
      restarted.  It turns out, just putting them in an existing state such as
      PXEWAKEUP or SHUTDOWN wouldn't work, as they tend to timeout or otherwise
    • Leigh Stoller's avatar
      Fix syntax error. · a3182f39
      Leigh Stoller authored
  11. 08 Apr, 2010 1 commit
  12. 19 Mar, 2010 1 commit
  13. 03 Dec, 2009 1 commit
  14. 11 Nov, 2009 1 commit
  15. 10 Nov, 2009 1 commit
  16. 24 Sep, 2009 1 commit
  17. 28 Aug, 2009 1 commit
  18. 24 Aug, 2009 1 commit
  19. 07 Aug, 2009 1 commit
  20. 27 Jul, 2009 1 commit
  21. 23 Jul, 2009 3 commits
  22. 15 Jun, 2009 1 commit
  23. 11 Jun, 2009 1 commit
  24. 23 Jan, 2009 1 commit
  25. 16 Jan, 2009 1 commit
  26. 13 Jan, 2009 1 commit
  27. 08 Jan, 2009 1 commit
  28. 09 Jul, 2008 1 commit
    • Leigh Stoller's avatar
      My attempt to improve swapmod ... · 3593d9c6
      Leigh Stoller authored
      Previously, any error in assign wrapper would cause the experiment to
      swap out because the "DB had been modified" ... well I have isolated
      all of the changes that are made, and errors in assign_wrapper proper
      no longer do that. tbswap now restores the experiment back the way it
      was. Not that errors after assign_wrapper (like in os_setup) are still
      a problem.
      In addition, rather then kill off all of the vlans, leave them in
      place and then do a comparison after assign wrapper, removing obsolete
      and modified vlans only. I have made use of the obsolete vlans table
      for this by having snmpit track its changes in that table. There is a
      bunch of new code in Lan.pm for doing the comparisons.
  29. 03 Jun, 2008 1 commit
  30. 22 Feb, 2008 1 commit
  31. 06 Feb, 2008 1 commit
    • David Johnson's avatar
      Add support for including nodes from multiple PLCs in experiments. Right · c44c47c9
      David Johnson authored
      now, this is keyed off nodetype.  Lots of hardcoded constants and config
      stuff moved to attributes in the db.  You can now set per-PLC and
      per-slice attributes, so you can (for instance) use different auth info
      whenever you want.  Experiments can use preexisting slices if somebody
      sets up the db before swapin.  Also, we no longer have to rely on
      slices.xml to sync up nodes/sites with PLC... can use xmlrpc instead.
      Lots of code cleanup, improved some abstractions, etc.
  32. 25 Jan, 2008 1 commit
  33. 02 Aug, 2007 1 commit
  34. 15 May, 2007 1 commit
    • Leigh Stoller's avatar
      Checkpoint changes that have been discussed in the last few weeks: · c4f53202
      Leigh Stoller authored
      * Records are now "help open" when a run is stopped. When the next run
        is started, a check is made to see if the files
        (/project/$pid/exp/$eid) have changed, and if so a new version of the
        archive is committed before the next run is started.
      * Change the way swapmod is handled within an instance. A new option
        on the ShowExp page called Modify Resources. The intent is to allow
        an instance to be modified without having to start and stop runs,
        which tends to clutter things up, according to our user base. So, if
        you are within a run, that run is reset (reused) after the swapmod is
        finished. You can do this as many times as you like. If you are
        between runs (last operation was a stoprun), do the swapmod and then
        "speculatively" start a new run. Subsequent modifies reuse the that
        run again, as above.
        I think this is what Kevin was after ... there are some UI issues
        that may need to be resolved, will wait to hear what people have to
      * Revising a record is now supported. Export, change in place, and
        then use the Revise link on the ShowRun page. Currently this has to
        happen from the export directory on ops, but eventually allow an
        upload (to correspond to downloaded exports)
      * Check to see if export already exists, and give warning. Added a
        checkbox that allows user to overwrite the export.
      * A bunch of minor UI changes to the various template pages.