Repository: mesos Updated Branches: refs/heads/master 5c4e46091 -> 0ca126fa8
Aggregated as member Http in Master. Before this change the Http object was copied in to each HTTP routing lambda. If state were to be introduced, this could create hard to debug issues. Aggregating a single instance as a member of Master prevents these issues and simplifies access to communal code paths such as `authenticate`. Review: https://reviews.apache.org/r/41211 Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/41badcc6 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/41badcc6 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/41badcc6 Branch: refs/heads/master Commit: 41badcc63967533c9cdd1d843106ccb16d1c93e9 Parents: 5c4e460 Author: Joris Van Remoortere <[email protected]> Authored: Thu Dec 10 09:17:57 2015 -0800 Committer: Joris Van Remoortere <[email protected]> Committed: Thu Dec 10 11:46:43 2015 -0800 ---------------------------------------------------------------------- src/master/master.cpp | 51 +++++++++++++++++++++++----------------------- src/master/master.hpp | 2 ++ 2 files changed, 27 insertions(+), 26 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/41badcc6/src/master/master.cpp ---------------------------------------------------------------------- diff --git a/src/master/master.cpp b/src/master/master.cpp index 7acdc0a..0d14822 100644 --- a/src/master/master.cpp +++ b/src/master/master.cpp @@ -278,6 +278,7 @@ Master::Master( const Flags& _flags) : ProcessBase("master"), flags(_flags), + http(this), allocator(_allocator), registrar(_registrar), repairer(_repairer), @@ -743,57 +744,55 @@ void Master::initialize() &AuthenticateMessage::pid); // Setup HTTP routes. - Http http = Http(this); - route("/api/v1/scheduler", Http::SCHEDULER_HELP(), - [http](const process::http::Request& request) { + [this](const process::http::Request& request) { Http::log(request); return http.scheduler(request); }); route("/create-volumes", Http::CREATE_VOLUMES_HELP(), - [http](const process::http::Request& request) { + [this](const process::http::Request& request) { Http::log(request); return http.createVolumes(request); }); route("/destroy-volumes", Http::DESTROY_VOLUMES_HELP(), - [http](const process::http::Request& request) { + [this](const process::http::Request& request) { Http::log(request); return http.destroyVolumes(request); }); route("/frameworks", Http::FRAMEWORKS(), - [http](const process::http::Request& request) { + [this](const process::http::Request& request) { Http::log(request); return http.frameworks(request); }); route("/flags", Http::FLAGS_HELP(), - [http](const process::http::Request& request) { + [this](const process::http::Request& request) { Http::log(request); return http.flags(request); }); route("/health", Http::HEALTH_HELP(), - [http](const process::http::Request& request) { + [this](const process::http::Request& request) { return http.health(request); }); route("/observe", Http::OBSERVE_HELP(), - [http](const process::http::Request& request) { + [this](const process::http::Request& request) { Http::log(request); return http.observe(request); }); route("/redirect", Http::REDIRECT_HELP(), - [http](const process::http::Request& request) { + [this](const process::http::Request& request) { return http.redirect(request); }); route("/reserve", Http::RESERVE_HELP(), - [http](const process::http::Request& request) { + [this](const process::http::Request& request) { Http::log(request); return http.reserve(request); }); @@ -801,25 +800,25 @@ void Master::initialize() // deprecation cycle on 0.26. route("/roles.json", Http::ROLES_HELP(), - [http](const process::http::Request& request) { + [this](const process::http::Request& request) { Http::log(request); return http.roles(request); }); route("/roles", Http::ROLES_HELP(), - [http](const process::http::Request& request) { + [this](const process::http::Request& request) { Http::log(request); return http.roles(request); }); route("/teardown", Http::TEARDOWN_HELP(), - [http](const process::http::Request& request) { + [this](const process::http::Request& request) { Http::log(request); return http.teardown(request); }); route("/slaves", Http::SLAVES_HELP(), - [http](const process::http::Request& request) { + [this](const process::http::Request& request) { Http::log(request); return http.slaves(request); }); @@ -827,19 +826,19 @@ void Master::initialize() // deprecation cycle on 0.26. route("/state.json", Http::STATE_HELP(), - [http](const process::http::Request& request) { + [this](const process::http::Request& request) { Http::log(request); return http.state(request); }); route("/state", Http::STATE_HELP(), - [http](const process::http::Request& request) { + [this](const process::http::Request& request) { Http::log(request); return http.state(request); }); route("/state-summary", Http::STATESUMMARY_HELP(), - [http](const process::http::Request& request) { + [this](const process::http::Request& request) { Http::log(request); return http.stateSummary(request); }); @@ -847,49 +846,49 @@ void Master::initialize() // deprecation cycle. route("/tasks.json", Http::TASKS_HELP(), - [http](const process::http::Request& request) { + [this](const process::http::Request& request) { Http::log(request); return http.tasks(request); }); route("/tasks", Http::TASKS_HELP(), - [http](const process::http::Request& request) { + [this](const process::http::Request& request) { Http::log(request); return http.tasks(request); }); route("/maintenance/schedule", Http::MAINTENANCE_SCHEDULE_HELP(), - [http](const process::http::Request& request) { + [this](const process::http::Request& request) { Http::log(request); return http.maintenanceSchedule(request); }); route("/maintenance/status", Http::MAINTENANCE_STATUS_HELP(), - [http](const process::http::Request& request) { + [this](const process::http::Request& request) { Http::log(request); return http.maintenanceStatus(request); }); route("/machine/down", Http::MACHINE_DOWN_HELP(), - [http](const process::http::Request& request) { + [this](const process::http::Request& request) { Http::log(request); return http.machineDown(request); }); route("/machine/up", Http::MACHINE_UP_HELP(), - [http](const process::http::Request& request) { + [this](const process::http::Request& request) { Http::log(request); return http.machineUp(request); }); route("/unreserve", Http::UNRESERVE_HELP(), - [http](const process::http::Request& request) { + [this](const process::http::Request& request) { Http::log(request); return http.unreserve(request); }); route("/quota", Http::QUOTA_HELP(), - [http](const process::http::Request& request) { + [this](const process::http::Request& request) { Http::log(request); return http.quota(request); }); http://git-wip-us.apache.org/repos/asf/mesos/blob/41badcc6/src/master/master.hpp ---------------------------------------------------------------------- diff --git a/src/master/master.hpp b/src/master/master.hpp index 4683fa5..d8f9801 100644 --- a/src/master/master.hpp +++ b/src/master/master.hpp @@ -1131,6 +1131,8 @@ private: const Flags flags; + Http http; + Option<MasterInfo> leader; // Current leading master. mesos::master::allocator::Allocator* allocator;
