From 5a8acb686825b874ace758ceef622dfc913f185b Mon Sep 17 00:00:00 2001 From: Radoslaw Zarzynski Date: Thu, 25 Jul 2019 19:06:50 +0200 Subject: [PATCH] crimson/osd: mock OSD-specific parts of the objclass API. Signed-off-by: Radoslaw Zarzynski --- src/crimson/osd/CMakeLists.txt | 2 + src/crimson/osd/objclass.cc | 274 +++++++++++++++++++++++++++++++++ src/crimson/osd/osd.cc | 8 + src/objclass/class_api.cc | 3 + 4 files changed, 287 insertions(+) create mode 100644 src/crimson/osd/objclass.cc diff --git a/src/crimson/osd/CMakeLists.txt b/src/crimson/osd/CMakeLists.txt index 8ee99bbfbfc..3a96d084638 100644 --- a/src/crimson/osd/CMakeLists.txt +++ b/src/crimson/osd/CMakeLists.txt @@ -18,6 +18,8 @@ add_executable(crimson-osd osd_operations/replicated_request.cc osdmap_gate.cc pg_map.cc + objclass.cc + ${PROJECT_SOURCE_DIR}/src/objclass/class_api.cc ${PROJECT_SOURCE_DIR}/src/osd/ClassHandler.cc ${PROJECT_SOURCE_DIR}/src/osd/PeeringState.cc ${PROJECT_SOURCE_DIR}/src/osd/PGPeeringEvent.cc diff --git a/src/crimson/osd/objclass.cc b/src/crimson/osd/objclass.cc new file mode 100644 index 00000000000..024c0999b06 --- /dev/null +++ b/src/crimson/osd/objclass.cc @@ -0,0 +1,274 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab + +#include +#include "common/ceph_context.h" +#include "common/ceph_releases.h" +#include "common/config.h" +#include "common/debug.h" + +#include "objclass/objclass.h" +#include "osd/ClassHandler.h" + +#include "auth/Crypto.h" +#include "common/armor.h" + +int cls_call(cls_method_context_t hctx, const char *cls, const char *method, + char *indata, int datalen, + char **outdata, int *outdatalen) +{ +// FIXME, HACK: this is for testing only. Let's use dynamic linker to verify +// our depedencies + return 0; +} + +int cls_getxattr(cls_method_context_t hctx, + const char *name, + char **outdata, + int *outdatalen) +{ + return 0; +} + +int cls_setxattr(cls_method_context_t hctx, + const char *name, + const char *value, + int val_len) +{ + return 0; +} + +int cls_read(cls_method_context_t hctx, + int ofs, int len, + char **outdata, + int *outdatalen) +{ + return 0; +} + +int cls_get_request_origin(cls_method_context_t hctx, entity_inst_t *origin) +{ + return 0; +} + +int cls_cxx_create(cls_method_context_t hctx, bool exclusive) +{ + return 0; +} + +int cls_cxx_remove(cls_method_context_t hctx) +{ + return 0; +} + +int cls_cxx_stat(cls_method_context_t hctx, uint64_t *size, time_t *mtime) +{ + return 0; +} + +int cls_cxx_stat2(cls_method_context_t hctx, + uint64_t *size, + ceph::real_time *mtime) +{ + return 0; +} + +int cls_cxx_read2(cls_method_context_t hctx, + int ofs, + int len, + bufferlist *outbl, + uint32_t op_flags) +{ + return 0; +} + +int cls_cxx_write2(cls_method_context_t hctx, + int ofs, + int len, + bufferlist *inbl, + uint32_t op_flags) +{ + return 0; +} + +int cls_cxx_write_full(cls_method_context_t hctx, bufferlist *inbl) +{ + return 0; +} + +int cls_cxx_replace(cls_method_context_t hctx, + int ofs, + int len, + bufferlist *inbl) +{ + return 0; +} + +int cls_cxx_truncate(cls_method_context_t hctx, int ofs) +{ + return 0; +} + +int cls_cxx_getxattr(cls_method_context_t hctx, + const char *name, + bufferlist *outbl) +{ + return 0; +} + +int cls_cxx_getxattrs(cls_method_context_t hctx, + map *attrset) +{ + return 0; +} + +int cls_cxx_setxattr(cls_method_context_t hctx, + const char *name, + bufferlist *inbl) +{ + return 0; +} + +int cls_cxx_snap_revert(cls_method_context_t hctx, snapid_t snapid) +{ + return 0; +} + +int cls_cxx_map_get_all_vals(cls_method_context_t hctx, + map* vals, + bool *more) +{ + return 0; +} + +int cls_cxx_map_get_keys(cls_method_context_t hctx, + const string &start_obj, + uint64_t max_to_get, + set *keys, + bool *more) +{ + return 0; +} + +int cls_cxx_map_get_vals(cls_method_context_t hctx, + const string &start_obj, + const string &filter_prefix, + uint64_t max_to_get, + map *vals, + bool *more) +{ + return 0; +} + +int cls_cxx_map_read_header(cls_method_context_t hctx, bufferlist *outbl) +{ + return 0; +} + +int cls_cxx_map_get_val(cls_method_context_t hctx, + const string &key, + bufferlist *outbl) +{ + return 0; +} + +int cls_cxx_map_set_val(cls_method_context_t hctx, + const string &key, + bufferlist *inbl) +{ + return 0; +} + +int cls_cxx_map_set_vals(cls_method_context_t hctx, + const std::map *map) +{ + return 0; +} + +int cls_cxx_map_clear(cls_method_context_t hctx) +{ + return 0; +} + +int cls_cxx_map_write_header(cls_method_context_t hctx, bufferlist *inbl) +{ + return 0; +} + +int cls_cxx_map_remove_range(cls_method_context_t hctx, + const std::string& key_begin, + const std::string& key_end) +{ + return 0; +} + +int cls_cxx_map_remove_key(cls_method_context_t hctx, const string &key) +{ + return 0; +} + +int cls_cxx_list_watchers(cls_method_context_t hctx, + obj_list_watch_response_t *watchers) +{ + return 0; +} + +uint64_t cls_current_version(cls_method_context_t hctx) +{ + return 0; +} + + +int cls_current_subop_num(cls_method_context_t hctx) +{ + return 0; +} + +uint64_t cls_get_features(cls_method_context_t hctx) +{ + return 0; +} + +uint64_t cls_get_client_features(cls_method_context_t hctx) +{ + return 0; +} + +ceph_release_t cls_get_required_osd_release(cls_method_context_t hctx) +{ + // FIXME + return ceph_release_t::nautilus; +} + +ceph_release_t cls_get_min_compatible_client(cls_method_context_t hctx) +{ + // FIXME + return ceph_release_t::nautilus; +} + +int cls_get_snapset_seq(cls_method_context_t hctx, uint64_t *snap_seq) +{ + return 0; +} + +int cls_cxx_chunk_write_and_set(cls_method_context_t hctx, + int ofs, + int len, + bufferlist *write_inbl, + uint32_t op_flags, + bufferlist *set_inbl, + int set_len) +{ + return 0; +} + +bool cls_has_chunk(cls_method_context_t hctx, string fp_oid) +{ + return 0; +} + +uint64_t cls_get_osd_min_alloc_size(cls_method_context_t hctx) { + // FIXME + return 4096; +} diff --git a/src/crimson/osd/osd.cc b/src/crimson/osd/osd.cc index e38bb9defd4..f243213810b 100644 --- a/src/crimson/osd/osd.cc +++ b/src/crimson/osd/osd.cc @@ -51,6 +51,14 @@ namespace { using ceph::common::local_conf; using ceph::os::FuturizedStore; +PGLSFilter::PGLSFilter() : cct(nullptr) +{ +} + +PGLSFilter::~PGLSFilter() +{ +} + namespace ceph::osd { OSD::OSD(int id, uint32_t nonce, diff --git a/src/objclass/class_api.cc b/src/objclass/class_api.cc index 41b29d12c2e..2ff595f08a6 100644 --- a/src/objclass/class_api.cc +++ b/src/objclass/class_api.cc @@ -1,6 +1,9 @@ // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- // vim: ts=8 sw=2 smarttab +#include +#include "common/ceph_context.h" +#include "common/ceph_releases.h" #include "common/config.h" #include "common/debug.h" -- 2.39.5