Repository: mesos
Updated Branches:
  refs/heads/master 1d32d37e0 -> 2190e6e83


Added a constants.hpp for provisioner.

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


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

Branch: refs/heads/master
Commit: 2190e6e83f0ee5c7e7a6ffc5f9f77d2597139a01
Parents: 1d32d37
Author: Qian Zhang <zhang...@cn.ibm.com>
Authored: Tue Oct 18 16:51:09 2016 -0700
Committer: Jie Yu <yujie....@gmail.com>
Committed: Tue Oct 18 16:51:09 2016 -0700

----------------------------------------------------------------------
 src/Makefile.am                                 |  1 +
 .../containerizer/mesos/provisioner/backend.cpp |  9 ++---
 .../mesos/provisioner/constants.hpp             | 34 ++++++++++++++++++
 .../mesos/provisioner/docker/paths.cpp          |  4 ++-
 src/slave/flags.cpp                             |  4 ++-
 .../containerizer/provisioner_appc_tests.cpp    | 13 ++++---
 .../containerizer/provisioner_backend_tests.cpp | 37 ++++++++++++--------
 7 files changed, 76 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/2190e6e8/src/Makefile.am
----------------------------------------------------------------------
diff --git a/src/Makefile.am b/src/Makefile.am
index 0a32f75..05fe8fa 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -967,6 +967,7 @@ libmesos_no_3rdparty_la_SOURCES +=                          
        \
   slave/containerizer/mesos/isolators/volume/sandbox_path.hpp          \
   slave/containerizer/mesos/isolators/windows.hpp                      \
   slave/containerizer/mesos/provisioner/backend.hpp                    \
+  slave/containerizer/mesos/provisioner/constants.hpp                  \
   slave/containerizer/mesos/provisioner/paths.hpp                      \
   slave/containerizer/mesos/provisioner/provisioner.hpp                        
\
   slave/containerizer/mesos/provisioner/store.hpp                      \

http://git-wip-us.apache.org/repos/asf/mesos/blob/2190e6e8/src/slave/containerizer/mesos/provisioner/backend.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/provisioner/backend.cpp 
b/src/slave/containerizer/mesos/provisioner/backend.cpp
index 9c258ed..157967f 100644
--- a/src/slave/containerizer/mesos/provisioner/backend.cpp
+++ b/src/slave/containerizer/mesos/provisioner/backend.cpp
@@ -23,6 +23,7 @@
 #endif
 
 #include "slave/containerizer/mesos/provisioner/backend.hpp"
+#include "slave/containerizer/mesos/provisioner/constants.hpp"
 
 #ifdef __linux__
 #include "slave/containerizer/mesos/provisioner/backends/aufs.hpp"
@@ -46,14 +47,14 @@ hashmap<string, Owned<Backend>> Backend::create(const 
Flags& flags)
   hashmap<string, Try<Owned<Backend>>(*)(const Flags&)> creators;
 
 #ifdef __linux__
-  creators.put("bind", &BindBackend::create);
+  creators.put(BIND_BACKEND, &BindBackend::create);
 
   Try<bool> aufsSupported = fs::supported("aufs");
   if (aufsSupported.isError()) {
     LOG(WARNING) << "Failed to check aufs availability: '"
                  << aufsSupported.error();
   } else if (aufsSupported.get()) {
-    creators.put("aufs", &AufsBackend::create);
+    creators.put(AUFS_BACKEND, &AufsBackend::create);
   }
 
   Try<bool> overlayfsSupported = fs::supported("overlayfs");
@@ -61,11 +62,11 @@ hashmap<string, Owned<Backend>> Backend::create(const 
Flags& flags)
     LOG(WARNING) << "Failed to check overlayfs availability: '"
                  << overlayfsSupported.error();
   } else if (overlayfsSupported.get()) {
-    creators.put("overlay", &OverlayBackend::create);
+    creators.put(OVERLAY_BACKEND, &OverlayBackend::create);
   }
 #endif // __linux__
 
-  creators.put("copy", &CopyBackend::create);
+  creators.put(COPY_BACKEND, &CopyBackend::create);
 
   hashmap<string, Owned<Backend>> backends;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/2190e6e8/src/slave/containerizer/mesos/provisioner/constants.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/provisioner/constants.hpp 
b/src/slave/containerizer/mesos/provisioner/constants.hpp
new file mode 100644
index 0000000..ab488eb
--- /dev/null
+++ b/src/slave/containerizer/mesos/provisioner/constants.hpp
@@ -0,0 +1,34 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef __MESOS_PROVISIONER_CONSTANTS_HPP__
+#define __MESOS_PROVISIONER_CONSTANTS_HPP__
+
+namespace mesos {
+namespace internal {
+namespace slave {
+
+// Provisioner backends.
+constexpr char AUFS_BACKEND[] = "aufs";
+constexpr char BIND_BACKEND[] = "bind";
+constexpr char COPY_BACKEND[] = "copy";
+constexpr char OVERLAY_BACKEND[] = "overlay";
+
+} // namespace slave {
+} // namespace internal {
+} // namespace mesos {
+
+#endif  // __MESOS_PROVISIONER_CONSTANTS_HPP__

http://git-wip-us.apache.org/repos/asf/mesos/blob/2190e6e8/src/slave/containerizer/mesos/provisioner/docker/paths.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/provisioner/docker/paths.cpp 
b/src/slave/containerizer/mesos/provisioner/docker/paths.cpp
index dea3756..cd684b3 100644
--- a/src/slave/containerizer/mesos/provisioner/docker/paths.cpp
+++ b/src/slave/containerizer/mesos/provisioner/docker/paths.cpp
@@ -14,6 +14,8 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+#include "slave/containerizer/mesos/provisioner/constants.hpp"
+
 #include "slave/containerizer/mesos/provisioner/docker/paths.hpp"
 
 #include <stout/path.hpp>
@@ -58,7 +60,7 @@ string getImageLayerManifestPath(const string& storeDir, 
const string& layerId)
 
 string getImageLayerRootfsPath(const string& layerPath, const string& backend)
 {
-  if (backend == "overlay") {
+  if (backend == OVERLAY_BACKEND) {
     return path::join(layerPath, "rootfs." + backend);
   }
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/2190e6e8/src/slave/flags.cpp
----------------------------------------------------------------------
diff --git a/src/slave/flags.cpp b/src/slave/flags.cpp
index 87d9e46..e837cfc 100644
--- a/src/slave/flags.cpp
+++ b/src/slave/flags.cpp
@@ -34,6 +34,8 @@
 #include "slave/containerizer/mesos/linux_launcher.hpp"
 #endif // __linux__
 
+#include "slave/containerizer/mesos/provisioner/constants.hpp"
+
 using std::string;
 
 mesos::internal::slave::Flags::Flags()
@@ -128,7 +130,7 @@ mesos::internal::slave::Flags::Flags()
       "image_provisioner_backend",
       "Strategy for provisioning container rootfs from images,\n"
       "e.g., `aufs`, `bind`, `copy`, `overlay`.",
-      "copy");
+      COPY_BACKEND);
 
   add(&Flags::appc_simple_discovery_uri_prefix,
       "appc_simple_discovery_uri_prefix",

http://git-wip-us.apache.org/repos/asf/mesos/blob/2190e6e8/src/tests/containerizer/provisioner_appc_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/provisioner_appc_tests.cpp 
b/src/tests/containerizer/provisioner_appc_tests.cpp
index a999fc7..8b4b832 100644
--- a/src/tests/containerizer/provisioner_appc_tests.cpp
+++ b/src/tests/containerizer/provisioner_appc_tests.cpp
@@ -37,6 +37,7 @@
 
 #include "slave/paths.hpp"
 
+#include "slave/containerizer/mesos/provisioner/constants.hpp"
 #include "slave/containerizer/mesos/provisioner/paths.hpp"
 #include "slave/containerizer/mesos/provisioner/provisioner.hpp"
 
@@ -63,6 +64,8 @@ using process::Process;
 using testing::_;
 using testing::Return;
 
+using mesos::internal::slave::BIND_BACKEND;
+using mesos::internal::slave::COPY_BACKEND;
 using mesos::internal::slave::Fetcher;
 using mesos::internal::slave::Provisioner;
 using mesos::internal::slave::appc::Store;
@@ -284,7 +287,7 @@ TEST_F(ProvisionerAppcTest, ROOT_Provision)
   slave::Flags flags;
   flags.image_providers = "APPC";
   flags.appc_store_dir = path::join(os::getcwd(), "store");
-  flags.image_provisioner_backend = "bind";
+  flags.image_provisioner_backend = BIND_BACKEND;
   flags.work_dir = path::join(sandbox.get(), "work_dir");
 
   Try<Owned<Provisioner>> provisioner = Provisioner::create(flags);
@@ -348,7 +351,7 @@ TEST_F(ProvisionerAppcTest, ROOT_ProvisionNestedContainer)
   slave::Flags flags;
   flags.image_providers = "APPC";
   flags.appc_store_dir = path::join(os::getcwd(), "store");
-  flags.image_provisioner_backend = "bind";
+  flags.image_provisioner_backend = BIND_BACKEND;
   flags.work_dir = path::join(sandbox.get(), "work_dir");
 
   Try<Owned<Provisioner>> provisioner = Provisioner::create(flags);
@@ -418,7 +421,7 @@ TEST_F(ProvisionerAppcTest, Recover)
   slave::Flags flags;
   flags.image_providers = "APPC";
   flags.appc_store_dir = path::join(os::getcwd(), "store");
-  flags.image_provisioner_backend = "copy";
+  flags.image_provisioner_backend = COPY_BACKEND;
   flags.work_dir = path::join(sandbox.get(), "work_dir");
 
   Try<Owned<Provisioner>> provisioner = Provisioner::create(flags);
@@ -489,7 +492,7 @@ TEST_F(ProvisionerAppcTest, RecoverNestedContainer)
   slave::Flags flags;
   flags.image_providers = "APPC";
   flags.appc_store_dir = path::join(os::getcwd(), "store");
-  flags.image_provisioner_backend = "copy";
+  flags.image_provisioner_backend = COPY_BACKEND;
   flags.work_dir = path::join(sandbox.get(), "work_dir");
 
   Try<Owned<Provisioner>> provisioner = Provisioner::create(flags);
@@ -558,7 +561,7 @@ TEST_F(ProvisionerAppcTest, 
RecoverNestedContainerNoParentImage)
   slave::Flags flags;
   flags.image_providers = "APPC";
   flags.appc_store_dir = path::join(os::getcwd(), "store");
-  flags.image_provisioner_backend = "copy";
+  flags.image_provisioner_backend = COPY_BACKEND;
   flags.work_dir = path::join(sandbox.get(), "work_dir");
 
   Try<Owned<Provisioner>> provisioner = Provisioner::create(flags);

http://git-wip-us.apache.org/repos/asf/mesos/blob/2190e6e8/src/tests/containerizer/provisioner_backend_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/provisioner_backend_tests.cpp 
b/src/tests/containerizer/provisioner_backend_tests.cpp
index 661977b..727bf64 100644
--- a/src/tests/containerizer/provisioner_backend_tests.cpp
+++ b/src/tests/containerizer/provisioner_backend_tests.cpp
@@ -33,12 +33,19 @@
 #include "slave/containerizer/mesos/provisioner/backends/copy.hpp"
 #include "slave/containerizer/mesos/provisioner/backends/overlay.hpp"
 
+#include "slave/containerizer/mesos/provisioner/constants.hpp"
+
 #include "tests/flags.hpp"
 
 using namespace process;
 
 using namespace mesos::internal::slave;
 
+using mesos::internal::slave::AUFS_BACKEND;
+using mesos::internal::slave::BIND_BACKEND;
+using mesos::internal::slave::COPY_BACKEND;
+using mesos::internal::slave::OVERLAY_BACKEND;
+
 using std::string;
 using std::vector;
 
@@ -89,9 +96,9 @@ TEST_F(OverlayBackendTest, ROOT_OVERLAYFS_OverlayFSBackend)
   string rootfs = path::join(os::getcwd(), "rootfs");
 
   hashmap<string, Owned<Backend>> backends = Backend::create(slave::Flags());
-  ASSERT_TRUE(backends.contains("overlay"));
+  ASSERT_TRUE(backends.contains(OVERLAY_BACKEND));
 
-  AWAIT_READY(backends["overlay"]->provision(
+  AWAIT_READY(backends[OVERLAY_BACKEND]->provision(
       {layer1, layer2},
       rootfs,
       sandbox.get()));
@@ -113,7 +120,7 @@ TEST_F(OverlayBackendTest, ROOT_OVERLAYFS_OverlayFSBackend)
   EXPECT_SOME_EQ("test3", os::read(path::join(rootfs, "file")));
   EXPECT_SOME_EQ("test2", os::read(path::join(layer2, "file")));
 
-  AWAIT_READY(backends["overlay"]->destroy(rootfs, sandbox.get()));
+  AWAIT_READY(backends[OVERLAY_BACKEND]->destroy(rootfs, sandbox.get()));
 
   EXPECT_FALSE(os::exists(rootfs));
 }
@@ -144,9 +151,9 @@ TEST_F(OverlayBackendTest, 
ROOT_OVERLAYFS_OverlayFSBackendWithManyLayers)
   string rootfs = path::join(sandbox.get(), "rootfs");
 
   hashmap<string, Owned<Backend>> backends = Backend::create(slave::Flags());
-  ASSERT_TRUE(backends.contains("overlay"));
+  ASSERT_TRUE(backends.contains(OVERLAY_BACKEND));
 
-  AWAIT_READY(backends["overlay"]->provision(
+  AWAIT_READY(backends[OVERLAY_BACKEND]->provision(
       layers,
       rootfs,
       sandbox.get()));
@@ -158,7 +165,7 @@ TEST_F(OverlayBackendTest, 
ROOT_OVERLAYFS_OverlayFSBackendWithManyLayers)
         strings::format("dir%d", i).get())));
   }
 
-  AWAIT_READY(backends["overlay"]->destroy(rootfs, sandbox.get()));
+  AWAIT_READY(backends[OVERLAY_BACKEND]->destroy(rootfs, sandbox.get()));
 }
 
 
@@ -176,11 +183,11 @@ TEST_F(BindBackendTest, ROOT_BindBackend)
   ASSERT_SOME(mkdir);
 
   hashmap<string, Owned<Backend>> backends = Backend::create(slave::Flags());
-  ASSERT_TRUE(backends.contains("bind"));
+  ASSERT_TRUE(backends.contains(BIND_BACKEND));
 
   string target = path::join(os::getcwd(), "target");
 
-  AWAIT_READY(backends["bind"]->provision(
+  AWAIT_READY(backends[BIND_BACKEND]->provision(
       {rootfs},
       target,
       sandbox.get()));
@@ -193,7 +200,7 @@ TEST_F(BindBackendTest, ROOT_BindBackend)
   EXPECT_TRUE(os::Permissions(mode.get()).owner.w);
   EXPECT_ERROR(os::write(path::join(target, "tmp", "test"), "data"));
 
-  AWAIT_READY(backends["bind"]->destroy(target, sandbox.get()));
+  AWAIT_READY(backends[BIND_BACKEND]->destroy(target, sandbox.get()));
 
   EXPECT_FALSE(os::exists(target));
 }
@@ -220,9 +227,9 @@ TEST_F(AufsBackendTest, ROOT_AUFS_AufsBackend)
   string rootfs = path::join(os::getcwd(), "rootfs");
 
   hashmap<string, Owned<Backend>> backends = Backend::create(slave::Flags());
-  ASSERT_TRUE(backends.contains("aufs"));
+  ASSERT_TRUE(backends.contains(AUFS_BACKEND));
 
-  AWAIT_READY(backends["aufs"]->provision(
+  AWAIT_READY(backends[AUFS_BACKEND]->provision(
       {layer1, layer2},
       rootfs,
       sandbox.get()));
@@ -244,7 +251,7 @@ TEST_F(AufsBackendTest, ROOT_AUFS_AufsBackend)
   EXPECT_SOME_EQ("test3", os::read(path::join(rootfs, "file")));
   EXPECT_SOME_EQ("test2", os::read(path::join(layer2, "file")));
 
-  AWAIT_READY(backends["aufs"]->destroy(rootfs, sandbox.get()));
+  AWAIT_READY(backends[AUFS_BACKEND]->destroy(rootfs, sandbox.get()));
 
   EXPECT_FALSE(os::exists(rootfs));
 }
@@ -272,9 +279,9 @@ TEST_F(CopyBackendTest, ROOT_CopyBackend)
   string rootfs = path::join(os::getcwd(), "rootfs");
 
   hashmap<string, Owned<Backend>> backends = Backend::create(slave::Flags());
-  ASSERT_TRUE(backends.contains("copy"));
+  ASSERT_TRUE(backends.contains(COPY_BACKEND));
 
-  AWAIT_READY(backends["copy"]->provision(
+  AWAIT_READY(backends[COPY_BACKEND]->provision(
       {layer1, layer2},
       rootfs,
       sandbox.get()));
@@ -289,7 +296,7 @@ TEST_F(CopyBackendTest, ROOT_CopyBackend)
   EXPECT_TRUE(os::exists(path::join(rootfs, "file")));
   EXPECT_SOME_EQ("test2", os::read(path::join(rootfs, "file")));
 
-  AWAIT_READY(backends["copy"]->destroy(rootfs, sandbox.get()));
+  AWAIT_READY(backends[COPY_BACKEND]->destroy(rootfs, sandbox.get()));
 
   EXPECT_FALSE(os::exists(rootfs));
 }

Reply via email to