-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/47707/
-----------------------------------------------------------

Review request for mesos, Benjamin Mahler and Jie Yu.


Bugs: MESOS-5256
    https://issues.apache.org/jira/browse/MESOS-5256


Repository: mesos


Description
-------

Previously, the `Containerizer` class contained a static `resources()`
function for enumerating all of the resources available on an agent.
This made it hard to add new resources to this enumeration that were,
for example, containerizer-specific or tied to a new isolator module
loaded at runtime.

This commit refactors the resource enumeration logic to allow each
containerizer to enumerate resources itself. It does this by adding a
new virtual `resources()` function, whose default implementation
includes the same logic as the old static version of `resources()`.
Individual containerizers simply overwrite this function to do their
own enumeration if they want to.

Similar logic exists to push resource enumeration down into isolators
as well. As such, the logic for the Nvidia GPU resource enumeration has
been moved down into the Nvidia GPU isolator instead of being
hard-coded into the mesos containerizer itself.


Diffs
-----

  include/mesos/slave/isolator.hpp 4be8c2bb409052e2e07138483408209384f41e23 
  src/slave/containerizer/composing.hpp 
f3eebd19bc9e6b3b8a969a2ad967b3e2909e0ee4 
  src/slave/containerizer/composing.cpp 
15d059f0bbda4e8cb93c65c09327dde1e34d3e7b 
  src/slave/containerizer/containerizer.hpp 
ff78b4d0fd4a3b862f6019fc757c16b7367cd3cf 
  src/slave/containerizer/containerizer.cpp 
faa0c789dda8a6f36fdb6217b0bae270b6b8f2e2 
  src/slave/containerizer/mesos/containerizer.hpp 
a1a00020668f6da8d611f26e5637afffc87d09ba 
  src/slave/containerizer/mesos/containerizer.cpp 
75e5a32a3e70ec60a6800e21a621673184ea0956 
  src/slave/containerizer/mesos/isolator.hpp 
bacd86af42d16cb7c9b6622dfb298dcaa7007b75 
  src/slave/containerizer/mesos/isolator.cpp 
253ff3cea8aff3e7a3051fb5a763cc081f455f18 
  src/slave/containerizer/mesos/isolators/cgroups/devices/gpus/nvidia.hpp 
502204650192d5ea44aa631eac8eb37e051843f0 
  src/slave/containerizer/mesos/isolators/cgroups/devices/gpus/nvidia.cpp 
8f81cb79c10261670efc9eaa8614751854f53806 
  src/slave/slave.cpp ce0e7b1f1d17c3b82d835b0a6296ed7b1e9eeac1 

Diff: https://reviews.apache.org/r/47707/diff/


Testing
-------

make -j check ( which fails on one test -- see 
https://reviews.apache.org/r/47708/ )


Thanks,

Kevin Klues

Reply via email to