You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ji...@apache.org on 2017/07/01 00:23:31 UTC

[5/7] mesos git commit: Rename and deprecate the LinuxInfo capability_info field.

Rename and deprecate the LinuxInfo capability_info field.

For clarity, deprecate the LinuxInfo `capability_info`` field in
favor of a new `effective_capabilities` field.

Review: https://reviews.apache.org/r/60413/


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/31c7ad72
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/31c7ad72
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/31c7ad72

Branch: refs/heads/master
Commit: 31c7ad725a2c787a861c98129b4cf803dc0ba7ac
Parents: dd2374b
Author: James Peach <jp...@apache.org>
Authored: Fri Jun 30 17:12:33 2017 -0700
Committer: Jie Yu <yu...@gmail.com>
Committed: Fri Jun 30 17:12:33 2017 -0700

----------------------------------------------------------------------
 include/mesos/mesos.proto                                |  8 ++++++--
 include/mesos/v1/mesos.proto                             |  8 ++++++--
 src/cli/execute.cpp                                      |  2 +-
 .../containerizer/mesos/isolators/linux/capabilities.cpp | 11 +++++++++++
 .../containerizer/linux_capabilities_isolator_tests.cpp  |  2 +-
 5 files changed, 25 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/31c7ad72/include/mesos/mesos.proto
----------------------------------------------------------------------
diff --git a/include/mesos/mesos.proto b/include/mesos/mesos.proto
index 5fe28bc..4e4b279 100644
--- a/include/mesos/mesos.proto
+++ b/include/mesos/mesos.proto
@@ -2642,12 +2642,16 @@ message CapabilityInfo {
  * E.g, capabilities, limits etc.
  */
 message LinuxInfo {
-  // Represents the capability whitelist.
-  optional CapabilityInfo capability_info = 1;
+  // Since 1.4.0, deprecated in favor of `effective_capabilities`.
+  optional CapabilityInfo capability_info = 1 [deprecated = true];
 
   // The set of capabilities that are allowed but not initially
   // granted to tasks.
   optional CapabilityInfo bounding_capabilities = 2;
+
+  // Represents the set of capabilities that the task will
+  // be executed with.
+  optional CapabilityInfo effective_capabilities = 3;
 }
 
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/31c7ad72/include/mesos/v1/mesos.proto
----------------------------------------------------------------------
diff --git a/include/mesos/v1/mesos.proto b/include/mesos/v1/mesos.proto
index 091cecd..b8625d3 100644
--- a/include/mesos/v1/mesos.proto
+++ b/include/mesos/v1/mesos.proto
@@ -2625,12 +2625,16 @@ message CapabilityInfo {
  * E.g, capabilities, limits etc.
  */
 message LinuxInfo {
-  // Represents the capability whitelist.
-  optional CapabilityInfo capability_info = 1;
+  // Since 1.4.0, deprecated in favor of `effective_capabilities`.
+  optional CapabilityInfo capability_info = 1 [deprecated = true];
 
   // The set of capabilities that are allowed but not initially
   // granted to tasks.
   optional CapabilityInfo bounding_capabilities = 2;
+
+  // Represents the set of capabilities that the task will
+  // be executed with.
+  optional CapabilityInfo effective_capabilities = 3;
 }
 
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/31c7ad72/src/cli/execute.cpp
----------------------------------------------------------------------
diff --git a/src/cli/execute.cpp b/src/cli/execute.cpp
index 6e15344..9aafd80 100644
--- a/src/cli/execute.cpp
+++ b/src/cli/execute.cpp
@@ -835,7 +835,7 @@ static Result<ContainerInfo> getContainerInfo(
     if (capabilities.isSome()) {
       containerInfo
         .mutable_linux_info()
-        ->mutable_capability_info()
+        ->mutable_effective_capabilities()
         ->CopyFrom(capabilities.get());
     }
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/31c7ad72/src/slave/containerizer/mesos/isolators/linux/capabilities.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/linux/capabilities.cpp b/src/slave/containerizer/mesos/isolators/linux/capabilities.cpp
index 5c79619..f85a84d 100644
--- a/src/slave/containerizer/mesos/isolators/linux/capabilities.cpp
+++ b/src/slave/containerizer/mesos/isolators/linux/capabilities.cpp
@@ -89,10 +89,21 @@ Future<Option<ContainerLaunchInfo>> LinuxCapabilitiesIsolatorProcess::prepare(
       containerConfig.container_info().has_linux_info()) {
     const auto& linuxInfo = containerConfig.container_info().linux_info();
 
+    if (linuxInfo.has_capability_info() &&
+        linuxInfo.has_effective_capabilities()) {
+      return Failure(
+          "Only one of 'capability_info' or 'effective_capabilities' "
+          "is allowed");
+    }
+
     if (linuxInfo.has_capability_info()) {
       effective = linuxInfo.capability_info();
     }
 
+    if (linuxInfo.has_effective_capabilities()) {
+      effective = linuxInfo.effective_capabilities();
+    }
+
     if (linuxInfo.has_bounding_capabilities()) {
       bounding = linuxInfo.bounding_capabilities();
     }

http://git-wip-us.apache.org/repos/asf/mesos/blob/31c7ad72/src/tests/containerizer/linux_capabilities_isolator_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/linux_capabilities_isolator_tests.cpp b/src/tests/containerizer/linux_capabilities_isolator_tests.cpp
index a0b8b4b..8050876 100644
--- a/src/tests/containerizer/linux_capabilities_isolator_tests.cpp
+++ b/src/tests/containerizer/linux_capabilities_isolator_tests.cpp
@@ -279,7 +279,7 @@ TEST_P(LinuxCapabilitiesIsolatorTest, ROOT_Ping)
     LinuxInfo* linux = container->mutable_linux_info();
 
     if (param.framework_effective.isSome()) {
-      CapabilityInfo* capabilities = linux->mutable_capability_info();
+      CapabilityInfo* capabilities = linux->mutable_effective_capabilities();
       capabilities->CopyFrom(param.framework_effective.get());
     }