Added a stub Event message handler in the scheduler driver. Review: https://reviews.apache.org/r/36493
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/d52da5d0 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/d52da5d0 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/d52da5d0 Branch: refs/heads/master Commit: d52da5d0b047412c93323d764b0d2183ddb99dfb Parents: 6bd6257 Author: Benjamin Mahler <[email protected]> Authored: Tue Jul 14 17:57:02 2015 -0700 Committer: Benjamin Mahler <[email protected]> Committed: Thu Jul 16 16:11:43 2015 -0700 ---------------------------------------------------------------------- src/sched/sched.cpp | 100 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 99 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/d52da5d0/src/sched/sched.cpp ---------------------------------------------------------------------- diff --git a/src/sched/sched.cpp b/src/sched/sched.cpp index e372a15..cd80f29 100644 --- a/src/sched/sched.cpp +++ b/src/sched/sched.cpp @@ -93,7 +93,12 @@ using namespace mesos::internal; using namespace mesos::internal::master; using namespace mesos::scheduler; -using namespace process; +using process::Clock; +using process::DispatchEvent; +using process::Future; +using process::MessageEvent; +using process::Process; +using process::UPID; using std::map; using std::string; @@ -165,6 +170,8 @@ public: protected: virtual void initialize() { + install<Event>(&SchedulerProcess::receive); + // TODO(benh): Get access to flags so that we can decide whether // or not to make ZooKeeper verbose. install<FrameworkRegisteredMessage>( @@ -420,6 +427,97 @@ protected: } } + void drop(const Event& event, const string& message) + { + // TODO(bmahler): Increment a metric. + + // NOTE: The << operator for 'event.type()' from + // type_utils.hpp does not resolve here. + LOG(WARNING) << "Dropping " + << mesos::scheduler::Event_Type_Name(event.type()) + << ": " << message; + } + + void receive(const UPID& from, const Event& event) + { + switch (event.type()) { + case Event::SUBSCRIBED: { + if (!event.has_subscribed()) { + drop(event, "Expecting 'subscribed' to be present"); + break; + } + + drop(event, "Unimplemented"); + break; + } + + case Event::OFFERS: { + if (!event.has_offers()) { + drop(event, "Expecting 'offers' to be present"); + break; + } + + drop(event, "Unimplemented"); + break; + } + + case Event::RESCIND: { + if (!event.has_rescind()) { + drop(event, "Expecting 'rescind' to be present"); + break; + } + + drop(event, "Unimplemented"); + break; + } + + case Event::UPDATE: { + if (!event.has_update()) { + drop(event, "Expecting 'update' to be present"); + break; + } + + drop(event, "Unimplemented"); + break; + } + + case Event::MESSAGE: { + if (!event.has_message()) { + drop(event, "Expecting 'message' to be present"); + break; + } + + drop(event, "Unimplemented"); + break; + } + + case Event::FAILURE: { + if (!event.has_failure()) { + drop(event, "Expecting 'failure' to be present"); + break; + } + + drop(event, "Unimplemented"); + break; + } + + case Event::ERROR: { + if (!event.has_error()) { + drop(event, "Expecting 'error' to be present"); + break; + } + + drop(event, "Unimplemented"); + break; + } + + default: { + drop(event, "Unknown event"); + break; + } + } + } + void registered( const UPID& from, const FrameworkID& frameworkId,
