Repository: mesos Updated Branches: refs/heads/master 87de003c6 -> 3d082730b
Layers from Appc store should be the rootfs dir, not the top level dir. Review: https://reviews.apache.org/r/38284 Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/3d082730 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/3d082730 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/3d082730 Branch: refs/heads/master Commit: 3d082730b136d58f9c7dbdf615b66d904ed447c0 Parents: 87de003 Author: Jie Yu <[email protected]> Authored: Thu Sep 10 18:11:28 2015 -0700 Committer: Jie Yu <[email protected]> Committed: Fri Sep 11 11:11:33 2015 -0700 ---------------------------------------------------------------------- src/slave/containerizer/provisioners/appc/store.cpp | 8 +++++++- src/tests/containerizer/appc_provisioner_tests.cpp | 4 +++- 2 files changed, 10 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/3d082730/src/slave/containerizer/provisioners/appc/store.cpp ---------------------------------------------------------------------- diff --git a/src/slave/containerizer/provisioners/appc/store.cpp b/src/slave/containerizer/provisioners/appc/store.cpp index 04ab2ad..33f692c 100644 --- a/src/slave/containerizer/provisioners/appc/store.cpp +++ b/src/slave/containerizer/provisioners/appc/store.cpp @@ -52,6 +52,11 @@ struct CachedImage const string& _path) : manifest(_manifest), id(_id), path(_path) {} + string rootfs() const + { + return path::join(path, "rootfs"); + } + const AppcImageManifest manifest; // Image ID of the format "sha512-value" where "value" is the hex @@ -223,11 +228,12 @@ Future<vector<string>> StoreProcess::get(const Image::Appc& image) if (matches(image, candidate)) { LOG(INFO) << "Found match for image '" << image.name() << "' in the store"; + // The Appc store current doesn't support dependencies and this is // enforced by manifest validation: if the image's manifest contains // dependencies it would fail the validation and wouldn't be stored // in the store. - return vector<string>({candidate.path}); + return vector<string>({candidate.rootfs()}); } } http://git-wip-us.apache.org/repos/asf/mesos/blob/3d082730/src/tests/containerizer/appc_provisioner_tests.cpp ---------------------------------------------------------------------- diff --git a/src/tests/containerizer/appc_provisioner_tests.cpp b/src/tests/containerizer/appc_provisioner_tests.cpp index b1be2d8..73c32c1 100644 --- a/src/tests/containerizer/appc_provisioner_tests.cpp +++ b/src/tests/containerizer/appc_provisioner_tests.cpp @@ -187,7 +187,9 @@ TEST_F(AppcProvisionerTest, StoreRecover) EXPECT_EQ(1u, layers.get().size()); ASSERT_SOME(os::realpath(imagePath)); - EXPECT_EQ(os::realpath(imagePath).get(), layers.get().front()); + EXPECT_EQ( + os::realpath(path::join(imagePath, "rootfs")).get(), + layers.get().front()); }
