1. 07 Nov, 2018 1 commit
  2. 05 Nov, 2018 1 commit
    • Leigh Stoller's avatar
      Changes to how we handle/report mapping failures that also fail the · 11074445
      Leigh Stoller authored
      empty testbed test.
      Prior to this commit, we were not invoking the empty testbed case
      consitently. Now we do, but that exposed another problem; reporting that
      to the error to the Portal in a meaningful way. Basically, we can report
      a different error code for an impossible to map error, but then we lose
      the info we store now about what the actual failure was (which we show
      to the user with additional helpful info). Since we cannot (easily)
      change the Geni API for CreateSliver(), I have elected to continue the
      practice of returning the specific error codes (which also go into the
      database for long term historical info), and add more helpful text that
      for the Portal user that explains clearly that the mapping is impossible
      on the target cluster. This extra text also go into the database in the
      attached message field, so we ccan come back later and post process if
      we decide to do something different.
  3. 27 Sep, 2018 1 commit
  4. 12 Sep, 2018 1 commit
  5. 13 Aug, 2018 1 commit
    • Leigh Stoller's avatar
      Possible fix using shared lan and wanting to use the 10G interface: · 7b5eb1bb
      Leigh Stoller authored
      * In the CM we have always ignored the BW settings on a shared lan,
        since there is no way to set the properties in geni-lib for such a
        lan. There is the local hack I added (linkwide properties), but that
        was also ignored for shared vlans. Now I am looking to see if there is
        a bandwidth specification there, and using that. I assume we do not
        care about delay/loss since well, we never have before.
      * But even so, the mapper was ignoring it too. But we also have the code
        that tries to not use 10G interfaces unless explicitly asked for a 10G
        link, and that is not in the shared vlan path. So ... I made a few
        changes, the worst that can happen is that I broke share vlans for
        everyone except this one case.
  6. 30 Jul, 2018 1 commit
  7. 18 Apr, 2018 1 commit
    • Leigh Stoller's avatar
      A tiny little tweak that allows you to set the IPs on layer 1 link · 728bd3bd
      Leigh 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("", ""))
      	# 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("", ""))
      	# Add L1 link from node1 to node2
      	link1 = request.L1Link("link1")
  8. 13 Apr, 2018 1 commit
    • Leigh Stoller's avatar
      A fix to the alloc state machine; on the Geni Path we do two mapper · 4acd0bfe
      Leigh Stoller authored
      runs, the first in "alloconly" mode to nalloc resources, the second to
      "commit" the actual physical state changes. Well when we do that we end
      up changing newly allocated nodes to node that are dirty. This turns out
      to be bad for the switch ossetup code, and since the above is wrong, I
      decided to fix it instead of change David's switch ossetup code.
  9. 10 Apr, 2018 1 commit
  10. 28 Mar, 2018 1 commit
  11. 26 Mar, 2018 1 commit
  12. 09 Mar, 2018 2 commits
  13. 05 Feb, 2018 1 commit
  14. 19 Nov, 2017 1 commit
  15. 12 Sep, 2017 1 commit
  16. 09 Aug, 2017 1 commit
    • Leigh Stoller's avatar
      Various changes to MLE support, related to issue #317: · 57def35b
      Leigh Stoller authored
      1. We now allow lans to be implemented by a path. We did not allow this
         before, cause some of the sanity checking code was a pain to
         implement for lans. Well, no more sanity checking, the user is
         responsible for doing things correctly (after all, they are doing
         experiments with their own switches!).
      2. We now allow topologies with more then one switch to be wired
         together. The wires between switches are marked as "trunk" wires,
         which informs the configuration generation code in libosload_switch
         to create the trunks and do the little tagged/untagged magic that is
         required on procurve switches. The same information is used to mark
         the the logical wires between switches as trunks.
         Aside: this stuff needs some work; we have spanning tree on by
         default, which causes the trunks to not work correctly. When I turn
         that off, things start working. So need some help from others who now
         about spanning tree stuff.
      3. Serious kludging in the Interface and Port libraries related to
         choice of primary keys in the wires table. In order to insert a
         logical wire (or interface) that represents a connection setup by the
         apcon, we have to overload the primary key since the node_id1 side of
         the logical wires is the same as the physical wire to the apcon. We
         have to have overload the node_id2 side too, but that is really just
         a problem when wiring two switches together. Anyway, the kludge just
         maps card1 to a different id, and the Port library unmaps it. It will
         do for now, but really need logical wires to be done better then
  17. 03 May, 2017 1 commit
  18. 17 Apr, 2017 1 commit
    • Leigh Stoller's avatar
      Three changes: · 27340905
      Leigh Stoller authored
      1. Fix up multi architecture code wrt auxtypes (say, pvcm). I was
         failing to treat "d710-vm" as a node with a specified type, and so
         were doing multiple mapper runs with different architectures. This is
         cause an auxtype is not really a first class type object, but it is
         now, enough to recognize it as such.
         Aside; vtypes are still a potential problem, need to give this more
      2. Use the reservation MaxSwapInMap() to determine if the request is
         asking for more nodes of a specific type then allowed; do not bother
         to run assign, bail right away. We can do this we now track how many
         nodes of a specific type have been requested, for the multi
         architecture stuff. So might as well put to another good use.
         This close issue #236.
      3. Add reservation system information dump to resinfo.log for post
         mortem debugging.
  19. 15 Feb, 2017 1 commit
  20. 20 Jan, 2017 1 commit
  21. 07 Jan, 2017 1 commit
    • Leigh Stoller's avatar
      Two minor fixes: · edde5522
      Leigh Stoller authored
      1. For multi-architecture, being fixed to a specific node is the same as
         being fixed to a specific type.
      2. Watch for return value from nalloc, where -1 becomes 255. Hate that.
  22. 08 Dec, 2016 1 commit
  23. 07 Nov, 2016 1 commit
  24. 02 Nov, 2016 1 commit
  25. 31 Oct, 2016 1 commit
  26. 14 Oct, 2016 1 commit
  27. 11 Oct, 2016 1 commit
  28. 06 Oct, 2016 1 commit
  29. 29 Sep, 2016 2 commits
    • Mike Hibler's avatar
      Fix the wording of a warning message. · ee854767
      Mike Hibler authored
    • Mike Hibler's avatar
      Machinery for supporting multiple RO/RW clones of a dataset in one experiment. · 72fb6763
      Mike Hibler authored
      Mostly ptopgen/libvtop changes to get things through assign.
      Added a new virt_blockstore_attribute, 'prereserve' that can be applied to
      a RW clone to pre-allocate the full amount of space allocated to the volume
      being cloned. This is instead of the default "sparse" clone which could run
      out of space at an inopportune time if the containing pool runs out of space.
      But it doesn't work yet.
      Everything is there in the front end to do the necessary capacity checks and
      allocations of space, but then I discovered that ZFS doesn't readily support
      a non-sparse clone! You can do this, I think, by tweaking the "refreserved"
      attribute of the volume after it is created but that would have to be done
      behind the back of FreeNAS and I would have to do some more testing before I
      am willing to go here.
      So for now, all clones are sparse and no one is charged for their usage.
  30. 26 Sep, 2016 1 commit
  31. 20 Sep, 2016 1 commit
    • Mike Hibler's avatar
      Initial support for ephemeral RW clones of persistent blockstores. · f98ab0e5
      Mike Hibler authored
      Using "set-rwclone" ala:
          set $bsobj [$ns blockstore]
          $bsobj set-lease "emulab-ops/bar"
          $bsobj set-node $node
          $bsobj set-rwclone 1
      in your NS file will create a clone of the indicated persistent blockstore.
      Somewhat limited in utility since you can only have one clone of a
      particular blockstore per experiment.
  32. 15 Sep, 2016 1 commit
  33. 29 Aug, 2016 1 commit
  34. 16 May, 2016 1 commit
  35. 11 May, 2016 1 commit
  36. 09 May, 2016 1 commit
  37. 25 Apr, 2016 1 commit
  38. 18 Apr, 2016 1 commit