You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ya...@apache.org on 2017/05/03 09:27:22 UTC
mesos git commit: Removed duplicate test due to merge failure.
Repository: mesos
Updated Branches:
refs/heads/master b5f595f7e -> 4f4aff955
Removed duplicate test due to merge failure.
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/4f4aff95
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/4f4aff95
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/4f4aff95
Branch: refs/heads/master
Commit: 4f4aff955c864c5692c9ef594112ce86b2333899
Parents: b5f595f
Author: Jiang Yan Xu <xu...@apple.com>
Authored: Wed May 3 02:27:02 2017 -0700
Committer: Jiang Yan Xu <xu...@apple.com>
Committed: Wed May 3 02:27:02 2017 -0700
----------------------------------------------------------------------
src/tests/persistent_volume_tests.cpp | 180 -----------------------------
1 file changed, 180 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/4f4aff95/src/tests/persistent_volume_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/persistent_volume_tests.cpp b/src/tests/persistent_volume_tests.cpp
index 984f1b7..ef00853 100644
--- a/src/tests/persistent_volume_tests.cpp
+++ b/src/tests/persistent_volume_tests.cpp
@@ -1367,186 +1367,6 @@ TEST_P(PersistentVolumeTest, SharedPersistentVolumeMultipleFrameworks)
}
-// This test verifies that multiple frameworks belonging to the same role
-// can use the same shared persistent volume to launch tasks simultaneously.
-// It also verifies that metrics for used resources are populated on the
-// master and the agent.
-TEST_P(PersistentVolumeTest, SharedPersistentVolumeMultipleFrameworks)
-{
- Clock::pause();
-
- master::Flags masterFlags = CreateMasterFlags();
- Try<Owned<cluster::Master>> master = StartMaster(masterFlags);
- ASSERT_SOME(master);
-
- slave::Flags slaveFlags = CreateSlaveFlags();
-
- slaveFlags.resources = getSlaveResources();
-
- Owned<MasterDetector> detector = master.get()->createDetector();
- Try<Owned<cluster::Slave>> slave = StartSlave(detector.get(), slaveFlags);
- ASSERT_SOME(slave);
-
- // 1. Create framework1 so that all resources are offered to this framework.
- FrameworkInfo frameworkInfo1 = DEFAULT_FRAMEWORK_INFO;
- frameworkInfo1.set_role(DEFAULT_TEST_ROLE);
- frameworkInfo1.add_capabilities()->set_type(
- FrameworkInfo::Capability::SHARED_RESOURCES);
-
- MockScheduler sched1;
- MesosSchedulerDriver driver1(
- &sched1, frameworkInfo1, master.get()->pid, DEFAULT_CREDENTIAL);
-
- EXPECT_CALL(sched1, registered(&driver1, _, _));
-
- Future<vector<Offer>> offers1;
- EXPECT_CALL(sched1, resourceOffers(&driver1, _))
- .WillOnce(FutureArg<1>(&offers1))
- .WillRepeatedly(Return()); // Ignore subsequent offers.
-
- driver1.start();
-
- Clock::advance(masterFlags.allocation_interval);
-
- AWAIT_READY(offers1);
- EXPECT_FALSE(offers1->empty());
-
- Offer offer1 = offers1.get()[0];
-
- // 2. framework1 CREATEs a shared volume, and LAUNCHes a task with a subset
- // of resources from the offer.
- Resource volume = createPersistentVolume(
- getDiskResource(Megabytes(2048)),
- "id1",
- "path1",
- None(),
- frameworkInfo1.principal(),
- true); // Shared volume.
-
- // Create a task which uses a portion of the offered resources, so that
- // the remaining resources can be offered to framework2.
- TaskInfo task1 = createTask(
- offer1.slave_id(),
- Resources::parse("cpus:1;mem:128").get() + volume,
- "echo abc > path1/file1 && sleep 1000");
-
- // We should receive a TASK_RUNNING for the launched task.
- Future<TaskStatus> status1;
-
- EXPECT_CALL(sched1, statusUpdate(&driver1, _))
- .WillOnce(FutureArg<1>(&status1));
-
- // We use a filter of 0 seconds so the resources will be available
- // in the next allocation cycle.
- Filters filters;
- filters.set_refuse_seconds(0);
-
- driver1.acceptOffers(
- {offer1.id()},
- {CREATE(volume),
- LAUNCH({task1})},
- filters);
-
- AWAIT_READY(status1);
- EXPECT_EQ(TASK_RUNNING, status1->state());
-
- // Collect metrics based on framework1.
- JSON::Object stats1 = Metrics();
- ASSERT_EQ(1u, stats1.values.count("master/cpus_used"));
- ASSERT_EQ(1u, stats1.values.count("master/mem_used"));
- ASSERT_EQ(1u, stats1.values.count("master/disk_used"));
- ASSERT_EQ(1u, stats1.values.count("master/disk_revocable_used"));
- EXPECT_EQ(1, stats1.values["master/cpus_used"]);
- EXPECT_EQ(128, stats1.values["master/mem_used"]);
- EXPECT_EQ(2048, stats1.values["master/disk_used"]);
- EXPECT_EQ(0, stats1.values["master/disk_revocable_used"]);
- ASSERT_EQ(1u, stats1.values.count("slave/cpus_used"));
- ASSERT_EQ(1u, stats1.values.count("slave/mem_used"));
- ASSERT_EQ(1u, stats1.values.count("slave/disk_used"));
- ASSERT_EQ(1u, stats1.values.count("slave/disk_revocable_used"));
- EXPECT_EQ(2048, stats1.values["slave/disk_used"]);
- EXPECT_EQ(0, stats1.values["slave/disk_revocable_used"]);
-
- // 3. Create framework2 of the same role. It would be offered resources
- // recovered from the framework1 call.
- FrameworkInfo frameworkInfo2 = DEFAULT_FRAMEWORK_INFO;
- frameworkInfo2.set_role(DEFAULT_TEST_ROLE);
- frameworkInfo2.add_capabilities()->set_type(
- FrameworkInfo::Capability::SHARED_RESOURCES);
-
- MockScheduler sched2;
- MesosSchedulerDriver driver2(
- &sched2, frameworkInfo2, master.get()->pid, DEFAULT_CREDENTIAL);
-
- EXPECT_CALL(sched2, registered(&driver2, _, _));
-
- Future<vector<Offer>> offers2;
- EXPECT_CALL(sched2, resourceOffers(&driver2, _))
- .WillOnce(FutureArg<1>(&offers2))
- .WillRepeatedly(Return()); // Ignore subsequent offers.
-
- driver2.start();
-
- AWAIT_READY(offers2);
- EXPECT_FALSE(offers2->empty());
-
- Offer offer2 = offers2.get()[0];
-
- EXPECT_TRUE(Resources(offer2.resources()).contains(
- allocatedResources(volume, frameworkInfo2.role())));
-
- // 4. framework2 LAUNCHes a task with a subset of resources from the offer.
-
- // Create a task `task2` which uses the same shared volume as `task1`.
- TaskInfo task2 = createTask(
- offer2.slave_id(),
- Resources::parse("cpus:1;mem:256").get() + volume,
- "echo abc > path1/file2 && sleep 1000");
-
- // We should receive a TASK_RUNNING for the launched task.
- Future<TaskStatus> status2;
-
- EXPECT_CALL(sched2, statusUpdate(&driver2, _))
- .WillOnce(FutureArg<1>(&status2));
-
- driver2.acceptOffers(
- {offer2.id()},
- {LAUNCH({task2})},
- filters);
-
- AWAIT_READY(status2);
- EXPECT_EQ(TASK_RUNNING, status2->state());
-
- // Collect metrics based on both frameworks. Note that the `cpus_used` and
- // `mem_used` is updated, but `disk_used` does not change since both tasks
- // use the same shared volume.
- JSON::Object stats2 = Metrics();
- ASSERT_EQ(1u, stats2.values.count("master/cpus_used"));
- ASSERT_EQ(1u, stats2.values.count("master/mem_used"));
- ASSERT_EQ(1u, stats2.values.count("master/disk_used"));
- ASSERT_EQ(1u, stats2.values.count("master/disk_revocable_used"));
- EXPECT_EQ(2, stats2.values["master/cpus_used"]);
- EXPECT_EQ(384, stats2.values["master/mem_used"]);
- EXPECT_EQ(2048, stats2.values["master/disk_used"]);
- EXPECT_EQ(0, stats2.values["master/disk_revocable_used"]);
- ASSERT_EQ(1u, stats2.values.count("slave/cpus_used"));
- ASSERT_EQ(1u, stats2.values.count("slave/mem_used"));
- ASSERT_EQ(1u, stats2.values.count("slave/disk_used"));
- ASSERT_EQ(1u, stats2.values.count("slave/disk_revocable_used"));
- EXPECT_EQ(2048, stats2.values["slave/disk_used"]);
- EXPECT_EQ(0, stats2.values["slave/disk_revocable_used"]);
-
- // Resume the clock so the terminating task and executor can be reaped.
- Clock::resume();
-
- driver1.stop();
- driver1.join();
-
- driver2.stop();
- driver2.join();
-}
-
-
// This test verifies that the master recovers after a failover and
// re-offers the shared persistent volume when tasks using the same
// volume are still running.