1. 23 Oct, 2017 1 commit
  2. 14 Aug, 2017 1 commit
  3. 10 Jul, 2017 1 commit
  4. 30 May, 2017 1 commit
    • Leigh B Stoller's avatar
      Rework how we store the sliver/slice status from the clusters: · e5d36e0d
      Leigh B Stoller authored
      In the beginning, the number and size of experiments was small, and so
      storing the entire slice/sliver status blob as json in the web task was
      fine, even though we had to lock tables to prevent races between the
      event updates and the local polling.
      
      But lately the size of those json blobs is getting huge and the lock is
      bogging things down, including not being able to keep up with the number
      of events coming from all the clusters, we get really far behind.
      
      So I have moved the status blobs out of the per-instance web task and
      into new tables, once per slice and one per node (sliver). This keeps
      the blobs very small and thus the lock time very small. So now we can
      keep up with the event stream.
      
      If we grow big enough that this problem comes big enough, we can switch
      to innodb for the per-sliver table and do row locking instead of table
      locking, but I do not think that will happen
      e5d36e0d
  5. 10 May, 2017 1 commit
  6. 02 May, 2017 1 commit
    • Leigh B Stoller's avatar
      Speed up the instantiate page response time, it was taking forever! · af8cc34f
      Leigh B Stoller authored
      1. Okay, 10-15 seconds for me, which is the same as forever.
      
      2. Do not sort in PHP, sort in javascript, let the client burn those
         cycles instead of poor overworked boss.
      
      3. Store global lastused/usecount in the apt_profiles table so that we
         do not have to compute it every time for profile.
      
      4. Compute the user's lastused/usecount for each profile in a single
         query and create local array. Cuts out 100s of queries.
      af8cc34f
  7. 24 Mar, 2017 1 commit
  8. 10 Mar, 2017 1 commit
  9. 06 Mar, 2017 1 commit
  10. 15 Feb, 2017 1 commit
  11. 09 Feb, 2017 2 commits
  12. 25 Jan, 2017 2 commits
  13. 20 Jan, 2017 2 commits
  14. 29 Dec, 2016 1 commit
  15. 28 Dec, 2016 1 commit
  16. 29 Nov, 2016 1 commit
    • Leigh B Stoller's avatar
      A couple of changes to the apt daemon that I did a while back: · 6db95f98
      Leigh B Stoller authored
      1. Kill canceled instances; we allow users to "terminate" an instance
         while it is booting up, but we have to pend that till the lock is
         released. We do this with a canceled flag, similar to the Classic
         interface. But I never committed the apt_daemon changes that look for
         canceled instances and kills them!
      
      2. Look for stale st/lt datasets and delete them. A stale dataset is one
         that no longer exists at the remote cluster (cause its expiration was
         reached and it was reaped). We do not get notification at the Portal,
         and so those dangling datasets descriptors sit around confusing
         people (okay, confusing me and others of a similar vintage).
      6db95f98
  17. 06 Oct, 2016 1 commit
  18. 28 Sep, 2016 1 commit
  19. 31 Aug, 2016 1 commit
  20. 29 Aug, 2016 3 commits
  21. 20 Jul, 2016 1 commit
  22. 14 Jul, 2016 1 commit
  23. 10 Jun, 2016 2 commits
    • Leigh B Stoller's avatar
      Fix to CreateDatasetCreds(); we do not need a credential for a local lease, · f74b1548
      Leigh B Stoller authored
      it goes through normal emulab permission checks.
      f74b1548
    • Leigh B Stoller's avatar
      NFS mount changes, still a work in progress, bound to change: · e369c1a8
      Leigh B Stoller authored
      * The Emulab portal now adds a toplevel element (Emulab namespace)
        directing the CM to use standard emulab mounts (read: /users).
        We clear that element from the other portals.
      
      * The CM looks for that tag, and allows it only if the caller is the local
        SA. The default for nfsmounts setting for geni experiment containers is
        "genidefault", but that is set to "emulabdefault" when allowed.
      
      * tmcd changes; no using nfsmounts slot instead of nonfsmounts. "none"
        means no mounts (duh), "emulabdefault" means standard mounts we all know
        and love, "genidefault" means no /users mounts.
      
        In addition, when we are doing emulabdefault mounts on a geni experiment
        node, we do not return accounts that are specified in the rspec, but
        rather we return the local project accounts only.
      e369c1a8
  24. 19 May, 2016 1 commit
  25. 29 Apr, 2016 1 commit
  26. 12 Apr, 2016 1 commit
  27. 06 Apr, 2016 1 commit
  28. 26 Mar, 2016 1 commit
  29. 16 Mar, 2016 1 commit
  30. 14 Mar, 2016 1 commit
  31. 09 Mar, 2016 1 commit
  32. 01 Mar, 2016 1 commit
    • Leigh B Stoller's avatar
      Some tweaks to credential handling: · 3ebffb34
      Leigh B Stoller authored
      1) Anytime we need to generate a slice credential, and the slice has
         expired, bump the slice expiration so we can create a valid credential
         and then reset the expiration. Consider if the slice expires but we
         missed it and its still active; we gotta be able to control it.
      
      2) From the beginning, we have done almost all RPC operations as the
         creator of the experiment. Made sense when the portal interface was not
         project aware, but now other users in the project can see and mess with
         experiments in their project. But we are still doing all the RPC
         operations as the creator of the experiment, which will need to change
         at some point, but in the short term I am seeing a lot of credential
         errors caused by an expired speaks-for credential for that creator (if
         they have not logged into the portal in a while). When this happens,
         lets generate a plain slice credential, issued to the SA, so that we can
         complete the operation. Eventually we have to make the backend project
         aware, and issue the operations as the web user doing the driving.
         Maybe as part of the larger portalization project.
      3ebffb34
  33. 29 Feb, 2016 2 commits