Created staging dir only when needed.

Created staging dir only when needed.

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


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

Branch: refs/heads/1.1.x
Commit: 84399975df5a482587598d8d9528c555c0945acd
Parents: 8e79521
Author: Qian Zhang <zhq527...@gmail.com>
Authored: Fri Aug 11 15:53:55 2017 -0700
Committer: Gilbert Song <songzihao1...@gmail.com>
Committed: Fri Aug 11 16:28:33 2017 -0700

----------------------------------------------------------------------
 .../mesos/provisioner/docker/store.cpp             | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/84399975/src/slave/containerizer/mesos/provisioner/docker/store.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/provisioner/docker/store.cpp 
b/src/slave/containerizer/mesos/provisioner/docker/store.cpp
index 9dccd06..3a46c20 100644
--- a/src/slave/containerizer/mesos/provisioner/docker/store.cpp
+++ b/src/slave/containerizer/mesos/provisioner/docker/store.cpp
@@ -217,18 +217,19 @@ Future<Image> StoreProcess::_get(
     return image.get();
   }
 
-  Try<string> staging =
-    os::mkdtemp(paths::getStagingTempDir(flags.docker_store_dir));
-
-  if (staging.isError()) {
-    return Failure("Failed to create a staging directory: " + staging.error());
-  }
-
-  // If there is already an pulling going on for the given 'name', we
+  // If there is already a pulling going on for the given 'name', we
   // will skip the additional pulling.
   const string name = stringify(reference);
 
   if (!pulling.contains(name)) {
+    Try<string> staging =
+      os::mkdtemp(paths::getStagingTempDir(flags.docker_store_dir));
+
+    if (staging.isError()) {
+      return Failure(
+          "Failed to create a staging directory: " + staging.error());
+    }
+
     Owned<Promise<Image>> promise(new Promise<Image>());
 
     Future<Image> future = puller->pull(reference, staging.get())

Reply via email to