You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by be...@apache.org on 2013/04/04 22:57:51 UTC

svn commit: r1464753 - in /incubator/mesos/trunk/src: Makefile.am master/frameworks_manager.cpp master/frameworks_manager.hpp tests/master_tests.cpp

Author: benh
Date: Thu Apr  4 20:57:51 2013
New Revision: 1464753

URL: http://svn.apache.org/r1464753
Log:
Removed unused FrameworksManager and FrameworksStorage.

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

Removed:
    incubator/mesos/trunk/src/master/frameworks_manager.cpp
    incubator/mesos/trunk/src/master/frameworks_manager.hpp
Modified:
    incubator/mesos/trunk/src/Makefile.am
    incubator/mesos/trunk/src/tests/master_tests.cpp

Modified: incubator/mesos/trunk/src/Makefile.am
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/Makefile.am?rev=1464753&r1=1464752&r2=1464753&view=diff
==============================================================================
--- incubator/mesos/trunk/src/Makefile.am (original)
+++ incubator/mesos/trunk/src/Makefile.am Thu Apr  4 20:57:51 2013
@@ -160,7 +160,6 @@ libmesos_no_third_party_la_SOURCES =				
 	local/local.cpp							\
 	master/constants.cpp						\
 	master/drf_sorter.cpp						\
-	master/frameworks_manager.cpp					\
 	master/http.cpp							\
 	master/master.cpp						\
 	master/slaves_manager.cpp					\
@@ -222,7 +221,6 @@ libmesos_no_third_party_la_SOURCES += co
 	logging/check_some.hpp logging/flags.hpp logging/logging.hpp	\
 	master/allocator.hpp						\
 	master/constants.hpp master/drf_sorter.hpp master/flags.hpp	\
-	master/frameworks_manager.hpp					\
 	master/hierarchical_allocator_process.hpp master/http.hpp	\
 	master/master.hpp master/slaves_manager.hpp master/sorter.hpp	\
 	messages/messages.hpp slave/constants.hpp			\

Modified: incubator/mesos/trunk/src/tests/master_tests.cpp
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/tests/master_tests.cpp?rev=1464753&r1=1464752&r2=1464753&view=diff
==============================================================================
--- incubator/mesos/trunk/src/tests/master_tests.cpp (original)
+++ incubator/mesos/trunk/src/tests/master_tests.cpp Thu Apr  4 20:57:51 2013
@@ -40,7 +40,6 @@
 
 #include "master/allocator.hpp"
 #include "master/flags.hpp"
-#include "master/frameworks_manager.hpp"
 #include "master/hierarchical_allocator_process.hpp"
 #include "master/master.hpp"
 
@@ -55,8 +54,6 @@ using namespace mesos::internal;
 using namespace mesos::internal::tests;
 
 using mesos::internal::master::Allocator;
-using mesos::internal::master::FrameworksManager;
-using mesos::internal::master::FrameworksStorage;
 using mesos::internal::master::HierarchicalDRFAllocatorProcess;
 using mesos::internal::master::Master;
 
@@ -1146,21 +1143,6 @@ TEST_F(WhitelistTest, WhitelistSlave)
 }
 
 
-// FrameworksManager test cases.
-
-class MockFrameworksStorage : public FrameworksStorage
-{
-public:
-  // We need this typedef because MOCK_METHOD is a macro.
-  typedef map<FrameworkID, FrameworkInfo> Map_FrameworkId_FrameworkInfo;
-
-  MOCK_METHOD0(list, Future<Result<Map_FrameworkId_FrameworkInfo> >());
-  MOCK_METHOD2(add, Future<Result<bool> >(const FrameworkID&,
-                                          const FrameworkInfo&));
-  MOCK_METHOD1(remove, Future<Result<bool> >(const FrameworkID&));
-};
-
-
 TEST_F(MasterTest, MasterLost)
 {
   ASSERT_TRUE(GTEST_IS_THREADSAFE);
@@ -1221,326 +1203,3 @@ TEST_F(MasterTest, MasterLost)
   process::terminate(master);
   process::wait(master);
 }
-
-// This fixture sets up expectations on the storage class
-// and spawns both storage and frameworks manager.
-class FrameworksManagerTestFixture : public ::testing::Test
-{
-protected:
-  virtual void SetUp()
-  {
-    ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
-    storage = new MockFrameworksStorage();
-    process::spawn(storage);
-
-    EXPECT_CALL(*storage, list())
-      .WillOnce(Return(Result<map<FrameworkID, FrameworkInfo> >(infos)));
-
-    EXPECT_CALL(*storage, add(_, _))
-      .WillRepeatedly(Return(Result<bool>::some(true)));
-
-    EXPECT_CALL(*storage, remove(_))
-      .WillRepeatedly(Return(Result<bool>::some(true)));
-
-    manager = new FrameworksManager(storage);
-    process::spawn(manager);
-  }
-
-  virtual void TearDown()
-  {
-    process::terminate(manager);
-    process::wait(manager);
-    delete manager;
-
-    process::terminate(storage);
-    process::wait(storage);
-    delete storage;
-  }
-
-  map<FrameworkID, FrameworkInfo> infos;
-
-  MockFrameworksStorage* storage;
-  FrameworksManager* manager;
-};
-
-
-TEST_F(FrameworksManagerTestFixture, AddFramework)
-{
-  // Test if initially FM returns empty list.
-  Future<Result<map<FrameworkID, FrameworkInfo> > > future =
-    process::dispatch(manager, &FrameworksManager::list);
-
-  ASSERT_TRUE(future.await(Seconds(2.0)));
-  EXPECT_TRUE(future.get().get().empty());
-
-  // Add a dummy framework.
-  FrameworkID id;
-  id.set_value("id");
-
-  FrameworkInfo info;
-  info.set_name("test name");
-  info.set_user("test user");
-
-  // Add the framework.
-  Future<Result<bool> > future2 =
-    process::dispatch(manager, &FrameworksManager::add, id, info);
-
-  ASSERT_TRUE(future2.await(Seconds(2.0)));
-  EXPECT_TRUE(future2.get().get());
-
-  // Check if framework manager returns the added framework.
-  Future<Result<map<FrameworkID, FrameworkInfo> > > future3 =
-    process::dispatch(manager, &FrameworksManager::list);
-
-  ASSERT_TRUE(future3.await(Seconds(2.0)));
-
-  map<FrameworkID, FrameworkInfo> result = future3.get().get();
-
-  ASSERT_EQ(1u, result.count(id));
-  EXPECT_EQ("test name", result[id].name());
-  EXPECT_EQ("test user", result[id].user());
-
-  // Check if the framework exists.
-  Future<Result<bool> > future4 =
-    process::dispatch(manager, &FrameworksManager::exists, id);
-
-  ASSERT_TRUE(future4.await(Seconds(2.0)));
-  EXPECT_TRUE(future4.get().get());
-}
-
-
-TEST_F(FrameworksManagerTestFixture, RemoveFramework)
-{
-  Clock::pause();
-
-  // Remove a non-existent framework.
-  FrameworkID id;
-  id.set_value("non-existent framework");
-
-  Future<Result<bool> > future1 =
-    process::dispatch(manager, &FrameworksManager::remove, id, Seconds(0));
-
-  ASSERT_TRUE(future1.await(Seconds(2.0)));
-  EXPECT_TRUE(future1.get().isError());
-
-  // Remove an existing framework.
-
-  // First add a dummy framework.
-  FrameworkID id2;
-  id2.set_value("id2");
-
-  FrameworkInfo info2;
-  info2.set_name("test name");
-  info2.set_user("test user");
-
-  // Add the framework.
-  Future<Result<bool> > future2 =
-    process::dispatch(manager, &FrameworksManager::add, id2, info2);
-
-  ASSERT_TRUE(future2.await(Seconds(2.0)));
-  EXPECT_TRUE(future2.get().get());
-
-  // Now remove the added framework.
-  Future<Result<bool> > future3 =
-    process::dispatch(manager, &FrameworksManager::remove, id2, Seconds(1.0));
-
-  Clock::update(Clock::now(manager) + 1.0);
-
-  ASSERT_TRUE(future3.await(Seconds(2.0)));
-  EXPECT_TRUE(future2.get().get());
-
-  // Now check if the removed framework exists...it shouldn't.
-  Future<Result<bool> > future4 =
-    process::dispatch(manager, &FrameworksManager::exists, id2);
-
-  ASSERT_TRUE(future4.await(Seconds(2.0)));
-  EXPECT_FALSE(future4.get().get());
-
-  Clock::resume();
-}
-
-
-TEST_F(FrameworksManagerTestFixture, ResurrectFramework)
-{
-  // Resurrect a non-existent framework.
-  FrameworkID id;
-  id.set_value("non-existent framework");
-
-  Future<Result<bool> > future1 =
-    process::dispatch(manager, &FrameworksManager::resurrect, id);
-
-  ASSERT_TRUE(future1.await(Seconds(2.0)));
-  EXPECT_FALSE(future1.get().get());
-
-  // Resurrect an existent framework that is NOT being removed.
-  // Add a dummy framework.
-  FrameworkID id2;
-  id2.set_value("id2");
-
-  FrameworkInfo info2;
-  info2.set_name("test name");
-  info2.set_user("test user");
-
-  // Add the framework.
-  Future<Result<bool> > future2 =
-    process::dispatch(manager, &FrameworksManager::add, id2, info2);
-
-  ASSERT_TRUE(future2.await(Seconds(2.0)));
-  EXPECT_TRUE(future2.get().get());
-
-  Future<Result<bool> > future3 =
-    process::dispatch(manager, &FrameworksManager::resurrect, id2);
-
-  ASSERT_TRUE(future3.await(Seconds(2.0)));
-  EXPECT_TRUE(future3.get().get());
-}
-
-
-// TODO(vinod): Using a paused clock in the tests means that
-// future.await() may wait forever. This makes debugging hard.
-TEST_F(FrameworksManagerTestFixture, ResurrectExpiringFramework)
-{
-  // This is the crucial test.
-  // Resurrect an existing framework that is being removed,is being removed,
-  // which should cause the remove to be unsuccessful.
-
-  // Add a dummy framework.
-  FrameworkID id;
-  id.set_value("id");
-
-  FrameworkInfo info;
-  info.set_name("test name");
-  info.set_user("test user");
-
-  // Add the framework.
-  process::dispatch(manager, &FrameworksManager::add, id, info);
-
-  Clock::pause();
-
-  // Remove after 2 secs.
-  Future<Result<bool> > future1 =
-    process::dispatch(manager, &FrameworksManager::remove, id, Seconds(2.0));
-
-  // Resurrect in the meanwhile.
-  Future<Result<bool> > future2 =
-    process::dispatch(manager, &FrameworksManager::resurrect, id);
-
-  ASSERT_TRUE(future2.await(Seconds(2.0)));
-  EXPECT_TRUE(future2.get().get());
-
-  Clock::update(Clock::now(manager) + 2.0);
-
-  ASSERT_TRUE(future1.await(Seconds(2.0)));
-  EXPECT_FALSE(future1.get().get());
-
-  Clock::resume();
-}
-
-
-TEST_F(FrameworksManagerTestFixture, ResurrectInterspersedExpiringFrameworks)
-{
-  // This is another crucial test.
-  // Two remove messages are interspersed with a resurrect.
-  // Only the second remove should actually remove the framework.
-
-  // Add a dummy framework.
-  FrameworkID id;
-  id.set_value("id");
-
-  FrameworkInfo info;
-  info.set_name("test name");
-  info.set_user("test user");
-
-  // Add the framework.
-  process::dispatch(manager, &FrameworksManager::add, id, info);
-
-  Clock::pause();
-
-  Future<Result<bool> > future1 =
-    process::dispatch(manager, &FrameworksManager::remove, id, Seconds(2.0));
-
-  // Resurrect in the meanwhile.
-  Future<Result<bool> > future2 =
-    process::dispatch(manager, &FrameworksManager::resurrect, id);
-
-  // Remove again.
-  Future<Result<bool> > future3 =
-    process::dispatch(manager, &FrameworksManager::remove, id, Seconds(1.0));
-
-  ASSERT_TRUE(future2.await(Seconds(2.0)));
-  EXPECT_TRUE(future2.get().get());
-
-  Clock::update(Clock::now(manager) + 1.0);
-
-  ASSERT_TRUE(future3.await(Seconds(2.0)));
-  EXPECT_TRUE(future3.get().get());
-
-  Clock::update(Clock::now(manager) + 2.0);
-
-  ASSERT_TRUE(future1.await(Seconds(2.0)));
-  EXPECT_FALSE(future1.get().get());
-
-  Clock::resume();
-}
-
-
-// Not deriving from fixture...because we want to set specific expectations.
-// Specifically we simulate caching failure in FrameworksManager.
-TEST(FrameworksManagerTest, CacheFailure)
-{
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
-  MockFrameworksStorage storage;
-  process::spawn(storage);
-
-  EXPECT_CALL(storage, list())
-    .Times(2)
-    .WillRepeatedly(Return(Error("Fake Caching Error")));
-
-  EXPECT_CALL(storage, add(_, _))
-    .WillOnce(Return(Result<bool>::some(true)));
-
-  EXPECT_CALL(storage, remove(_))
-    .Times(0);
-
-  FrameworksManager manager(&storage);
-  process::spawn(manager);
-
-  // Test if initially FrameworksManager returns error.
-  Future<Result<map<FrameworkID, FrameworkInfo> > > future1 =
-    process::dispatch(manager, &FrameworksManager::list);
-
-  ASSERT_TRUE(future1.await(Seconds(2.0)));
-  ASSERT_TRUE(future1.get().isError());
-  EXPECT_EQ(future1.get().error(), "Error caching framework infos");
-
-  // Add framework should function normally despite caching failure.
-  FrameworkID id;
-  id.set_value("id");
-
-  FrameworkInfo info;
-  info.set_name("test name");
-  info.set_user("test user");
-
-  // Add the framework.
-  Future<Result<bool> > future2 =
-    process::dispatch(manager, &FrameworksManager::add, id, info);
-
-  ASSERT_TRUE(future2.await(Seconds(2.0)));
-  EXPECT_TRUE(future2.get().get());
-
-  // Remove framework should fail due to caching failure.
-  Future<Result<bool> > future3 =
-    process::dispatch(manager, &FrameworksManager::remove, id, Seconds(0));
-
-  ASSERT_TRUE(future3.await(Seconds(2.0)));
-  ASSERT_TRUE(future3.get().isError());
-  EXPECT_EQ(future3.get().error(), "Error caching framework infos");
-
-  process::terminate(manager);
-  process::wait(manager);
-
-  process::terminate(storage);
-  process::wait(storage);
-}