1. 10 Feb, 2016 1 commit
  2. 05 Feb, 2016 2 commits
  3. 01 Feb, 2016 1 commit
  4. 29 Jan, 2016 1 commit
  5. 28 Jan, 2016 1 commit
  6. 27 Jan, 2016 4 commits
  7. 21 Jan, 2016 1 commit
    • Leigh B Stoller's avatar
      A couple of fixes for guest users: · c363234d
      Leigh B Stoller authored
      1. Do not allow guest users to use anything but the APT cluster. We had
         talked about this a while back, and today it caused a problem:
      
      2. Because a guest tried to use the Mothership (cause of a URN in the
         profile), we had GeniUser lookup confusion. We store guest users in the
         geni-sa geni_users table, but because PROTOGENI_LOCALUSER=1, we end up
         creating a nonlocal account on the Geni path, and that conflicts.
         Changed how we do lookups.
      c363234d
  8. 09 Jan, 2016 1 commit
  9. 06 Jan, 2016 2 commits
    • Leigh B Stoller's avatar
      Nuts, my approach for catching early linktest errors is not going to work · 1f145671
      Leigh B Stoller authored
      all the time, so bail on that and fallback to reporting errors solely
      though the spew log(s).
      1f145671
    • Leigh B Stoller's avatar
      Export linktest via the CM API. · 58640e2c
      Leigh B Stoller authored
      * Three actions are exported; start, stop, and status. The last is cause we
        have to poll to determine when linktest has actually finished or stopped.
        I hate all this polling.
      
      * For start, linktest can be performed synchronously, which is fine on a
        small experiment, but in general you want to use the async option and
        check back later. When using async, we return the spewlog URL to the
        caller so that linktest can be monitored.
      
      * A couple of minor changes to linktest itself for using a spew log.
      
      * Some simple test rspecs and a linktest.py driver.
      58640e2c
  10. 04 Jan, 2016 1 commit
  11. 23 Dec, 2015 2 commits
    • Leigh B Stoller's avatar
      When PROTOGENI_LOCALUSER is on, we have to do an additional · e92964e7
      Leigh B Stoller authored
      Image->AccessCheck() to see if the user is allowed to use the image
      via the image_permissions table.
      e92964e7
    • Leigh B Stoller's avatar
      Change to traffic shaping via the link property statements (which turn on · 0d43247a
      Leigh B Stoller authored
      end node shaping, this change does not affect bridge shaping).
      
      First off, duplex links are not affected. I expect that duplex links are
      the majority usage anyway. What I did change is the way we insert the
      virt_lans table entries to be exactly like what the NS file does. This will
      not affect the delays, but it makes linktest happier (see below) when
      testing duplex links.
      
      For lans (more then two nodes) we were always broken. Consider what we have
      now: 
      
       <link client_id="mylan">
         <interface_ref client_id="node1"/>
         <interface_ref client_id="node2"/>
         <interface_ref client_id="node3"/>
         <property source_id="node1" dest_id="node2"
                 capacity="50000" latency="15"/>
         <property source_id="node1" dest_id="node3"
                 capacity="50000" latency="15"/>
         <property source_id="node2" dest_id="node1"
                 capacity="50000" latency="15"/>
         <property source_id="node3" dest_id="node1"
                 capacity="50000" latency="15"/>
         <property source_id="node2" dest_id="node3"
                 capacity="50000" latency="15"/>
         <property source_id="node3" dest_id="node2"
                 capacity="50000" latency="15"/>
      </link>
      
      This cannot actually be supported by the virtual topology in the database.
      
      In Emulab the virt_lans table allows you to specify for each node, the
      bw/latency/loss going "from the lan to the node" and rbw/rlatency/rloss
      "going from the node to the lan". Think of the "lan" as a fake node in the
      center of a star.
      
                              N1
      		   bw   |  | rbw
      		delay   |  | rdelay
      		 loss   |  | rloss
      			|  |
                 N2  ------- LAN ------- N3
                     -------     -------
      
      So one of the lines is "from the LAN node to N1" and the other line is
      "from N1 to the LAN node". Ditto for N2 and N3.
      
      In other words, you cannot actually specify a different set of parameters
      from a node to each of the other nodes, as the pairwise properties above
      imply.  A translation of what we actually do is more like this:
      
         <property source_id="node1" dest_id="mylan"
                 capacity="50000" latency="15"/>
         <property source_id="mylan" dest_id="node1"
                 capacity="50000" latency="15"/>
         <property source_id="node2" dest_id="mylan"
                 capacity="50000" latency="15"/>
         <property source_id="mylan" dest_id="node2"
                 capacity="50000" latency="15"/>
         <property source_id="node3" dest_id="mylan"
                 capacity="50000" latency="15"/>
         <property source_id="mylan" dest_id="node3"
                 capacity="50000" latency="15"/>
      
      Which allows you to set the simplex parameters for each node TO/FROM THE
      LAN.  Each node can a bw/latency/loss to the LAN and a different
      bw/latency/loss from the LAN. This is supported in the classic NS file
      syntax, although this is not what a simple "make-lan" does; there is
      currently no syntax to support that in Geni; a NS file make-lan statement
      that sets the delay to 15 means that the delay is 7.5 to the LAN and 7.5
      from the LAN, so the delay between two nodes is 15. In the NS syntax, once
      you start messing with per-node shaping settings, you have to do it like
      above. So in the above example, the delay between any two nodes is 30ms.
      
      But the above is a little too confusing, so rather then doing simplex
      parameters I implemented duplex parameters:
      
         <property source_id="node1" dest_id="mylan"
                 capacity="50000" latency="15"/>
         <property source_id="node2" dest_id="mylan"
                 capacity="50000" latency="15"/>
         <property source_id="node3" dest_id="mylan"
                 capacity="50000" latency="15"/>
      
      If someday we think that people need simplex parameters for each node in a
      lan, we can add that.
      
      As for linktest ... I added the linktest agent to Geni experiments, and I
      set the sync_server default so that linktest can actually run. In another
      commit I will push up the change that export linktest from the CM
      interface, as well as portal changes to use it.
      0d43247a
  12. 21 Dec, 2015 1 commit
  13. 16 Dec, 2015 3 commits
  14. 15 Dec, 2015 4 commits
  15. 14 Dec, 2015 4 commits
  16. 11 Dec, 2015 1 commit
  17. 08 Dec, 2015 6 commits
  18. 07 Dec, 2015 2 commits
  19. 01 Dec, 2015 1 commit
    • Leigh B Stoller's avatar
      Add cancel support. The idea is that a DeleteSlice() with our internal · 5bd9ad1a
      Leigh B Stoller authored
      cancel option, will stop a CreateSliver() in its tracks. We stop the
      monitor, then cleanup the slice. I also added an optimization for tearing
      down large numbers of VMs on shared nodes, previously we were doing them
      one at a time. Note that only the Portal is going to use this option, since
      it loosely depends on code in the XEN clientside (described in another
      commit).
      5bd9ad1a
  20. 16 Nov, 2015 1 commit