You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by id...@apache.org on 2015/06/02 00:04:18 UTC

mesos git commit: Add container rootfs to Isolator::prepare().

Repository: mesos
Updated Branches:
  refs/heads/master 08f00e786 -> 610d4fffd


Add container rootfs to Isolator::prepare().

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


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

Branch: refs/heads/master
Commit: 610d4fffd0511d7ddce286ae987264cc5892f76c
Parents: 08f00e7
Author: Ian Downes <id...@twitter.com>
Authored: Thu May 7 14:28:46 2015 -0700
Committer: Ian Downes <id...@twitter.com>
Committed: Mon Jun 1 14:51:27 2015 -0700

----------------------------------------------------------------------
 include/mesos/slave/isolator.hpp                    |  2 ++
 src/slave/containerizer/isolator.cpp                |  2 ++
 .../containerizer/isolators/cgroups/cpushare.cpp    |  1 +
 .../containerizer/isolators/cgroups/cpushare.hpp    |  7 ++++---
 src/slave/containerizer/isolators/cgroups/mem.cpp   |  1 +
 src/slave/containerizer/isolators/cgroups/mem.hpp   |  3 ++-
 .../containerizer/isolators/cgroups/perf_event.cpp  |  1 +
 .../containerizer/isolators/cgroups/perf_event.hpp  |  5 +++--
 .../containerizer/isolators/filesystem/shared.cpp   |  1 +
 .../containerizer/isolators/filesystem/shared.hpp   |  1 +
 .../containerizer/isolators/namespaces/pid.cpp      |  1 +
 .../containerizer/isolators/namespaces/pid.hpp      |  1 +
 src/slave/containerizer/isolators/posix.hpp         |  1 +
 src/slave/containerizer/isolators/posix/disk.cpp    |  1 +
 src/slave/containerizer/isolators/posix/disk.hpp    |  1 +
 src/slave/containerizer/mesos/containerizer.cpp     |  4 +++-
 src/tests/containerizer_tests.cpp                   | 16 +++++++++-------
 src/tests/isolator.hpp                              |  3 ++-
 src/tests/isolator_tests.cpp                        | 11 +++++++++++
 19 files changed, 48 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/610d4fff/include/mesos/slave/isolator.hpp
----------------------------------------------------------------------
diff --git a/include/mesos/slave/isolator.hpp b/include/mesos/slave/isolator.hpp
index b4fe1ff..18edc03 100644
--- a/include/mesos/slave/isolator.hpp
+++ b/include/mesos/slave/isolator.hpp
@@ -98,6 +98,7 @@ public:
       const ContainerID& containerId,
       const ExecutorInfo& executorInfo,
       const std::string& directory,
+      const Option<std::string>& rootfs,
       const Option<std::string>& user);
 
   // Isolate the executor.
@@ -144,6 +145,7 @@ public:
       const ContainerID& containerId,
       const ExecutorInfo& executorInfo,
       const std::string& directory,
+      const Option<std::string>& rootfs,
       const Option<std::string>& user) = 0;
 
   virtual process::Future<Nothing> isolate(

http://git-wip-us.apache.org/repos/asf/mesos/blob/610d4fff/src/slave/containerizer/isolator.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/isolator.cpp b/src/slave/containerizer/isolator.cpp
index d99f47e..d51ecc9 100644
--- a/src/slave/containerizer/isolator.cpp
+++ b/src/slave/containerizer/isolator.cpp
@@ -57,6 +57,7 @@ Future<Option<CommandInfo>> Isolator::prepare(
     const ContainerID& containerId,
     const ExecutorInfo& executorInfo,
     const string& directory,
+    const Option<string>& rootfs,
     const Option<string>& user)
 {
   return dispatch(process.get(),
@@ -64,6 +65,7 @@ Future<Option<CommandInfo>> Isolator::prepare(
                   containerId,
                   executorInfo,
                   directory,
+                  rootfs,
                   user);
 }
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/610d4fff/src/slave/containerizer/isolators/cgroups/cpushare.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/isolators/cgroups/cpushare.cpp b/src/slave/containerizer/isolators/cgroups/cpushare.cpp
index 214ba23..5bd3525 100644
--- a/src/slave/containerizer/isolators/cgroups/cpushare.cpp
+++ b/src/slave/containerizer/isolators/cgroups/cpushare.cpp
@@ -255,6 +255,7 @@ Future<Option<CommandInfo>> CgroupsCpushareIsolatorProcess::prepare(
     const ContainerID& containerId,
     const ExecutorInfo& executorInfo,
     const string& directory,
+    const Option<string>& rootfs,
     const Option<string>& user)
 {
   if (infos.contains(containerId)) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/610d4fff/src/slave/containerizer/isolators/cgroups/cpushare.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/isolators/cgroups/cpushare.hpp b/src/slave/containerizer/isolators/cgroups/cpushare.hpp
index 14adf0a..2118c97 100644
--- a/src/slave/containerizer/isolators/cgroups/cpushare.hpp
+++ b/src/slave/containerizer/isolators/cgroups/cpushare.hpp
@@ -48,10 +48,11 @@ public:
       const std::list<mesos::slave::ExecutorRunState>& states,
       const hashset<ContainerID>& orphans);
 
-  virtual process::Future<Option<CommandInfo> > prepare(
+  virtual process::Future<Option<CommandInfo>> prepare(
       const ContainerID& containerId,
       const ExecutorInfo& executorInfo,
       const std::string& directory,
+      const Option<std::string>& rootfs,
       const Option<std::string>& user);
 
   virtual process::Future<Nothing> isolate(
@@ -77,9 +78,9 @@ private:
       const hashmap<std::string, std::string>& hierarchies,
       const std::vector<std::string>& subsystems);
 
-  virtual process::Future<std::list<Nothing> > _cleanup(
+  virtual process::Future<std::list<Nothing>> _cleanup(
       const ContainerID& containerId,
-      const process::Future<std::list<Nothing> >& future);
+      const process::Future<std::list<Nothing>>& future);
 
   struct Info
   {

http://git-wip-us.apache.org/repos/asf/mesos/blob/610d4fff/src/slave/containerizer/isolators/cgroups/mem.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/isolators/cgroups/mem.cpp b/src/slave/containerizer/isolators/cgroups/mem.cpp
index d3b77d4..9647e79 100644
--- a/src/slave/containerizer/isolators/cgroups/mem.cpp
+++ b/src/slave/containerizer/isolators/cgroups/mem.cpp
@@ -236,6 +236,7 @@ Future<Option<CommandInfo>> CgroupsMemIsolatorProcess::prepare(
     const ContainerID& containerId,
     const ExecutorInfo& executorInfo,
     const string& directory,
+    const Option<string>& rootfs,
     const Option<string>& user)
 {
   if (infos.contains(containerId)) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/610d4fff/src/slave/containerizer/isolators/cgroups/mem.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/isolators/cgroups/mem.hpp b/src/slave/containerizer/isolators/cgroups/mem.hpp
index c8e1ba1..dc75201 100644
--- a/src/slave/containerizer/isolators/cgroups/mem.hpp
+++ b/src/slave/containerizer/isolators/cgroups/mem.hpp
@@ -48,10 +48,11 @@ public:
       const std::list<mesos::slave::ExecutorRunState>& states,
       const hashset<ContainerID>& orphans);
 
-  virtual process::Future<Option<CommandInfo> > prepare(
+  virtual process::Future<Option<CommandInfo>> prepare(
       const ContainerID& containerId,
       const ExecutorInfo& executorInfo,
       const std::string& directory,
+      const Option<std::string>& rootfs,
       const Option<std::string>& user);
 
   virtual process::Future<Nothing> isolate(

http://git-wip-us.apache.org/repos/asf/mesos/blob/610d4fff/src/slave/containerizer/isolators/cgroups/perf_event.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/isolators/cgroups/perf_event.cpp b/src/slave/containerizer/isolators/cgroups/perf_event.cpp
index 37967b5..3e5153f 100644
--- a/src/slave/containerizer/isolators/cgroups/perf_event.cpp
+++ b/src/slave/containerizer/isolators/cgroups/perf_event.cpp
@@ -225,6 +225,7 @@ Future<Option<CommandInfo>> CgroupsPerfEventIsolatorProcess::prepare(
     const ContainerID& containerId,
     const ExecutorInfo& executorInfo,
     const string& directory,
+    const Option<string>& rootfs,
     const Option<string>& user)
 {
   if (infos.contains(containerId)) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/610d4fff/src/slave/containerizer/isolators/cgroups/perf_event.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/isolators/cgroups/perf_event.hpp b/src/slave/containerizer/isolators/cgroups/perf_event.hpp
index 6679719..560cd03 100644
--- a/src/slave/containerizer/isolators/cgroups/perf_event.hpp
+++ b/src/slave/containerizer/isolators/cgroups/perf_event.hpp
@@ -46,10 +46,11 @@ public:
       const std::list<mesos::slave::ExecutorRunState>& states,
       const hashset<ContainerID>& orphans);
 
-  virtual process::Future<Option<CommandInfo> > prepare(
+  virtual process::Future<Option<CommandInfo>> prepare(
       const ContainerID& containerId,
       const ExecutorInfo& executorInfo,
       const std::string& directory,
+      const Option<std::string>& rootfs,
       const Option<std::string>& user);
 
   virtual process::Future<Nothing> isolate(
@@ -81,7 +82,7 @@ private:
 
   void _sample(
       const process::Time& next,
-      const process::Future<hashmap<std::string, PerfStatistics> >& statistics);
+      const process::Future<hashmap<std::string, PerfStatistics>>& statistics);
 
   virtual process::Future<Nothing> _cleanup(const ContainerID& containerId);
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/610d4fff/src/slave/containerizer/isolators/filesystem/shared.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/isolators/filesystem/shared.cpp b/src/slave/containerizer/isolators/filesystem/shared.cpp
index 101d6da..5049306 100644
--- a/src/slave/containerizer/isolators/filesystem/shared.cpp
+++ b/src/slave/containerizer/isolators/filesystem/shared.cpp
@@ -76,6 +76,7 @@ Future<Option<CommandInfo>> SharedFilesystemIsolatorProcess::prepare(
     const ContainerID& containerId,
     const ExecutorInfo& executorInfo,
     const string& directory,
+    const Option<string>& rootfs,
     const Option<string>& user)
 {
   if (executorInfo.has_container() &&

http://git-wip-us.apache.org/repos/asf/mesos/blob/610d4fff/src/slave/containerizer/isolators/filesystem/shared.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/isolators/filesystem/shared.hpp b/src/slave/containerizer/isolators/filesystem/shared.hpp
index 68ed54d..08c6ffe 100644
--- a/src/slave/containerizer/isolators/filesystem/shared.hpp
+++ b/src/slave/containerizer/isolators/filesystem/shared.hpp
@@ -47,6 +47,7 @@ public:
       const ContainerID& containerId,
       const ExecutorInfo& executorInfo,
       const std::string& directory,
+      const Option<std::string>& rootfs,
       const Option<std::string>& user);
 
   virtual process::Future<Nothing> isolate(

http://git-wip-us.apache.org/repos/asf/mesos/blob/610d4fff/src/slave/containerizer/isolators/namespaces/pid.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/isolators/namespaces/pid.cpp b/src/slave/containerizer/isolators/namespaces/pid.cpp
index b426d08..c6b28aa 100644
--- a/src/slave/containerizer/isolators/namespaces/pid.cpp
+++ b/src/slave/containerizer/isolators/namespaces/pid.cpp
@@ -157,6 +157,7 @@ Future<Option<CommandInfo>> NamespacesPidIsolatorProcess::prepare(
     const ContainerID& containerId,
     const ExecutorInfo& executorInfo,
     const string& directory,
+    const Option<string>& rootfs,
     const Option<string>& user)
 {
   list<string> commands;

http://git-wip-us.apache.org/repos/asf/mesos/blob/610d4fff/src/slave/containerizer/isolators/namespaces/pid.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/isolators/namespaces/pid.hpp b/src/slave/containerizer/isolators/namespaces/pid.hpp
index 187cbe8..6b24e29 100644
--- a/src/slave/containerizer/isolators/namespaces/pid.hpp
+++ b/src/slave/containerizer/isolators/namespaces/pid.hpp
@@ -64,6 +64,7 @@ public:
       const ContainerID& containerId,
       const ExecutorInfo& executorInfo,
       const std::string& directory,
+      const Option<std::string>& rootfs,
       const Option<std::string>& user);
 
   virtual process::Future<Nothing> isolate(

http://git-wip-us.apache.org/repos/asf/mesos/blob/610d4fff/src/slave/containerizer/isolators/posix.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/isolators/posix.hpp b/src/slave/containerizer/isolators/posix.hpp
index 9b43f02..271061e 100644
--- a/src/slave/containerizer/isolators/posix.hpp
+++ b/src/slave/containerizer/isolators/posix.hpp
@@ -66,6 +66,7 @@ public:
       const ContainerID& containerId,
       const ExecutorInfo& executorInfo,
       const std::string& directory,
+      const Option<std::string>& rootfs,
       const Option<std::string>& user)
   {
     if (promises.contains(containerId)) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/610d4fff/src/slave/containerizer/isolators/posix/disk.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/isolators/posix/disk.cpp b/src/slave/containerizer/isolators/posix/disk.cpp
index caf81e8..b2f995c 100644
--- a/src/slave/containerizer/isolators/posix/disk.cpp
+++ b/src/slave/containerizer/isolators/posix/disk.cpp
@@ -105,6 +105,7 @@ Future<Option<CommandInfo>> PosixDiskIsolatorProcess::prepare(
     const ContainerID& containerId,
     const ExecutorInfo& executorInfo,
     const string& directory,
+    const Option<string>& rootfs,
     const Option<string>& user)
 {
   if (infos.contains(containerId)) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/610d4fff/src/slave/containerizer/isolators/posix/disk.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/isolators/posix/disk.hpp b/src/slave/containerizer/isolators/posix/disk.hpp
index f3f79d8..5dfa815 100644
--- a/src/slave/containerizer/isolators/posix/disk.hpp
+++ b/src/slave/containerizer/isolators/posix/disk.hpp
@@ -85,6 +85,7 @@ public:
       const ContainerID& containerId,
       const ExecutorInfo& executorInfo,
       const std::string& directory,
+      const Option<std::string>& rootfs,
       const Option<std::string>& user);
 
   virtual process::Future<Nothing> isolate(

http://git-wip-us.apache.org/repos/asf/mesos/blob/610d4fff/src/slave/containerizer/mesos/containerizer.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/containerizer.cpp b/src/slave/containerizer/mesos/containerizer.cpp
index c363605..8c102fb 100644
--- a/src/slave/containerizer/mesos/containerizer.cpp
+++ b/src/slave/containerizer/mesos/containerizer.cpp
@@ -607,11 +607,12 @@ static Future<list<Option<CommandInfo>>> _prepare(
     const ContainerID& containerId,
     const ExecutorInfo& executorInfo,
     const string& directory,
+    const Option<string>& rootfs,
     const Option<string>& user,
     const list<Option<CommandInfo>> commands)
 {
   // Propagate any failure.
-  return isolator->prepare(containerId, executorInfo, directory, user)
+  return isolator->prepare(containerId, executorInfo, directory, rootfs, user)
     .then(lambda::bind(&accumulate, commands, lambda::_1));
 }
 
@@ -636,6 +637,7 @@ Future<list<Option<CommandInfo>>> MesosContainerizerProcess::prepare(
                             containerId,
                             executorInfo,
                             directory,
+                            containers_[containerId]->rootfs,
                             user,
                             lambda::_1));
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/610d4fff/src/tests/containerizer_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer_tests.cpp b/src/tests/containerizer_tests.cpp
index 3c9f958..0cdb2d2 100644
--- a/src/tests/containerizer_tests.cpp
+++ b/src/tests/containerizer_tests.cpp
@@ -73,9 +73,9 @@ public:
   // 'prepare' command(s).
   Try<MesosContainerizer*> CreateContainerizer(
       Fetcher* fetcher,
-      const vector<Option<CommandInfo> >& prepares)
+      const vector<Option<CommandInfo>>& prepares)
   {
-    vector<Owned<Isolator> > isolators;
+    vector<Owned<Isolator>> isolators;
 
     foreach (const Option<CommandInfo>& prepare, prepares) {
       Try<Isolator*> isolator = tests::TestIsolatorProcess::create(prepare);
@@ -107,7 +107,7 @@ public:
       Fetcher* fetcher,
       const Option<CommandInfo>& prepare)
   {
-    vector<Option<CommandInfo> > prepares;
+    vector<Option<CommandInfo>> prepares;
     prepares.push_back(prepare);
 
     return CreateContainerizer(fetcher, prepares);
@@ -218,7 +218,7 @@ TEST_F(MesosContainerizerIsolatorPreparationTest, MultipleScripts)
   string file1 = path::join(directory, "child.script.executed.1");
   string file2 = path::join(directory, "child.script.executed.2");
 
-  vector<Option<CommandInfo> > prepares;
+  vector<Option<CommandInfo>> prepares;
   // This isolator prepare command one will succeed if called first, otherwise
   // it won't get run.
   prepares.push_back(CREATE_COMMAND_INFO("touch " + file1 + " && exit 0"));
@@ -376,7 +376,7 @@ public:
     EXPECT_CALL(*this, cleanup(_))
       .WillRepeatedly(Return(Nothing()));
 
-    EXPECT_CALL(*this, prepare(_, _, _, _))
+    EXPECT_CALL(*this, prepare(_, _, _, _, _))
       .WillRepeatedly(Invoke(this, &MockIsolatorProcess::_prepare));
   }
 
@@ -386,18 +386,20 @@ public:
           const list<mesos::slave::ExecutorRunState>&,
           const hashset<ContainerID>&));
 
-  MOCK_METHOD4(
+  MOCK_METHOD5(
       prepare,
       process::Future<Option<CommandInfo>>(
           const ContainerID&,
           const ExecutorInfo&,
           const string&,
+          const Option<string>&,
           const Option<string>&));
 
   virtual process::Future<Option<CommandInfo>> _prepare(
       const ContainerID& containerId,
       const ExecutorInfo& executorInfo,
       const string& directory,
+      const Option<string>& rootfs,
       const Option<string>& user)
   {
     return None();
@@ -501,7 +503,7 @@ TEST_F(MesosContainerizerDestroyTest, DestroyWhilePreparing)
   Future<Nothing> prepare;
   Promise<Option<CommandInfo>> promise;
   // Simulate a long prepare from the isolator.
-  EXPECT_CALL(*isolatorProcess, prepare(_, _, _, _))
+  EXPECT_CALL(*isolatorProcess, prepare(_, _, _, _, _))
     .WillOnce(DoAll(FutureSatisfy(&prepare),
                     Return(promise.future())));
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/610d4fff/src/tests/isolator.hpp
----------------------------------------------------------------------
diff --git a/src/tests/isolator.hpp b/src/tests/isolator.hpp
index 7db13cd..fd6aec7 100644
--- a/src/tests/isolator.hpp
+++ b/src/tests/isolator.hpp
@@ -45,10 +45,11 @@ public:
           const std::list<mesos::slave::ExecutorRunState>&,
           const hashset<ContainerID>&));
 
-  virtual process::Future<Option<CommandInfo> > prepare(
+  virtual process::Future<Option<CommandInfo>> prepare(
       const ContainerID& containerId,
       const ExecutorInfo& executorInfo,
       const std::string& directory,
+      const Option<std::string>& rootfs,
       const Option<std::string>& user)
   {
     return commandInfo;

http://git-wip-us.apache.org/repos/asf/mesos/blob/610d4fff/src/tests/isolator_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/isolator_tests.cpp b/src/tests/isolator_tests.cpp
index acb1404..c635a4d 100644
--- a/src/tests/isolator_tests.cpp
+++ b/src/tests/isolator_tests.cpp
@@ -172,6 +172,7 @@ TYPED_TEST(CpuIsolatorTest, UserCpuUsage)
       containerId,
       executorInfo,
       dir.get(),
+      None(),
       None()));
 
   const string& file = path::join(dir.get(), "mesos_isolator_test_ready");
@@ -281,6 +282,7 @@ TYPED_TEST(CpuIsolatorTest, SystemCpuUsage)
       containerId,
       executorInfo,
       dir.get(),
+      None(),
       None()));
 
   const string& file = path::join(dir.get(), "mesos_isolator_test_ready");
@@ -392,6 +394,7 @@ TEST_F(RevocableCpuIsolatorTest, ROOT_CGROUPS_RevocableCpu)
         containerId,
         executorInfo,
         os::getcwd(),
+        None(),
         None()));
 
   vector<string> argv{"sleep", "100"};
@@ -463,6 +466,7 @@ TEST_F(LimitedCpuIsolatorTest, ROOT_CGROUPS_Cfs)
       containerId,
       executorInfo,
       dir.get(),
+      None(),
       None()));
 
   // Generate random numbers to max out a single core. We'll run this for 0.5
@@ -573,6 +577,7 @@ TEST_F(LimitedCpuIsolatorTest, ROOT_CGROUPS_Cfs_Big_Quota)
       containerId,
       executorInfo,
       dir.get(),
+      None(),
       None()));
 
   int pipes[2];
@@ -655,6 +660,7 @@ TEST_F(LimitedCpuIsolatorTest, ROOT_CGROUPS_Pids_and_Tids)
       containerId,
       executorInfo,
       dir.get(),
+      None(),
       None()));
 
   // Right after the creation of the cgroup, which happens in
@@ -778,6 +784,7 @@ TYPED_TEST(MemIsolatorTest, MemUsage)
       containerId,
       executorInfo,
       dir.get(),
+      None(),
       None()));
 
   MemoryTestHelper helper;
@@ -840,6 +847,7 @@ TEST_F(PerfEventIsolatorTest, ROOT_CGROUPS_Sample)
       containerId,
       executorInfo,
       dir.get(),
+      None(),
       None()));
 
   // This first sample is likely to be empty because perf hasn't
@@ -931,6 +939,7 @@ TEST_F(SharedFilesystemIsolatorTest, ROOT_RelativeVolume)
         containerId,
         executorInfo,
         flags.work_dir,
+        None(),
         None());
 
   AWAIT_READY(prepare);
@@ -1028,6 +1037,7 @@ TEST_F(SharedFilesystemIsolatorTest, ROOT_AbsoluteVolume)
         containerId,
         executorInfo,
         flags.work_dir,
+        None(),
         None());
 
   AWAIT_READY(prepare);
@@ -1195,6 +1205,7 @@ TYPED_TEST(UserCgroupIsolatorTest, ROOT_CGROUPS_UserCgroup)
       containerId,
       executorInfo,
       os::getcwd(),
+      None(),
       UNPRIVILEGED_USERNAME));
 
   // Isolators don't provide a way to determine the cgroups they use