You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by qi...@apache.org on 2016/11/24 01:43:01 UTC
[4/4] mesos git commit: Added backport of r52910 to 1.1.x.
Added backport of r52910 to 1.1.x.
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/b7f0bc19
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/b7f0bc19
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/b7f0bc19
Branch: refs/heads/1.1.x
Commit: b7f0bc1943bb5cbe5830df987a9888d90bbcd18e
Parents: de3a1b5
Author: Qian Zhang <zh...@gmail.com>
Authored: Wed Nov 23 17:49:17 2016 +0800
Committer: Qian Zhang <zh...@gmail.com>
Committed: Thu Nov 24 09:37:56 2016 +0800
----------------------------------------------------------------------
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/b7f0bc19/src/Makefile.am
----------------------------------------------------------------------
diff --git a/src/Makefile.am b/src/Makefile.am
index 3bcc0f2..73d337d 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/b7f0bc19/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/b7f0bc19/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/b7f0bc19/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/b7f0bc19/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/b7f0bc19/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/b7f0bc19/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));
}