1. 06 Mar, 2019 2 commits
  2. 28 Nov, 2018 1 commit
  3. 01 Oct, 2018 1 commit
    • Leigh Stoller's avatar
      More work on the aggregate monitoring. · 9f3205c9
      Leigh Stoller authored
      1. Split the resource stuff (where we ask for an advertisement and
         process it) into a separate script, since that takes a long time to
         cycle through cause of the size of the ads from the big clusters.
      
      2. On the monitor, distinguish offline (nologins) from actually being
         down.
      
      3. Add a table to store changes in status so we can see over time how
         much time the aggregates are usable.
      9f3205c9
  4. 21 Sep, 2018 1 commit
  5. 08 Aug, 2018 1 commit
  6. 04 Dec, 2017 1 commit
    • Leigh Stoller's avatar
      Extension policy changes: · bd7d9d05
      Leigh Stoller authored
      * New tables to store policies for users and projects/groups. At the
        moment, there is only one policy (with associated reason); disabled.
        This allows us to mark projects/groups/users with enable/disable
        flags. Note that policies are applied consecutively, so you can
        disable extensions for a project, but enable them for a user in that
        project.
      
      * Apply extensions when experiments are created, send mail to the audit
        log when policies cause extensions to be disabled.
      
      * New driver script (manage_extensions) to change the policy tables.
      bd7d9d05
  7. 24 Apr, 2017 2 commits
  8. 17 Apr, 2017 1 commit
    • Leigh Stoller's avatar
      rspecs are so passe ... · 7c38809d
      Leigh Stoller authored
      Redo the rspectogenilib converter with the goal of supporting both
      translation *and* regression testing. A new library is responsible for
      taking the output of libXML and creating a data structure representing
      the rspec. While this is being done, we look for any constructs or
      attributes we cannot handle with geni-lib and report that as an error;
      we are not going to convert an rspec unless we can do it correctly. and
      completely.
      
      Regression testing is done with another part of this library, that knows
      how to compare each element of two rspecs. Basically start at the root
      and compare all the way down, failing if the two "parses" of the XML are
      not equal at any level.
      
      rspectogenilib now has an option that does regression testing by running
      the new geni-lib and comparing the resulting rspec against the original.
      
      On the UI side, there is a new button on existing rspec based
      profiles (currently only for admin and studs) called "Convert to
      geni-lib" that runs the converter to convert the profile to geni-lib.
      The user does not have to accept the new script of course.
      
      However, a converted profile is marked in the database, and the user can
      still use Jacks on it, we just run rspectogenilib geni-lib again on the
      new rspec. If the user edits the geni-lib, we switch back to normal
      geni-lib (clear the flag) when the new version is saved, and Jacks is
      once again read-only. This is explained in the UI, and is one of the
      things people need to give comment on.
      
      There is also a mode on the Create Profile page for converting new rspec
      based profiles to geni-lib, but that is fully turned off for now, we can
      get to that later.
      7c38809d
  9. 20 Mar, 2017 1 commit
    • Leigh Stoller's avatar
      Support for push webhooks for repo-based profiles: · 10e12b53
      Leigh Stoller authored
      We are running another apache server on boss, on port 51369, which
      invokes a backend perl script that maps the URL path argument to the
      profile, and then calls out to manage_profile to pull from the
      repository and update the profile to reflect the new HEAD branch.
      Using mod_rewrite in the apache config to restrict URLs to exactly
      the one URL that is accepted, modulo the value of the secret token.
      
      I had to refactor a bunch of code in manage_profile to make it easier to
      add a new entrypoint for modification from a git repo. This needed to be
      done for a long time, I had never cleaned up the original profile
      creation code.
      
      On the edit profile web page, there is a new row in the Repository panel
      providing the Push URL, and an explanatory help modal.
      
      There is a new slow polling timer that looks for a change to the repo
      hash and causes the web page to update in place from the repo, as when a
      push hook is invoked and changes the repo.
      10e12b53
  10. 01 Mar, 2017 1 commit
  11. 28 Dec, 2016 1 commit
  12. 12 Nov, 2016 1 commit
    • Leigh Stoller's avatar
      Bring the cluster monitor "inhouse", rather then depending on the jfed · d7c4230e
      Leigh Stoller authored
      monitoring system.
      
      New portal_monitor daemon does a GetVersion/ListResources call at each
      of the clusters every five minutes, and updates the new table in the
      DB called apt_aggregate_status. We calculate free/inuse counts for
      physical nodes and a free count for VMs. Failure to contact the
      aggregate for more then 10 minutes sets the aggregate as down, since
      from our perspective if we cannot get to it, the cluster is down.
      
      Unlike the jfed monitoring system, we are not going to try to
      instantiate a new experiment or ssh into it. Wait and see if that is
      necessary in our context.
      
      On the instantiate page, generate a json structure for each cluster,
      similar the one described in issue #172 by Keith. This way we can easily
      switch the existing code over to this new system, but fail back to the
      old mechanism if this turn out to be a bust.
      
      Some other related changes to how we hand cluster into the several web
      pages.
      d7c4230e
  13. 03 Nov, 2016 1 commit
  14. 25 May, 2016 1 commit
  15. 18 May, 2016 1 commit
  16. 11 May, 2016 1 commit
  17. 28 Apr, 2016 1 commit
  18. 26 Feb, 2016 1 commit
  19. 17 Feb, 2016 1 commit
  20. 27 Jan, 2016 1 commit
  21. 04 Jan, 2016 1 commit
  22. 13 Aug, 2015 1 commit
  23. 11 Aug, 2015 1 commit
    • Mike Hibler's avatar
      Two versions of a python jail for running geni-lib scripts. · 794fe4d4
      Mike Hibler authored
      genilib-iocage uses the FreeBSD "iocage" jail management package to
      setup a jail, run the script, and teardown the jail. Unfortunately,
      this version is really, really slow (11 seconds for a one-shot jail).
      
      So instead we will use genilib-jail which uses the template jail instance
      I built using iocage, but creates the one-off jails by using raw zfs and
      jail commands. It runs in about 1.3 seconds. genilib-iocage is left in
      case the author speeds it up someday.
      
      N.B. these are NOT plug in replacements for rungenilib.proxy.in.
      In particular, the new scripts run as root and don't do any validation
      of the caller or arguments. So genilib-jail will be called from rungenilib
      for now (though I have not done that part yet!)
      794fe4d4
  24. 11 Jul, 2015 1 commit
  25. 12 Feb, 2015 1 commit
  26. 03 Jan, 2015 2 commits
  27. 12 Nov, 2014 1 commit
    • Leigh Stoller's avatar
      Lots of dataset changes. · 0adc340f
      Leigh Stoller authored
      Project leases are now per-group, so we build a sub authority certificate
      for a remote dataset so that on the remote side, it is created inside the
      group named by the project on the local side.
      
      Many bug fixes.
      0adc340f
  28. 29 Oct, 2014 1 commit
  29. 28 Oct, 2014 1 commit
  30. 26 May, 2014 1 commit
  31. 19 Feb, 2014 1 commit
    • Leigh Stoller's avatar
      Checkpoint. · 9e9ac6ee
      Leigh Stoller authored
      * Add a .htaccess file that does the rewrites, instead of in the httpd
        confile file. Added Rob's stuff for rewriting urls to hide the .php
        although not sure this is working correctly yet.
      
      * Add simple MyExperiments page so that logged in users can find their
        way back to running profiles.
      
      * Move the DB table holding the running experiment records from the
        geni-sa DB into the main Emulab DB. Lots of little changes for that.
      
      * Change logout to plain link instead of ajax call. That was a silly
        thing to do.
      
      * Bug fixes to ssh keys and shell login from the status page.
      9e9ac6ee
  32. 29 Jan, 2014 1 commit
  33. 06 Dec, 2012 1 commit
  34. 24 Sep, 2012 1 commit
    • Eric Eide's avatar
      Replace license symbols with {{{ }}}-enclosed license blocks. · 6df609a9
      Eric Eide authored
      This commit is intended to makes the license status of Emulab and
      ProtoGENI source files more clear.  It replaces license symbols like
      "EMULAB-COPYRIGHT" and "GENIPUBLIC-COPYRIGHT" with {{{ }}}-delimited
      blocks that contain actual license statements.
      
      This change was driven by the fact that today, most people acquire and
      track Emulab and ProtoGENI sources via git.
      
      Before the Emulab source code was kept in git, the Flux Research Group
      at the University of Utah would roll distributions by making tar
      files.  As part of that process, the Flux Group would replace the
      license symbols in the source files with actual license statements.
      
      When the Flux Group moved to git, people outside of the group started
      to see the source files with the "unexpanded" symbols.  This meant
      that people acquired source files without actual license statements in
      them.  All the relevant files had Utah *copyright* statements in them,
      but without the expanded *license* statements, the licensing status of
      the source files was unclear.
      
      This commit is intended to clear up that confusion.
      
      Most Utah-copyrighted files in the Emulab source tree are distributed
      under the terms of the Affero GNU General Public License, version 3
      (AGPLv3).
      
      Most Utah-copyrighted files related to ProtoGENI are distributed under
      the terms of the GENI Public License, which is a BSD-like open-source
      license.
      
      Some Utah-copyrighted files in the Emulab source tree are distributed
      under the terms of the GNU Lesser General Public License, version 2.1
      (LGPL).
      6df609a9
  35. 08 May, 2008 1 commit
  36. 24 Oct, 2007 2 commits