1. 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
  2. 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
  3. 12 Feb, 2007 1 commit
    • 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
  4. 20 Dec, 2006 1 commit
  5. 15 Feb, 2005 2 commits
  6. 28 May, 2003 1 commit
  7. 22 Apr, 2003 1 commit
  8. 07 Apr, 2003 1 commit
  9. 02 Apr, 2003 1 commit
  10. 26 Mar, 2003 1 commit
    • Mac Newbold's avatar
      Fix up the swap request message to use the new slothd info. Now it says · 3556ab99
      Mac Newbold authored
      how long they've been idle and what the time of last activity was on their
      nodes. And now do proper wordwrapping on the message instead of static
      apriori newline placement.
      
      Also add the ability to do some formatting on the idle time to those
      functions, and use it to make the swap request message a little better.
      ("H hours, M minutes" instead of "X.Y hours").
      3556ab99
  11. 24 Mar, 2003 1 commit
  12. 05 Dec, 2002 1 commit
    • Mac Newbold's avatar
      First set of changes for proj head and all group roots in the group to get · 0c8a345c
      Mac Newbold authored
      mail instead of just the proj head. So far, the only mail that really does
      it is the swap requests, but others are coming soon, especially new user
      application mail and the like.
      
      Also clarified some of the documentation about students starting projects.
      New project page says they can't, and that their advisor has to do it,
      then links to auth.html, which says they can with prior special
      permission. Hopefully we won't get too many more students making project
      apps and messing things up.
      0c8a345c
  13. 08 Nov, 2002 1 commit
  14. 16 Sep, 2002 1 commit
  15. 03 Sep, 2002 1 commit
  16. 12 Jul, 2002 1 commit
    • Mac Newbold's avatar
      Several small but much-needed changes to idle detection. Soon I'll · d5bf0bdb
      Mac Newbold authored
      give this stuff a major overhaul when we move to the model where we
      have data on when each node was last "touched" or actively used. (Most
      of these changes will still be relevant.)
      
      1. Fix a bug in idlecheck that we didn't really thing much about. It
      turns out that the WanSpread people have had a 17 node expt idle for
      over three weeks, we didn't detect it because the nodes were running
      ospf and generating lots of network traffic on the exptl. net. We now
      ignore the exptl. network traffic as a source of activity if they have
      automatic ospf routing happening. We also ignore nodes that have any
      trafgen endpoints.
      
      2. After the changes in idlecheck, I updated idle view to correctly
      handle a new flag idlecheck outputs to let us know that an expt has
      ospf running and may be falsely inactive because we ignored net
      traffic. It will probably be very rare that an active expt that is
      running ospf will have only network activity and no tty activity, but
      it is a potential source of false positives. I also did some random
      libifying. There were some hard coded references to emulab.net that I
      fixed to properly use the variables from the defs file.
      
      3. I also updated request_swapexp.php3. It now inlcudes in the email
      message a blurb about automatic swapping, depending on whether or not
      they're marked swappable. (If swappable, it says "This experiment is
      marked as swappable, so it may be automatically swapped out by
      Emulab.Net or its operational staff." and if unswappable, it says
      "This experiment has not been marked swappable, so it will not be
      automatically swapped out.") It also has a reference to the Node Usage
      Policy and gives the URL. So we now give them fair warning about
      potentially getting swapped out and what our policies are.
      d5bf0bdb
  17. 07 Jul, 2002 1 commit
  18. 21 Jun, 2002 2 commits
  19. 18 Jun, 2002 1 commit
    • Mac Newbold's avatar
      Add swap request tracking. Two new columns in expt table (swap_requests · 37cbb3e8
      Mac Newbold authored
      and last_swap_req) track the count and last time a request was sent.
      
      The counters all get reset by idlecheck every time it runs unless it
      detects you as inactive. Then when you go to send a swap request, it
      will show you the info about how many have been sent and when the last
      one was, and will let you know if the swap request will also go to the
      proj leader if you send it. When you send the request, the email
      mentions how many reminders you've been sent already, and only gets
      cc'd to proj head on the third message (or more). Then it updates the
      count and the timestamp of the last request sent.
      37cbb3e8
  20. 07 May, 2002 1 commit
  21. 05 Apr, 2002 1 commit
  22. 07 Mar, 2002 3 commits
  23. 12 Feb, 2002 1 commit
  24. 05 Nov, 2001 1 commit
  25. 30 Oct, 2001 1 commit