1. 01 Jun, 2017 1 commit
  2. 23 May, 2017 1 commit
  3. 03 Dec, 2012 1 commit
  4. 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
  5. 30 Aug, 2011 1 commit
  6. 21 Oct, 2008 1 commit
    • Kevin Atkinson's avatar
      If a known user (based on stored cookies) is not logged in than · 846a98d6
      Kevin Atkinson authored
      redirect to the login page rather than printing a message with a link
      to the page.  Otherwise send a "403 Forbidden" to keep robots from
      indexing the page.  Also send appreciate HTTP responses on other
      precheck errors to keep a robot from indexing the page.  In order to
      do this the PAGEHEADER call needed to be moved to after
      CheckLoginOrDie and Required/OptionalPageArguments on many pages.  A
      warning will be printed if either CheckLoginOrDie or
      Required/OptionalPageArguments detects that PAGEHEADER was already
      called.
      
      Also change the redirect in kb-show to be a permanent redirect (301)
      rather than a temporary one (302) which is the default unless a status
      code is given.
      846a98d6
  7. 13 May, 2008 1 commit
  8. 01 May, 2008 1 commit
  9. 16 Mar, 2007 1 commit
  10. 12 Feb, 2007 2 commits
    • Leigh Stoller's avatar
      Fix minor bug. · 36c598fc
      Leigh Stoller authored
      36c598fc
    • Leigh Stoller's avatar
      * Replace the argument processing code in all pages. Currently we rely on · 48acc8e3
      Leigh Stoller authored
        register_globals=1 to turn POST/GET/COOKIES arguments in local variables.
        This is known to be a terrible security risk, and we keep saying we are
        going to fix it, and now I am. In order to accomplish this on a
        transitional basis (since I don't want the entire web interface to stop
        working while I debug it), and because the code just needs the cleanup, I
        am doing it like this: Each page will sport new declarations at the top:
      
      	RequiredPageArguments("experiment", PAGEARG_EXPERIMENT,
                                    "template",   PAGEARG_TEMPLATE,
                                    "instance",   PAGEARG_INSTANCE,
                                    "metadata",   PAGEARG_METADATA,
                                    "osinfo",     PAGEARG_OSINFO,
                                    "image",      PAGEARG_IMAGE,
                                    "project",    PAGEARG_PROJECT,
                                    "group",      PAGEARG_GROUP,
                                    "user",       PAGEARG_USER,
      			      "node",       PAGEARG_NODE,
      			      "yesno",      PAGEARG_BOOLEAN,
      			      "message",    PAGEARG_STRING,
      			      "age",        PAGEARG_INTEGER,
                                    "cost",       PAGEARG_NUMERIC,
                                    "formfields", PAGEARG_ARRAY,
                                    "unknown",    PAGEARG_ANYTHING);
      
      	OptionalPageArguments("canceled", PAGEARG_BOOLEAN);
      
        The first token in each pair is the name of the global variable to
        set, and the second token is the type. So, for "experiment" we look at
        the URL for a pid/eid or exptidx, etc, sanity check them (safe for a
        DB query), and then try to find that experiment in the DB. If it maps
        to an experiment, set global variable $experiment to the object. Since
        its a required argument, produce an error if not supplied. Similar
        treatment for optional arguments, with the obvious difference.
      
        The goal is to have ALL argument processing in one place, consistent,
        and correct. I've found numerous places where we leak unchecked
        arguments into queries. It also cuts out a lot of duplicated code.
      
      * To make the above easier to deal with, I've been replacing lots of
        hardcoded URLS in the code of the form:
      
      	foo.php3?pid=$pid&eid=$eid ...
      
        with
      
              CreateURL("foo", $experiment)
      
        which creates and returns the neccessary url string, by looking at
        the type of its arguments (experiment, template, instance, etc.)
      
        Eventually plan to replace them all so that URL handling throughout
        the code is all defined in one place (all the new URL code is in
        url_defs.php).
      
      * I have cranked up error reporting to tell me anytime a variable is
        used before it is initialized, plus a bunch of other stuff that PHP
        deems improper. Think of it like -Wall ... and boy we get a lot of
        warnings.  A very large percentage of the diffs are to fix all these
        warnings.
      
        The warnings are currently going to /usr/testbed/log/php-errors.log,
        and I'll be adding a script to capture them each night and mail them
        to tbops. This file also gets errors (this will be a change for
        developers; rather then seeing errors and warnings dumped in the
        middle of web pages, they will go to this file instead).
      
      * Major refactoring of the code. More objects (nodes, images, osids).
        Moving tons of queries into the objects in the hopes of someday
        getting to a point where we can split the web interface onto a
        different server.  Lots of general cleanup.
      48acc8e3
  11. 20 Dec, 2006 1 commit
  12. 09 Oct, 2006 1 commit
  13. 06 Jul, 2006 1 commit
  14. 12 Oct, 2005 1 commit
    • Leigh Stoller's avatar
      Add some hacky stuff to allow people in NSDI temporary project to · b538978f
      Leigh Stoller authored
      see experiments of other people in the NSDI project.
      
      Added sitevar "general/open_showexplist" which when set to the name of
      a project (NSDI), will allow users in that project to view all the
      experiments that are swapped in by other members of the project, even
      if the experiments are within another project.
      
      Also quickly hacked showuser page to only show project/group listing
      of overlapping projects, not all projects. This avoids some leakage.
      b538978f
  15. 09 Feb, 2004 1 commit
  16. 17 Nov, 2003 1 commit
    • Leigh Stoller's avatar
      Merge the two state machines (batchstate and state) into a single · 2025e0bd
      Leigh Stoller authored
      state machine (state). All of the stuff that was previously handled by
      using batchstate is now embedded into the one state machine. Of
      course, these mostly overlapped, so its not that much of a change,
      except that we also redid the machine, adding more states (for
      example, modify phases are now explicit. To get a picture of the
      actual state machine, on boss:
      
      		stategraph -o newstates EXPTSTATE
      		gv newstates.ps
      
      Things to note:
      
      * The "batchstate" slot of the experiments table is now used solely to
        provide a lock for batch daemon. A secondary change will be to
        change the slot name to something more appropriate, but it can
        happen anytime after this new stuff is installed.
      
      * I have left expt_locked for now, but another later change will be to remove
        expt_locked, and change it to active_busy or some such new state name in
        the state machine. I have removed most uses of expt_locked, except those
        that were necessary until there is a new state to replace it.
      
      * These new changes are an implementation of the new state machine,
        but I have not done anything fancy. Most of the code is the same as
        it was before.
      
      * I suspect that there are races with the batch daemon now, but they
        are going to be rare, and the end result is probably that a
        cancelation is delayed a little bit.
      2025e0bd
  17. 16 Oct, 2003 1 commit
  18. 12 Sep, 2003 1 commit
  19. 08 Aug, 2003 1 commit
  20. 09 Jul, 2003 1 commit
  21. 16 May, 2003 1 commit
    • Mac Newbold's avatar
      Show staleness of idle data in more places, since the only place it showed · d37885e1
      Mac Newbold authored
      before was idle view of the expt list. Now it shows in all (non-thumb)
      views.
      
      I also added it to the right hand table in the expt page.
      
      It also shows in the little expt lists in the user, group, and proj pages.
      (I'm already really glad those got consolidated into a single function.)
      
      Also cleaned up idle view a bit. Now that we show staleness and idle
      ignore anyway, we don't need text tags for them, and we no longer need the
      red dot that links to swap requests because of idlemail. So there's no
      longer the weird double-column thing in idle view.
      
      I'm still looking for a good way to non-intrusively mark expts in the expt
      list as being unswappable, so if you think of anything, let me know.
      (Maybe boldface, or a little lock icon or something?)
      d37885e1
  22. 13 May, 2003 1 commit
  23. 12 May, 2003 1 commit
  24. 28 Apr, 2003 2 commits
    • Leigh Stoller's avatar
      Add several minor experiment_stats fields; swap_errors (a count), · 27558935
      Leigh Stoller authored
      swap_exitcode (last error), idle_swaps (a count), batch (a flag to
      indicate a batch experiment).
      
      Add a operational log. Okay, its not actually a log, but a table that
      will grow forever until it consumes the earth. Its a small table
      though, so it will take a few years. Its cross indexed with the
      experiment_stats table, so by massaging this table along with the
      stats table, we can get a good picture of what was running on the
      testbed when, and how many resources it was using. Sorry, not a log
      file, but we can easily generate a log file from tbe table if the Boss
      really wants one. The table entry averages 28 bytes.
      
      Move stats to their own main menu item (admin mode only). Remove from
      the showexp_list page since that was bogus.
      27558935
    • Leigh Stoller's avatar
      Add support for new {user,group,project,experiment}_stats tables. · 5e5508bf
      Leigh Stoller authored
      The first three are aggregate tables, while the experiment stats table
      gets a record for each new experiment, and is updated when an
      experiment is swapped in/out/modify or terminated. Look at the table
      to see what is tracked. Once the experiment_stats record is updated,
      the aggregate tables are updated as necessary. There are a bunch of
      ugly changes to assign_wrapper to get the stats. Note that pnodes is
      not incremented until an experiment sucessfully swaps in. This is in
      leu of getting status codes; I'm not tracking failed operations yet,
      nor creating the log file that Jay wants. I'll do that in the next
      round of changes when we see how useful these numbers are.
      
      Most of the changes are to create/delete table entries where
      appropriate, and to display the records. Display is only under admin
      mode, and the display is raw; just a dump of the assoc tables in php.
      The last 100 experiment stats records are available via the Experiment
      List page, using the "Stats" show option at the top. Bad place, but
      will do for now.
      5e5508bf
  25. 15 Apr, 2003 1 commit
  26. 11 Apr, 2003 3 commits
  27. 09 Apr, 2003 1 commit
  28. 07 Apr, 2003 1 commit
    • Chad Barb's avatar
      · cc12ed9c
      Chad Barb authored
      Negative times must die!!!
      cc12ed9c
  29. 01 Apr, 2003 1 commit
  30. 29 Mar, 2003 1 commit
  31. 27 Mar, 2003 1 commit
  32. 26 Mar, 2003 1 commit
    • Mac Newbold's avatar
      First big commit/checkpoint of web changes for new slothd. · 52396569
      Mac Newbold authored
       - Added a bunch of functions to get time of last activity, hours idle,
         and staleness for nodes and experiments.
       - Fixed the showexp_list page to use the new idle measures, including
         idle view. Idle view now runs in about 1.3 seconds instead of 13.
       - Changed all the "show" functions for nodes and expts to show idleness.
      
      More changes will be coming, but I wanted to commit this before I install
      it for real.
      52396569
  33. 24 Mar, 2003 1 commit
    • Mac Newbold's avatar
      Remove a check that no longer works right. Before, if slothd said it was · a8636777
      Mac Newbold authored
      idle but someone logged in sometime today, it meant that someone had
      logged in since the most recent slothd report (up to an hour ago). Now
      that our time of idleness is much lower than 24 hours, it is easy for
      someone to have logged in today and still have it be idle. So remove the
      check.
      
      This means that you should wait at least an hour from the time you send a
      message before you swap it out, to make sure that your data was correct
      when you sent the message. Not optimal, but fixed with the new slothd that
      goes in this week.
      a8636777
  34. 22 Mar, 2003 1 commit
  35. 19 Mar, 2003 1 commit
  36. 06 Mar, 2003 1 commit
    • Chad Barb's avatar
      · 4b1cef0b
      Chad Barb authored
      Added XML view to updown (pass "output=xml" as a CGI var.)
      
      Added Thumbnail-on-demand to showexp
      4b1cef0b