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 2014/08/29 20:52:33 UTC

git commit: Fail when no command provided with shell enabled in docker.

Repository: mesos
Updated Branches:
  refs/heads/master 9870284a9 -> dece99c6c


Fail when no command provided with shell enabled in docker.

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


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

Branch: refs/heads/master
Commit: dece99c6ccabf8522b40f592fafc0a0e41407af1
Parents: 9870284
Author: Timothy Chen <tn...@apache.org>
Authored: Fri Aug 29 11:52:00 2014 -0700
Committer: Jie Yu <yu...@gmail.com>
Committed: Fri Aug 29 11:52:00 2014 -0700

----------------------------------------------------------------------
 src/docker/docker.cpp      |  3 +++
 src/tests/docker_tests.cpp | 28 +++++++++++++++++++++++++++-
 2 files changed, 30 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/dece99c6/src/docker/docker.cpp
----------------------------------------------------------------------
diff --git a/src/docker/docker.cpp b/src/docker/docker.cpp
index ad5886b..af51ac9 100644
--- a/src/docker/docker.cpp
+++ b/src/docker/docker.cpp
@@ -325,6 +325,9 @@ Future<Nothing> Docker::run(
   argv.push_back(image);
 
   if (commandInfo.shell()) {
+    if (!commandInfo.has_value()) {
+      return Failure("Shell specified but no command value provided");
+    }
     argv.push_back("/bin/sh");
     argv.push_back("-c");
     argv.push_back(commandInfo.value());

http://git-wip-us.apache.org/repos/asf/mesos/blob/dece99c6/src/tests/docker_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/docker_tests.cpp b/src/tests/docker_tests.cpp
index 3d02702..826a8c1 100644
--- a/src/tests/docker_tests.cpp
+++ b/src/tests/docker_tests.cpp
@@ -41,7 +41,7 @@ using std::list;
 using std::string;
 
 
-// This test tests the functionality of the  docker's interfaces.
+// This test tests the functionality of the docker's interfaces.
 TEST(DockerTest, ROOT_DOCKER_interface)
 {
   string containerName = "mesos-docker-test";
@@ -193,3 +193,29 @@ TEST(DockerTest, ROOT_DOCKER_interface)
     EXPECT_NE("/" + containerName, container.name);
   }
 }
+
+
+TEST(DockerTest, ROOT_DOCKER_CheckCommandWithShell)
+{
+  Docker docker = Docker::create(tests::flags.docker, false).get();
+
+  ContainerInfo containerInfo;
+  containerInfo.set_type(ContainerInfo::DOCKER);
+
+  ContainerInfo::DockerInfo dockerInfo;
+  dockerInfo.set_image("busybox");
+  containerInfo.mutable_docker()->CopyFrom(dockerInfo);
+
+  CommandInfo commandInfo;
+  commandInfo.set_shell(true);
+
+  Future<Nothing> run = docker.run(
+      containerInfo,
+      commandInfo,
+      "testContainer",
+      "dir",
+      "/mnt/mesos/sandbox",
+      None());
+
+  ASSERT_TRUE(run.isFailed());
+}