X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Fcls%2Fsdk%2Fcls_sdk.cc;fp=src%2Fceph%2Fsrc%2Fcls%2Fsdk%2Fcls_sdk.cc;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=1f907b498029ec88182824a2aeb3e07be2c7491e;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/cls/sdk/cls_sdk.cc b/src/ceph/src/cls/sdk/cls_sdk.cc deleted file mode 100644 index 1f907b4..0000000 --- a/src/ceph/src/cls/sdk/cls_sdk.cc +++ /dev/null @@ -1,131 +0,0 @@ -/* - * This is an example RADOS object class built using only the Ceph SDK interface. - */ -#include "include/rados/objclass.h" - -CLS_VER(1,0) -CLS_NAME(sdk) - -cls_handle_t h_class; -cls_method_handle_t h_test_coverage_write; -cls_method_handle_t h_test_coverage_replay; - -/** - * test_coverage_write - a "write" method that creates an object - * - * This method modifies the object by making multiple write calls (write, - * setxattr and set_val). - */ -static int test_coverage_write(cls_method_context_t hctx, bufferlist *in, bufferlist *out) -{ - // create the object - int ret = cls_cxx_create(hctx, false); - if (ret < 0) { - CLS_LOG(0, "ERROR: %s(): cls_cxx_create returned %d", __func__, ret); - return ret; - } - - uint64_t size; - // get the size of the object - ret = cls_cxx_stat(hctx, &size, NULL); - if (ret < 0) - return ret; - - std::string c = "test"; - bufferlist bl; - bl.append(c); - - // write to the object - ret = cls_cxx_write(hctx, 0, bl.length(), &bl); - if (ret < 0) - return ret; - - uint64_t new_size; - // get the new size of the object - ret = cls_cxx_stat(hctx, &new_size, NULL); - if (ret < 0) - return ret; - - // make some change to the xattr - ret = cls_cxx_setxattr(hctx, "foo", &bl); - if (ret < 0) - return ret; - - // make some change to the omap - ret = cls_cxx_map_set_val(hctx, "foo", &bl); - if (ret < 0) - return ret; - - return 0; -} - -/** - * test_coverage_replay - a "read" method to retrieve previously written data - * - * This method reads the object by making multiple read calls (read, getxattr - * and get_val). It also removes the object after reading. - */ - -static int test_coverage_replay(cls_method_context_t hctx, bufferlist *in, bufferlist *out) -{ - CLS_LOG(0, "reading already written object"); - uint64_t size; - // get the size of the object - int ret = cls_cxx_stat(hctx, &size, NULL); - if (ret < 0) - return ret; - - bufferlist bl; - // read the object entry - ret = cls_cxx_read(hctx, 0, size, &bl); - if (ret < 0) - return ret; - - // if the size is incorrect - if (bl.length() != size) - return -EIO; - - bl.clear(); - - // read xattr entry - ret = cls_cxx_getxattr(hctx, "foo", &bl); - if (ret < 0) - return ret; - - // if the size is incorrect - if (bl.length() != size) - return -EIO; - - bl.clear(); - - // read omap entry - ret = cls_cxx_map_get_val(hctx, "foo", &bl); - if (ret < 0) - return ret; - - // if the size is incorrect - if (bl.length() != size) - return -EIO; - - // remove the object - ret = cls_cxx_remove(hctx); - if (ret < 0) - return ret; - - return 0; -} - -void __cls_init() -{ - CLS_LOG(0, "loading cls_sdk"); - - cls_register("sdk", &h_class); - - cls_register_cxx_method(h_class, "test_coverage_write", - CLS_METHOD_RD|CLS_METHOD_WR, - test_coverage_write, &h_test_coverage_write); - - cls_register_cxx_method(h_class, "test_coverage_replay", - CLS_METHOD_RD|CLS_METHOD_WR, - test_coverage_replay, &h_test_coverage_replay); -}