1. 04 Jun, 2018 3 commits
  2. 31 May, 2018 2 commits
  3. 30 May, 2018 4 commits
    • Leigh B Stoller's avatar
      Add support for linkwide properties which are far more efficient wrt the · aba79edd
      Leigh B Stoller authored
      XML size on really big lans. I do not expect this to be used very often,
      but it is handy. On the geni-lib side:
      
      class setProperties(object):
          """Added to a Link or LAN object, this extension tells Emulab based
          clusters to set the symmetrical properties of the entire link/lan to
          the desired characteristics (bandwidth, latency, plr). This produces
          more efficient XML then setting a property on every source/destination
          pair, especially on a very large lan. Bandwidth is in Kbps, latency in
          milliseconds, plr a floating point number between 0 and 1. Use keyword
          based arguments, all arguments are optional:
      
              link.setProperties(bandwidth=100000, latency=10, plr=0.5)
      
          """
      aba79edd
    • Leigh B Stoller's avatar
      Minor fixes to previous revision(s). · 428d54d3
      Leigh B Stoller authored
      428d54d3
    • Leigh B Stoller's avatar
      Several backend/RPC changes for reservations: · 8266ae51
      Leigh B Stoller authored
      1. Return current set of reservations (if any) for a user when getting
         the max extension (piggy backing on the call to reduce overhead).
      
      2. Add RPC to get the reservation history for a user (all past
         reservations that were approved).
      
         Aside; the reservation_history table was not being updated properly,
         only expired reservations were saved, not deleted (but used)
         reservations, so we lost a lot of history. We could regen some of it
         from the history tables I added at the Portal for Dmitry, but not
         sure it is worth the trouble.
      
      3. And then the main content of this commit is that for both of the
         lists above, also return the experiment usage history for the project
         an dthe user who created the reservation. This takes the form of a
         time line of allocation changes so that we can graph node usage
         against the reservation bounds, to show graphically how well utilized
         the reservation is.
      8266ae51
    • Leigh B Stoller's avatar
  4. 23 May, 2018 1 commit
  5. 14 May, 2018 3 commits
  6. 07 May, 2018 3 commits
  7. 30 Apr, 2018 1 commit
  8. 26 Apr, 2018 1 commit
  9. 23 Apr, 2018 1 commit
  10. 20 Apr, 2018 1 commit
    • Leigh B Stoller's avatar
      Couple of small reservation system changes: · 636cea07
      Leigh B Stoller authored
      1. Show the reason on the listing page, as popover in the last
         column. Makes it easier to approve directly from the listing page if
         you can see the reason.
      
      2. Add optional approval message to pass along to the user.
      636cea07
  11. 19 Apr, 2018 1 commit
    • Leigh B Stoller's avatar
      Minor changes to update keys: · c9faef6e
      Leigh B Stoller authored
      1. Do not mark down nodes as needing to be updated, they just get stuck
         there.
      
      2. In the CM daemon, what for slivers/aggregates that have been stuck in
         updating users for too long, and cancel the update. Typically this is
         cause a node is wedged or not participating (CORD), so again just
         cancel and reset the state.
      c9faef6e
  12. 18 Apr, 2018 2 commits
    • Leigh B Stoller's avatar
      A tiny little tweak that allows you to set the IPs on layer 1 link · 728bd3bd
      Leigh B Stoller authored
      ifaces that correspond to endpoints on nodes. Makes it easier to
      do something like this, if we init the interfaces on the nodes with IP
      and mask and bring it up.
      
      	# Add a raw PC to the request and give it an interface.
      	node1 = request.RawPC("node1")
      	iface1 = node1.addInterface()
      
      	# Specify the IPv4 address
      	iface1.addAddress(pg.IPv4Address("192.168.1.1", "255.255.255.0"))
      
      	# Add another raw PC to the request and give it an interface.
      	node2 = request.RawPC("node2")
      	iface2 = node2.addInterface()
      
      	# Specify the IPv4 address
      	iface2.addAddress(pg.IPv4Address("192.168.1.2", "255.255.255.0"))
      
      	# Add L1 link from node1 to node2
      	link1 = request.L1Link("link1")
      	link1.addInterface(iface1)
      	link1.addInterface(iface2)
      728bd3bd
    • Leigh B Stoller's avatar
  13. 17 Apr, 2018 2 commits
  14. 16 Apr, 2018 1 commit
  15. 13 Apr, 2018 2 commits
  16. 09 Apr, 2018 2 commits
  17. 03 Apr, 2018 1 commit
    • Leigh B Stoller's avatar
      When referring to a specific image version in the disk image URN, and · d83614dc
      Leigh B Stoller authored
      that image is an *imported* system image, we are almost certainly
      referring to a version related to the origin image, not the local
      copy (which is not in sync with the origin wrt the history). In that
      case, we can use the hash from the image server to track down the local
      version.
      
      Aside; If I were going to redo the import mechanism, I would make image
      provenance the default for everyone, and make the option be whether to
      save or delete the image file (that was the entire reason I made
      provenance optional, most sites especially geni racks, do not have
      enough storage to maintain old images. And image import would always
      import the history too, which is something I did later when we thought
      deltas were going to solve our problems.
      d83614dc
  18. 29 Mar, 2018 1 commit
    • Leigh B Stoller's avatar
      Reservations system changes: · df90d7a7
      Leigh B Stoller authored
      1) Rework so that instead of relying on swapin__last + autoswap timeout,
         set expt_expires for classic experiments at the beginning of swapin
         time. This is cause swapin_last is not set till the end of swapin,
         and so during swapin the res system is in an inconsistent state since
         there is no way to determine when the experiment ends.
      
      2) On the Geni path, simplify expiration handling; do not allow a slice
         modification and expiration change at the same time; the bookkeeping
         and failure rollback is a pain, especially wrt reservation system,
         and this rarely ever actually happens, so get rid of a lot of
         complication.
      df90d7a7
  19. 28 Mar, 2018 2 commits
  20. 26 Mar, 2018 2 commits
  21. 14 Mar, 2018 2 commits
  22. 13 Mar, 2018 1 commit
  23. 09 Mar, 2018 1 commit