1. 09 Nov, 2010 2 commits
  2. 27 Oct, 2010 1 commit
  3. 25 Oct, 2010 2 commits
    • Leigh B Stoller's avatar
      Minor bug fix. · ccf0eb6a
      Leigh B Stoller authored
      ccf0eb6a
    • Leigh B Stoller's avatar
      New module, called Emulab Features. The basic usage (see tbswap) is: · 1d430992
      Leigh B Stoller authored
      use EmulabFeatures;
      
      if (EmulabFeatures->FeatureEnabled("NewMapper", $user, $group, $experiment)) {
         # Do something
      }
      else {
         # Do something else.
      }
      
      where $user, $group, and $experiment is the current Emulab user, group, and
      experiment the script is operating as. Any of them can be undef. Note that
      features can easily be globally enabled or disabled (bypassing user/group
      check). See below.
      
      There are two scripts to deal with features. The easy one is the script to
      grant (or revoke) feature usage to a particular user or group or experiment:
      
      boss> wap grantfeature -u stoller NewMapper
      boss> wap grantfeature -p geni NewMapper
      boss> wap grantfeature -e geni,myexp NewMapper
      
      Add -r to revoke the feature.
      
      The other script is for managing features. To create a new feature:
      
      boss> wap emulabfeature create NewFeature 'A pithy description'
      
      which adds the feature to the emulab_features DB table. Use "delete"
      to remove a feature from the DB.
      
      You can globally enable and disable features for all users/groups (the
      user/group checks are bypassed). Global disable overrides global
      enable. There are actually two different flags. Lots of rope, I mean
      flexibility.
      
      boss> wap emulabfeature enable NewFeature 1
      boss> wap emulabfeature enable NewFeature 0
      
      boss> wap emulabfeature disable NewFeature 1
      boss> wap emulabfeature disable NewFeature 0
      
      To display a list of all features and associated settings:
      
      boss> wap emulabfeature list
      
      To show the details (including the users and groups) of a specific
      feature:
      
      boss> wap emulabfeature show NewFeature
      
      Oh, if a test is made in the code for a feature, and that feature is
      not in the emulab_features table (as might be the case on other
      Emulab's), the feature is "disabled".
      1d430992
  4. 20 Oct, 2010 1 commit
  5. 18 Oct, 2010 1 commit
  6. 15 Oct, 2010 2 commits
    • Mike Hibler's avatar
      Add missing require. · 05da315d
      Mike Hibler authored
      05da315d
    • 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
  7. 14 Oct, 2010 2 commits
  8. 13 Oct, 2010 3 commits
  9. 12 Oct, 2010 5 commits
  10. 11 Oct, 2010 3 commits
    • Leigh B Stoller's avatar
      Bug fix to prevent max nodes policies from leaking into the node · 134c6e0d
      Leigh B Stoller authored
      permission table.
      134c6e0d
    • 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
    • Leigh B Stoller's avatar
      A handy utility for tracing module inclusion and the amount of time it · d8230a46
      Leigh B Stoller authored
      takes to include each module. Run like:
      
      boss> perl -I /usr/testbed/devel/stoller/lib -MTraceUse foo.pl
      d8230a46
  11. 29 Sep, 2010 2 commits
  12. 22 Sep, 2010 1 commit
  13. 21 Sep, 2010 1 commit
  14. 03 Sep, 2010 1 commit
  15. 04 Aug, 2010 2 commits
  16. 22 Jul, 2010 5 commits
  17. 19 Jul, 2010 2 commits
  18. 14 Jul, 2010 1 commit
    • Leigh B Stoller's avatar
      Add disk_image tag when an OSID is specified for a ProtoGeni physical · b86b54b0
      Leigh B Stoller authored
      node. Currently this is rewritten to a disk_image tag in the
      emulab-ops project of the CM the node is allocated from. This works
      nicely for STD images since all Emulabs tend to have the same STD
      images, but will not work for localized images. All of this image
      stuff in cooked mode needs a bunch of work.
      
      Also add support for talking to non elvin-compat nodes on other CMs by
      having the event clients contact another pubsubd instance on the home
      boss, which will gateway the events back and forth, munging them as
      needed.
      b86b54b0
  19. 30 Jun, 2010 1 commit
  20. 29 Jun, 2010 2 commits