1. 31 Oct, 2014 1 commit
  2. 28 Oct, 2014 1 commit
  3. 07 Oct, 2014 1 commit
  4. 29 Sep, 2014 1 commit
  5. 14 Jul, 2014 1 commit
  6. 04 Jun, 2014 2 commits
  7. 20 May, 2014 1 commit
  8. 22 Apr, 2014 1 commit
  9. 07 Apr, 2014 1 commit
  10. 06 Mar, 2014 1 commit
  11. 22 Nov, 2013 1 commit
  12. 08 Nov, 2013 1 commit
  13. 07 Nov, 2013 1 commit
  14. 31 Oct, 2013 1 commit
  15. 18 Sep, 2013 1 commit
  16. 19 Aug, 2013 1 commit
  17. 15 Aug, 2013 1 commit
  18. 09 Aug, 2013 1 commit
    • Leigh Stoller's avatar
      I added two new actions to PerformOperationalAction, which appear to · cfd1974a
      Leigh Stoller authored
      work fine when the nodes are behaving themselves.
      
      1) geni_update_users: Takes a slice credential and a keys argument. Can
        only be invoked when the sliver is in the started/geni_ready state.
        Moves the slice to the geni_updating_users state until all of the
        nodes have completed the update, at which time the sliver moves back
        to started/geni_ready.
      
      2) geni_updating_users_cancel: We can assume that some nodes will be whacky
        and will not perform the update when told to. This cancels the
        update and moves the sliver back to started/geni_ready.
      
      A couple of notes:
      
      * The current emulab node update time is about three minutes; the
        sliver is in this new state for that time and cannot be restarted or
        stopped. It can of course be deleted.
      
      * Should we allow restart while in the updating phase? We could, but
        then I need more bookkeeping.
      
      * Some nodes might not be running the watch dog, or might not even be
        an emulab image, so the operation will never end, not until
        canceled. I could add a timeout, but that will require a monitor or
        adding DB state to store the start time.
      cfd1974a
  19. 11 Jul, 2013 1 commit
    • Leigh Stoller's avatar
      Implement speaksfor (non-abac) support. · 8d53b3fd
      Leigh Stoller authored
      CM V2 (and thus the AM) now accept a type=speaksfor credential along
      with regular credentials. When supplied, the speaksfor caller must be
      equal to the owner of the speaksfor credential and the target must be
      equal to the owner of the regular credential(s). All operations take
      place in the context of the spokenfor user.
      
      Added speaksfor slots to geni_slices,geni_aggregates and geni_tickets.
      Also to the history table. But these are just the most recent data.
      Each transaction is logged as normal, and the metadata now includes
      the speaksfor data and the log always includes all of the credentials.
      
      For testing, there is a new script in the scripts directory to
      generate a speaksfor credential. Not installed since it is really
      a hack. But to create one:
      
        perl genspeaksfor urn:publicid:IDN+emulab.net+user+leebee \
      	urn:publicid:IDN+emulab.net+user+stoller
      
      which generates a speaksfor credential that says stoller is speaking
      for leebee.
      
      Given a slice credential issued to leebee, the test scripts can be
      invoked as follows (by stoller):
      
        createsliver.py -S speaksfor.cred -s slice.cred -c leebee.cred
      
      A copy of leebee's self credential is needed simply cause of the test
      script's desire to talk to the SA (which does not support speaksfor).
      Not otherwise needed.
      
      Oh, not tested on the AM interface yet.
      8d53b3fd
  20. 05 Mar, 2013 1 commit
  21. 29 Jan, 2013 2 commits
    • Leigh Stoller's avatar
      Add public_url to CM Sliverstatus() return blob, and pg_public_url to · cb95c1d7
      Leigh Stoller authored
      AM version of same.
      cb95c1d7
    • Leigh Stoller's avatar
      Add a "monitor" process to start/restart sliver to watch nodes. · 0c749af4
      Leigh Stoller authored
      This is very similar to what Emulab does on the swapin path for
      normal experiments; wait and watch the nodes to see which ones
      fail or otherwise timeout. Up till now, we did not do this on the
      PG path, and so failed nodes were never signaled, and the slice
      was left in a changing state forever. This also allows us to capture
      the node bootlogs and convert them to logfiles that we can associate
      with the slice on the showslice web page.
      
      Details: start/restart forks a child (WrapperFork()) and allows
      the parent to return to the client. The slice is unlocked so that
      the client can call SliverStatus(), etc. But the client cannot
      do anything that actually changes the sliver (update, stop, etc)
      until the monitor finishes (or times out on its own). The lone
      exception is Deleteslice(), which will asynchronously kill the
      monitor and then terminate the slice. Ditto the command line
      script "cleanupslice".
      
      We will probably need to add another way to allow the client to
      terminate the monitor early, but have not decided where yet.
      0c749af4
  22. 23 Jan, 2013 1 commit
  23. 22 Jan, 2013 1 commit
  24. 18 Jan, 2013 1 commit
  25. 14 Jan, 2013 1 commit
  26. 07 Jan, 2013 2 commits
  27. 29 Nov, 2012 2 commits
  28. 29 Oct, 2012 2 commits
  29. 26 Sep, 2012 1 commit
    • Jonathon Duerig's avatar
      Various fixes for AM API v3. · c49a1df9
      Jonathon Duerig authored
      All incoming rspecs are now validated with rspeclint.
      Multiple Create calls are now permitted.
      Slivers now have URNs at allocation time.
      Delete now returns a list of ex-slivers.
      Advertisement now specifies an operational state machine.
      Other minor fixes.
      c49a1df9
  30. 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
  31. 10 Sep, 2012 4 commits
  32. 07 Sep, 2012 1 commit