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 2016/05/02 19:42:55 UTC

mesos git commit: Made volume isolator logic injectable for MockDriverClient.

Repository: mesos
Updated Branches:
  refs/heads/master 237f1a44d -> 2c6eeefe1


Made volume isolator logic injectable for MockDriverClient.

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


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

Branch: refs/heads/master
Commit: 2c6eeefe13c5706da70328af6cea14f802121bf2
Parents: 237f1a4
Author: Gilbert Song <so...@gmail.com>
Authored: Mon May 2 10:38:44 2016 -0700
Committer: Jie Yu <yu...@gmail.com>
Committed: Mon May 2 10:39:40 2016 -0700

----------------------------------------------------------------------
 .../mesos/isolators/docker/volume/isolator.cpp     | 17 ++++++++++++++++-
 .../mesos/isolators/docker/volume/isolator.hpp     |  5 +++++
 2 files changed, 21 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/2c6eeefe/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp b/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp
index 73d6370..9cc9de0 100644
--- a/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp
+++ b/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp
@@ -80,6 +80,21 @@ Try<Isolator*> DockerVolumeIsolatorProcess::create(const Flags& flags)
         "Unable to create docker volume driver client: " + client.error());
   }
 
+  Try<Isolator*> isolator =
+    DockerVolumeIsolatorProcess::_create(flags, client.get());
+
+  if (isolator.isError()) {
+    return Error(isolator.error());
+  }
+
+  return isolator.get();
+}
+
+
+Try<Isolator*> DockerVolumeIsolatorProcess::_create(
+    const Flags& flags,
+    const Owned<DriverClient>& client)
+{
   // Create the docker volume information root directory if it does
   // not exist, this directory is used to checkpoint the docker
   // volumes used by containers.
@@ -105,7 +120,7 @@ Try<Isolator*> DockerVolumeIsolatorProcess::create(const Flags& flags)
       new DockerVolumeIsolatorProcess(
           flags,
           rootDir.get(),
-          client.get()));
+          client));
 
   return new MesosIsolator(process);
 }

http://git-wip-us.apache.org/repos/asf/mesos/blob/2c6eeefe/src/slave/containerizer/mesos/isolators/docker/volume/isolator.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/docker/volume/isolator.hpp b/src/slave/containerizer/mesos/isolators/docker/volume/isolator.hpp
index 5402973..01777d4 100644
--- a/src/slave/containerizer/mesos/isolators/docker/volume/isolator.hpp
+++ b/src/slave/containerizer/mesos/isolators/docker/volume/isolator.hpp
@@ -45,6 +45,11 @@ class DockerVolumeIsolatorProcess : public MesosIsolatorProcess
 public:
   static Try<mesos::slave::Isolator*> create(const Flags& flags);
 
+  // This allows the driver client to be mock for testing.
+  static Try<mesos::slave::Isolator*> _create(
+      const Flags& flags,
+      const process::Owned<docker::volume::DriverClient>& client);
+
   virtual ~DockerVolumeIsolatorProcess();
 
   virtual process::Future<Nothing> recover(