Added SecretGenerator injection to the MockSlave. This patch adds an overload of `Slave::initialize` to the mock slave for the purpose of injecting a secret generator.
Review: https://reviews.apache.org/r/57882/ Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/ca58a523 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/ca58a523 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/ca58a523 Branch: refs/heads/master Commit: ca58a52346c72cbfed703f2809894bf373f963e3 Parents: 8f35d52 Author: Greg Mann <[email protected]> Authored: Sat Mar 25 12:06:02 2017 -0700 Committer: Anand Mazumdar <[email protected]> Committed: Sat Mar 25 12:06:02 2017 -0700 ---------------------------------------------------------------------- src/tests/mock_slave.cpp | 20 ++++++++++++++++++-- src/tests/mock_slave.hpp | 11 ++++++++++- 2 files changed, 28 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/ca58a523/src/tests/mock_slave.cpp ---------------------------------------------------------------------- diff --git a/src/tests/mock_slave.cpp b/src/tests/mock_slave.cpp index 50c04bf..f145c5c 100644 --- a/src/tests/mock_slave.cpp +++ b/src/tests/mock_slave.cpp @@ -18,6 +18,8 @@ #include <gmock/gmock.h> +#include <mesos/authentication/secret_generator.hpp> + #include <mesos/slave/qos_controller.hpp> #include <mesos/slave/resource_estimator.hpp> @@ -104,7 +106,8 @@ MockSlave::MockSlave( MasterDetector* detector, slave::Containerizer* containerizer, const Option<mesos::slave::QoSController*>& _qosController, - const Option<mesos::Authorizer*>& authorizer) + const Option<mesos::Authorizer*>& authorizer, + const Option<mesos::SecretGenerator*>& _mockSecretGenerator) : slave::Slave( process::ID::generate("slave"), flags, @@ -116,7 +119,8 @@ MockSlave::MockSlave( &resourceEstimator, _qosController.isSome() ? _qosController.get() : &qosController, authorizer), - files(slave::READONLY_HTTP_AUTHENTICATION_REALM) + files(slave::READONLY_HTTP_AUTHENTICATION_REALM), + mockSecretGenerator(_mockSecretGenerator) { // Set up default behaviors, calling the original methods. EXPECT_CALL(*this, runTask(_, _, _, _, _)) @@ -144,6 +148,18 @@ MockSlave::~MockSlave() } +void MockSlave::initialize() +{ + Slave::initialize(); + + if (mockSecretGenerator.isSome()) { + delete secretGenerator; + secretGenerator = mockSecretGenerator.get(); + mockSecretGenerator = None(); + } +} + + void MockSlave::unmocked_runTask( const UPID& from, const FrameworkInfo& frameworkInfo, http://git-wip-us.apache.org/repos/asf/mesos/blob/ca58a523/src/tests/mock_slave.hpp ---------------------------------------------------------------------- diff --git a/src/tests/mock_slave.hpp b/src/tests/mock_slave.hpp index 1acb961..979ac59 100644 --- a/src/tests/mock_slave.hpp +++ b/src/tests/mock_slave.hpp @@ -22,6 +22,8 @@ #include <gmock/gmock.h> +#include <mesos/authentication/secret_generator.hpp> + #include <mesos/master/detector.hpp> #include <mesos/slave/qos_controller.hpp> @@ -108,10 +110,13 @@ public: mesos::master::detector::MasterDetector* detector, slave::Containerizer* containerizer, const Option<mesos::slave::QoSController*>& qosController = None(), - const Option<mesos::Authorizer*>& authorizer = None()); + const Option<mesos::Authorizer*>& authorizer = None(), + const Option<mesos::SecretGenerator*>& mockSecretGenerator = None()); virtual ~MockSlave(); + void initialize(); + MOCK_METHOD5(runTask, void( const process::UPID& from, const FrameworkInfo& frameworkInfo, @@ -196,6 +201,10 @@ private: MockResourceEstimator resourceEstimator; MockQoSController qosController; slave::StatusUpdateManager* statusUpdateManager; + + // Set to the base class `secretGenerator` in `initialize()`. After + // `initialize()` has executed, this will be `None()`. + Option<mesos::SecretGenerator*> mockSecretGenerator; }; } // namespace tests {
