The API contains stub API methods, this adds a call to unimplemented method in each of the stubed method that is not implemented. The return remains the same to help the compiler deduce the return type of the lambda function. After this patch a call to an unimplemented API function will return 500. Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
76 lines
2.1 KiB
C++
76 lines
2.1 KiB
C++
/*
|
|
* Copyright 2015 Cloudius Systems
|
|
*/
|
|
|
|
#include "compaction_manager.hh"
|
|
#include "api/api-doc/compaction_manager.json.hh"
|
|
|
|
namespace api {
|
|
|
|
using namespace scollectd;
|
|
namespace cm = httpd::compaction_manager_json;
|
|
|
|
|
|
static future<json::json_return_type> get_cm_stats(http_context& ctx,
|
|
int64_t compaction_manager::stats::*f) {
|
|
return ctx.db.map_reduce0([&](database& db) {
|
|
return db.get_compaction_manager().get_stats().*f;
|
|
}, int64_t(0), std::plus<int64_t>()).then([](const int64_t& res) {
|
|
return make_ready_future<json::json_return_type>(res);
|
|
});
|
|
}
|
|
|
|
void set_compaction_manager(http_context& ctx, routes& r) {
|
|
cm::get_compactions.set(r, [] (std::unique_ptr<request> req) {
|
|
//TBD
|
|
unimplemented();
|
|
std::vector<cm::jsonmap> map;
|
|
return make_ready_future<json::json_return_type>(map);
|
|
});
|
|
|
|
cm::get_compaction_summary.set(r, [] (std::unique_ptr<request> req) {
|
|
//TBD
|
|
unimplemented();
|
|
std::vector<sstring> res;
|
|
return make_ready_future<json::json_return_type>(res);
|
|
});
|
|
|
|
cm::force_user_defined_compaction.set(r, [] (std::unique_ptr<request> req) {
|
|
//TBD
|
|
unimplemented();
|
|
return make_ready_future<json::json_return_type>("");
|
|
});
|
|
|
|
cm::stop_compaction.set(r, [] (std::unique_ptr<request> req) {
|
|
//TBD
|
|
unimplemented();
|
|
return make_ready_future<json::json_return_type>("");
|
|
});
|
|
|
|
cm::get_pending_tasks.set(r, [&ctx] (std::unique_ptr<request> req) {
|
|
return get_cm_stats(ctx, &compaction_manager::stats::pending_tasks);
|
|
});
|
|
|
|
cm::get_completed_tasks.set(r, [&ctx] (std::unique_ptr<request> req) {
|
|
return get_cm_stats(ctx, &compaction_manager::stats::completed_tasks);
|
|
});
|
|
|
|
cm::get_total_compactions_completed.set(r, [] (std::unique_ptr<request> req) {
|
|
//TBD
|
|
unimplemented();
|
|
return make_ready_future<json::json_return_type>(0);
|
|
});
|
|
|
|
cm::get_bytes_compacted.set(r, [] (std::unique_ptr<request> req) {
|
|
//TBD
|
|
unimplemented();
|
|
return make_ready_future<json::json_return_type>(0);
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|