From 4258b005dbdeb2b2f939f3edf4cb594ba979e91d Mon Sep 17 00:00:00 2001 From: Amnon Heiman Date: Wed, 24 Jun 2015 14:30:08 +0300 Subject: [PATCH] API: Adding stub implementation for the cache service This adds a stub implementation for the cache_service. It also register the API doc. The cache_service doc will be available at: http://localhost:10000/api-doc/cache_service/ The stub implementation returns the correct value type with stubbed values. After this patch the following path will be available: /cache_service/row_cache_save_period /cache_service/key_cache_save_period /cache_service/counter_cache_save_period /cache_service/row_cache_keys_to_save /cache_service/key_cache_keys_to_save /cache_service/counter_cache_keys_to_save /cache_service/invalidate_key_cache /cache_service/invalidate_counter_cache /cache_service/row_cache_capacity /cache_service/key_cache_capacity /cache_service/counter_cache_capacity /cache_service/save_caches Signed-off-by: Amnon Heiman --- api/api.cc | 5 +- api/cache_service.cc | 114 +++++++++++++++++++++++++++++++++++++++++++ api/cache_service.hh | 18 +++++++ configure.py | 1 + 4 files changed, 137 insertions(+), 1 deletion(-) create mode 100644 api/cache_service.cc create mode 100644 api/cache_service.hh diff --git a/api/api.cc b/api/api.cc index b5447f1a8f..4272d8ab73 100644 --- a/api/api.cc +++ b/api/api.cc @@ -11,6 +11,7 @@ #include "column_family.hh" #include "messaging_service.hh" #include "storage_proxy.hh" +#include "cache_service.hh" namespace api { @@ -40,7 +41,9 @@ future<> set_server(http_context& ctx) { set_messaging_service(ctx, r); rb->register_function(r, "storage_proxy", "The storage proxy API"); - set_storage_proxy(ctx,r); + rb->register_function(r, "cache_service", + "The cache service API"); + set_cache_service(ctx,r); }); } diff --git a/api/cache_service.cc b/api/cache_service.cc new file mode 100644 index 0000000000..ed3c09dd17 --- /dev/null +++ b/api/cache_service.cc @@ -0,0 +1,114 @@ +/* + * Copyright 2015 Cloudius Systems + */ + +#include "cache_service.hh" +#include "api/api-doc/cache_service.json.hh" + +namespace api { + +namespace cs = httpd::cache_service_json; + +void set_cache_service(http_context& ctx, routes& r) { + cs::get_row_cache_save_period_in_seconds.set(r, [](std::unique_ptr req) { + // TBD + return make_ready_future(0); + }); + + cs::set_row_cache_save_period_in_seconds.set(r, [](std::unique_ptr req) { + // TBD + auto period = req->get_query_param("period"); + return make_ready_future(""); + }); + + cs::get_key_cache_save_period_in_seconds.set(r, [](std::unique_ptr req) { + // TBD + return make_ready_future(0); + }); + + cs::set_key_cache_save_period_in_seconds.set(r, [](std::unique_ptr req) { + // TBD + auto period = req->get_query_param("period"); + return make_ready_future(""); + }); + + cs::get_counter_cache_save_period_in_seconds.set(r, [](std::unique_ptr req) { + // TBD + return make_ready_future(0); + }); + + cs::set_counter_cache_save_period_in_seconds.set(r, [](std::unique_ptr req) { + // TBD + auto ccspis = req->get_query_param("ccspis"); + return make_ready_future(""); + }); + + cs::get_row_cache_keys_to_save.set(r, [](std::unique_ptr req) { + // TBD + return make_ready_future(0); + }); + + cs::set_row_cache_keys_to_save.set(r, [](std::unique_ptr req) { + // TBD + auto rckts = req->get_query_param("rckts"); + return make_ready_future(""); + }); + + cs::get_key_cache_keys_to_save.set(r, [](std::unique_ptr req) { + // TBD + return make_ready_future(0); + }); + + cs::set_key_cache_keys_to_save.set(r, [](std::unique_ptr req) { + // TBD + auto kckts = req->get_query_param("kckts"); + return make_ready_future(""); + }); + + cs::get_counter_cache_keys_to_save.set(r, [](std::unique_ptr req) { + // TBD + return make_ready_future(0); + }); + + cs::set_counter_cache_keys_to_save.set(r, [](std::unique_ptr req) { + // TBD + auto cckts = req->get_query_param("cckts"); + return make_ready_future(""); + }); + + cs::invalidate_key_cache.set(r, [](std::unique_ptr req) { + // TBD + return make_ready_future(""); + }); + + cs::invalidate_counter_cache.set(r, [](std::unique_ptr req) { + // TBD + return make_ready_future(""); + }); + + cs::set_row_cache_capacity_in_mb.set(r, [](std::unique_ptr req) { + // TBD + auto capacity = req->get_query_param("capacity"); + return make_ready_future(""); + }); + + cs::set_key_cache_capacity_in_mb.set(r, [](std::unique_ptr req) { + // TBD + auto period = req->get_query_param("period"); + return make_ready_future(""); + }); + + cs::set_counter_cache_capacity_in_mb.set(r, [](std::unique_ptr req) { + // TBD + auto capacity = req->get_query_param("capacity"); + return make_ready_future(""); + }); + + cs::save_caches.set(r, [](std::unique_ptr req) { + // TBD + return make_ready_future(""); + }); +} + +} + diff --git a/api/cache_service.hh b/api/cache_service.hh new file mode 100644 index 0000000000..a01fcaff29 --- /dev/null +++ b/api/cache_service.hh @@ -0,0 +1,18 @@ +/* + * Copyright 2015 Cloudius Systems + */ + +#ifndef API_CACHE_SERVICE_HH_ +#define API_CACHE_SERVICE_HH_ + +#include "api.hh" + +namespace api { + +void set_cache_service(http_context& ctx, routes& r); + +} + + + +#endif /* API_CACHE_SERVICE_HH_ */ diff --git a/configure.py b/configure.py index 55b233963f..0a89e97744 100755 --- a/configure.py +++ b/configure.py @@ -325,6 +325,7 @@ api = ['api/api.cc', 'api/api-doc/storage_proxy.json', 'api/storage_proxy.cc', 'api/api-doc/cache_service.json', + 'api/cache_service.cc', ] boost_test_lib = [