X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Fcls%2Frgw%2Fcls_rgw_types.cc;fp=src%2Fceph%2Fsrc%2Fcls%2Frgw%2Fcls_rgw_types.cc;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=1917235627ec738135f115b2685cdb7a2cf3b0f8;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/cls/rgw/cls_rgw_types.cc b/src/ceph/src/cls/rgw/cls_rgw_types.cc deleted file mode 100644 index 1917235..0000000 --- a/src/ceph/src/cls/rgw/cls_rgw_types.cc +++ /dev/null @@ -1,628 +0,0 @@ - -#include "cls/rgw/cls_rgw_types.h" -#include "common/ceph_json.h" -#include "include/utime.h" - - -void rgw_bucket_pending_info::generate_test_instances(list& o) -{ - rgw_bucket_pending_info *i = new rgw_bucket_pending_info; - i->state = CLS_RGW_STATE_COMPLETE; - i->op = CLS_RGW_OP_DEL; - o.push_back(i); - o.push_back(new rgw_bucket_pending_info); -} - -void rgw_bucket_pending_info::dump(Formatter *f) const -{ - encode_json("state", (int)state, f); - utime_t ut(timestamp); - encode_json("timestamp", ut, f); - encode_json("op", (int)op, f); -} - -void rgw_bucket_pending_info::decode_json(JSONObj *obj) { - int val; - JSONDecoder::decode_json("state", val, obj); - state = (RGWPendingState)val; - utime_t ut(timestamp); - JSONDecoder::decode_json("timestamp", ut, obj); - JSONDecoder::decode_json("op", val, obj); - op = (uint8_t)val; -} - -void cls_rgw_obj_key::decode_json(JSONObj *obj) { - JSONDecoder::decode_json("name", name, obj); - JSONDecoder::decode_json("instance", instance, obj); -} - -void rgw_bucket_dir_entry_meta::generate_test_instances(list& o) -{ - rgw_bucket_dir_entry_meta *m = new rgw_bucket_dir_entry_meta; - m->category = 1; - m->size = 100; - m->etag = "etag"; - m->owner = "owner"; - m->owner_display_name = "display name"; - m->content_type = "content/type"; - o.push_back(m); - o.push_back(new rgw_bucket_dir_entry_meta); -} - -void rgw_bucket_dir_entry_meta::dump(Formatter *f) const -{ - encode_json("category", (int)category, f); - encode_json("size", size, f); - utime_t ut(mtime); - encode_json("mtime", ut, f); - encode_json("etag", etag, f); - encode_json("owner", owner, f); - encode_json("owner_display_name", owner_display_name, f); - encode_json("content_type", content_type, f); - encode_json("accounted_size", accounted_size, f); - encode_json("user_data", user_data, f); -} - -void rgw_bucket_dir_entry_meta::decode_json(JSONObj *obj) { - int val; - JSONDecoder::decode_json("category", val, obj); - category = (uint8_t)val; - JSONDecoder::decode_json("size", size, obj); - utime_t ut(mtime); - JSONDecoder::decode_json("mtime", ut, obj); - JSONDecoder::decode_json("etag", etag, obj); - JSONDecoder::decode_json("owner", owner, obj); - JSONDecoder::decode_json("owner_display_name", owner_display_name, obj); - JSONDecoder::decode_json("content_type", content_type, obj); - JSONDecoder::decode_json("accounted_size", accounted_size, obj); - JSONDecoder::decode_json("user_data", user_data, obj); -} - -void rgw_bucket_dir_entry::generate_test_instances(list& o) -{ - list l; - rgw_bucket_dir_entry_meta::generate_test_instances(l); - - list::iterator iter; - for (iter = l.begin(); iter != l.end(); ++iter) { - rgw_bucket_dir_entry_meta *m = *iter; - rgw_bucket_dir_entry *e = new rgw_bucket_dir_entry; - e->key.name = "name"; - e->ver.pool = 1; - e->ver.epoch = 1234; - e->locator = "locator"; - e->exists = true; - e->meta = *m; - e->tag = "tag"; - - o.push_back(e); - - delete m; - } - o.push_back(new rgw_bucket_dir_entry); -} - -void rgw_bucket_entry_ver::dump(Formatter *f) const -{ - encode_json("pool", pool, f); - encode_json("epoch", epoch, f); -} - -void rgw_bucket_entry_ver::decode_json(JSONObj *obj) { - JSONDecoder::decode_json("pool", pool, obj); - JSONDecoder::decode_json("epoch", epoch, obj); -} - -void rgw_bucket_entry_ver::generate_test_instances(list& ls) -{ - ls.push_back(new rgw_bucket_entry_ver); - ls.push_back(new rgw_bucket_entry_ver); - ls.back()->pool = 123; - ls.back()->epoch = 12322; -} - - -void rgw_bucket_dir_entry::dump(Formatter *f) const -{ - encode_json("name", key.name, f); - encode_json("instance", key.instance , f); - encode_json("ver", ver , f); - encode_json("locator", locator , f); - encode_json("exists", exists , f); - encode_json("meta", meta , f); - encode_json("tag", tag , f); - encode_json("flags", (int)flags , f); - encode_json("pending_map", pending_map, f); - encode_json("versioned_epoch", versioned_epoch , f); -} - -void rgw_bucket_dir_entry::decode_json(JSONObj *obj) { - JSONDecoder::decode_json("name", key.name, obj); - JSONDecoder::decode_json("instance", key.instance , obj); - JSONDecoder::decode_json("ver", ver , obj); - JSONDecoder::decode_json("locator", locator , obj); - JSONDecoder::decode_json("exists", exists , obj); - JSONDecoder::decode_json("meta", meta , obj); - JSONDecoder::decode_json("tag", tag , obj); - int val; - JSONDecoder::decode_json("flags", val , obj); - flags = (uint16_t)val; - JSONDecoder::decode_json("pending_map", pending_map, obj); - JSONDecoder::decode_json("versioned_epoch", versioned_epoch, obj); -} - -static void dump_bi_entry(bufferlist bl, BIIndexType index_type, Formatter *formatter) -{ - bufferlist::iterator iter = bl.begin(); - switch (index_type) { - case PlainIdx: - case InstanceIdx: - { - rgw_bucket_dir_entry entry; - ::decode(entry, iter); - encode_json("entry", entry, formatter); - } - break; - case OLHIdx: - { - rgw_bucket_olh_entry entry; - ::decode(entry, iter); - encode_json("entry", entry, formatter); - } - break; - default: - break; - } -} - -void rgw_cls_bi_entry::decode_json(JSONObj *obj, cls_rgw_obj_key *effective_key) { - JSONDecoder::decode_json("idx", idx, obj); - string s; - JSONDecoder::decode_json("type", s, obj); - if (s == "plain") { - type = PlainIdx; - } else if (s == "instance") { - type = InstanceIdx; - } else if (s == "olh") { - type = OLHIdx; - } else { - type = InvalidIdx; - } - switch (type) { - case PlainIdx: - case InstanceIdx: - { - rgw_bucket_dir_entry entry; - JSONDecoder::decode_json("entry", entry, obj); - ::encode(entry, data); - - if (effective_key) { - *effective_key = entry.key; - } - } - break; - case OLHIdx: - { - rgw_bucket_olh_entry entry; - JSONDecoder::decode_json("entry", entry, obj); - ::encode(entry, data); - - if (effective_key) { - *effective_key = entry.key; - } - } - break; - default: - break; - } -} - -void rgw_cls_bi_entry::dump(Formatter *f) const -{ - string type_str; - switch (type) { - case PlainIdx: - type_str = "plain"; - break; - case InstanceIdx: - type_str = "instance"; - break; - case OLHIdx: - type_str = "olh"; - break; - default: - type_str = "invalid"; - } - encode_json("type", type_str, f); - encode_json("idx", idx, f); - dump_bi_entry(data, type, f); -} - -bool rgw_cls_bi_entry::get_info(cls_rgw_obj_key *key, uint8_t *category, rgw_bucket_category_stats *accounted_stats) -{ - bool account = false; - bufferlist::iterator iter = data.begin(); - switch (type) { - case PlainIdx: - case InstanceIdx: - { - rgw_bucket_dir_entry entry; - ::decode(entry, iter); - *key = entry.key; - *category = entry.meta.category; - accounted_stats->num_entries++; - accounted_stats->total_size += entry.meta.accounted_size; - accounted_stats->total_size_rounded += cls_rgw_get_rounded_size(entry.meta.accounted_size); - account = true; - } - break; - case OLHIdx: - { - rgw_bucket_olh_entry entry; - ::decode(entry, iter); - *key = entry.key; - } - break; - default: - break; - } - - return account; -} - -void rgw_bucket_olh_entry::dump(Formatter *f) const -{ - encode_json("key", key, f); - encode_json("delete_marker", delete_marker, f); - encode_json("epoch", epoch, f); - encode_json("pending_log", pending_log, f); - encode_json("tag", tag, f); - encode_json("exists", exists, f); - encode_json("pending_removal", pending_removal, f); -} - -void rgw_bucket_olh_entry::decode_json(JSONObj *obj) -{ - JSONDecoder::decode_json("key", key, obj); - JSONDecoder::decode_json("delete_marker", delete_marker, obj); - JSONDecoder::decode_json("epoch", epoch, obj); - JSONDecoder::decode_json("pending_log", pending_log, obj); - JSONDecoder::decode_json("tag", tag, obj); - JSONDecoder::decode_json("exists", exists, obj); - JSONDecoder::decode_json("pending_removal", pending_removal, obj); -} - -void rgw_bucket_olh_log_entry::generate_test_instances(list& o) -{ - rgw_bucket_olh_log_entry *entry = new rgw_bucket_olh_log_entry; - entry->epoch = 1234; - entry->op = CLS_RGW_OLH_OP_LINK_OLH; - entry->op_tag = "op_tag"; - entry->key.name = "key.name"; - entry->key.instance = "key.instance"; - entry->delete_marker = true; - o.push_back(entry); - o.push_back(new rgw_bucket_olh_log_entry); -} - -void rgw_bucket_olh_log_entry::dump(Formatter *f) const -{ - encode_json("epoch", epoch, f); - const char *op_str; - switch (op) { - case CLS_RGW_OLH_OP_LINK_OLH: - op_str = "link_olh"; - break; - case CLS_RGW_OLH_OP_UNLINK_OLH: - op_str = "unlink_olh"; - break; - case CLS_RGW_OLH_OP_REMOVE_INSTANCE: - op_str = "remove_instance"; - break; - default: - op_str = "unknown"; - } - encode_json("op", op_str, f); - encode_json("op_tag", op_tag, f); - encode_json("key", key, f); - encode_json("delete_marker", delete_marker, f); -} - -void rgw_bucket_olh_log_entry::decode_json(JSONObj *obj) -{ - JSONDecoder::decode_json("epoch", epoch, obj); - string op_str; - JSONDecoder::decode_json("op", op_str, obj); - if (op_str == "link_olh") { - op = CLS_RGW_OLH_OP_LINK_OLH; - } else if (op_str == "unlink_olh") { - op = CLS_RGW_OLH_OP_UNLINK_OLH; - } else if (op_str == "remove_instance") { - op = CLS_RGW_OLH_OP_REMOVE_INSTANCE; - } else { - op = CLS_RGW_OLH_OP_UNKNOWN; - } - JSONDecoder::decode_json("op_tag", op_tag, obj); - JSONDecoder::decode_json("key", key, obj); - JSONDecoder::decode_json("delete_marker", delete_marker, obj); -} -void rgw_bi_log_entry::decode_json(JSONObj *obj) -{ - JSONDecoder::decode_json("op_id", id, obj); - JSONDecoder::decode_json("op_tag", tag, obj); - string op_str; - JSONDecoder::decode_json("op", op_str, obj); - if (op_str == "write") { - op = CLS_RGW_OP_ADD; - } else if (op_str == "del") { - op = CLS_RGW_OP_DEL; - } else if (op_str == "cancel") { - op = CLS_RGW_OP_CANCEL; - } else if (op_str == "unknown") { - op = CLS_RGW_OP_UNKNOWN; - } else if (op_str == "link_olh") { - op = CLS_RGW_OP_LINK_OLH; - } else if (op_str == "link_olh_del") { - op = CLS_RGW_OP_LINK_OLH_DM; - } else if (op_str == "unlink_instance") { - op = CLS_RGW_OP_UNLINK_INSTANCE; - } else if (op_str == "syncstop") { - op = CLS_RGW_OP_SYNCSTOP; - } else if (op_str == "resync") { - op = CLS_RGW_OP_RESYNC; - } else { - op = CLS_RGW_OP_UNKNOWN; - } - JSONDecoder::decode_json("object", object, obj); - JSONDecoder::decode_json("instance", instance, obj); - string state_str; - JSONDecoder::decode_json("state", state_str, obj); - if (state_str == "pending") { - state = CLS_RGW_STATE_PENDING_MODIFY; - } else if (state_str == "complete") { - state = CLS_RGW_STATE_COMPLETE; - } else { - state = CLS_RGW_STATE_UNKNOWN; - } - JSONDecoder::decode_json("index_ver", index_ver, obj); - utime_t ut; - JSONDecoder::decode_json("timestamp", ut, obj); - timestamp = ut.to_real_time(); - uint32_t f; - JSONDecoder::decode_json("bilog_flags", f, obj); - JSONDecoder::decode_json("ver", ver, obj); - bilog_flags = (uint16_t)f; - JSONDecoder::decode_json("owner", owner, obj); - JSONDecoder::decode_json("owner_display_name", owner_display_name, obj); - JSONDecoder::decode_json("zones_trace", zones_trace, obj); -} - -void rgw_bi_log_entry::dump(Formatter *f) const -{ - f->dump_string("op_id", id); - f->dump_string("op_tag", tag); - switch (op) { - case CLS_RGW_OP_ADD: - f->dump_string("op", "write"); - break; - case CLS_RGW_OP_DEL: - f->dump_string("op", "del"); - break; - case CLS_RGW_OP_CANCEL: - f->dump_string("op", "cancel"); - break; - case CLS_RGW_OP_UNKNOWN: - f->dump_string("op", "unknown"); - break; - case CLS_RGW_OP_LINK_OLH: - f->dump_string("op", "link_olh"); - break; - case CLS_RGW_OP_LINK_OLH_DM: - f->dump_string("op", "link_olh_del"); - break; - case CLS_RGW_OP_UNLINK_INSTANCE: - f->dump_string("op", "unlink_instance"); - break; - case CLS_RGW_OP_SYNCSTOP: - f->dump_string("op", "syncstop"); - break; - case CLS_RGW_OP_RESYNC: - f->dump_string("op", "resync"); - break; - default: - f->dump_string("op", "invalid"); - break; - } - - f->dump_string("object", object); - f->dump_string("instance", instance); - - switch (state) { - case CLS_RGW_STATE_PENDING_MODIFY: - f->dump_string("state", "pending"); - break; - case CLS_RGW_STATE_COMPLETE: - f->dump_string("state", "complete"); - break; - default: - f->dump_string("state", "invalid"); - break; - } - - f->dump_int("index_ver", index_ver); - utime_t ut(timestamp); - ut.gmtime_nsec(f->dump_stream("timestamp")); - f->open_object_section("ver"); - ver.dump(f); - f->close_section(); - f->dump_int("bilog_flags", bilog_flags); - f->dump_bool("versioned", (bilog_flags & RGW_BILOG_FLAG_VERSIONED_OP) != 0); - f->dump_string("owner", owner); - f->dump_string("owner_display_name", owner_display_name); - encode_json("zones_trace", zones_trace, f); -} - -void rgw_bi_log_entry::generate_test_instances(list& ls) -{ - ls.push_back(new rgw_bi_log_entry); - ls.push_back(new rgw_bi_log_entry); - ls.back()->id = "midf"; - ls.back()->object = "obj"; - ls.back()->timestamp = ceph::real_clock::from_ceph_timespec({2, 3}); - ls.back()->index_ver = 4323; - ls.back()->tag = "tagasdfds"; - ls.back()->op = CLS_RGW_OP_DEL; - ls.back()->state = CLS_RGW_STATE_PENDING_MODIFY; -} - -void rgw_bucket_category_stats::generate_test_instances(list& o) -{ - rgw_bucket_category_stats *s = new rgw_bucket_category_stats; - s->total_size = 1024; - s->total_size_rounded = 4096; - s->num_entries = 2; - s->actual_size = 1024; - o.push_back(s); - o.push_back(new rgw_bucket_category_stats); -} - -void rgw_bucket_category_stats::dump(Formatter *f) const -{ - f->dump_unsigned("total_size", total_size); - f->dump_unsigned("total_size_rounded", total_size_rounded); - f->dump_unsigned("num_entries", num_entries); - f->dump_unsigned("actual_size", actual_size); -} - -void rgw_bucket_dir_header::generate_test_instances(list& o) -{ - list l; - list::iterator iter; - rgw_bucket_category_stats::generate_test_instances(l); - - uint8_t i; - for (i = 0, iter = l.begin(); iter != l.end(); ++iter, ++i) { - rgw_bucket_dir_header *h = new rgw_bucket_dir_header; - rgw_bucket_category_stats *s = *iter; - h->stats[i] = *s; - - o.push_back(h); - - delete s; - } - - o.push_back(new rgw_bucket_dir_header); -} - -void rgw_bucket_dir_header::dump(Formatter *f) const -{ - f->dump_int("ver", ver); - f->dump_int("master_ver", master_ver); - map::const_iterator iter = stats.begin(); - f->open_array_section("stats"); - for (; iter != stats.end(); ++iter) { - f->dump_int("category", (int)iter->first); - f->open_object_section("category_stats"); - iter->second.dump(f); - f->close_section(); - } - ::encode_json("new_instance", new_instance, f); - f->close_section(); -} - -void rgw_bucket_dir::generate_test_instances(list& o) -{ - list l; - list::iterator iter; - rgw_bucket_dir_header::generate_test_instances(l); - - uint8_t i; - for (i = 0, iter = l.begin(); iter != l.end(); ++iter, ++i) { - rgw_bucket_dir *d = new rgw_bucket_dir; - rgw_bucket_dir_header *h = *iter; - d->header = *h; - - list el; - list::iterator eiter; - for (eiter = el.begin(); eiter != el.end(); ++eiter) { - rgw_bucket_dir_entry *e = *eiter; - d->m[e->key.name] = *e; - - delete e; - } - - o.push_back(d); - - delete h; - } - - o.push_back(new rgw_bucket_dir); -} - -void rgw_bucket_dir::dump(Formatter *f) const -{ - f->open_object_section("header"); - header.dump(f); - f->close_section(); - map::const_iterator iter = m.begin(); - f->open_array_section("map"); - for (; iter != m.end(); ++iter) { - f->dump_string("key", iter->first); - f->open_object_section("dir_entry"); - iter->second.dump(f); - f->close_section(); - } - f->close_section(); -} - -void cls_rgw_reshard_entry::generate_key(const string& tenant, const string& bucket_name, string *key) -{ - *key = tenant + ":" + bucket_name; -} - -void cls_rgw_reshard_entry::get_key(string *key) const -{ - generate_key(tenant, bucket_name, key); -} - -void cls_rgw_reshard_entry::dump(Formatter *f) const -{ - utime_t ut(time); - encode_json("time",ut, f); - encode_json("tenant", tenant, f); - encode_json("bucket_name", bucket_name, f); - encode_json("bucket_id", bucket_id, f); - encode_json("new_instance_id", new_instance_id, f); - encode_json("old_num_shards", old_num_shards, f); - encode_json("new_num_shards", new_num_shards, f); - -} - -void cls_rgw_reshard_entry::generate_test_instances(list& ls) -{ - ls.push_back(new cls_rgw_reshard_entry); - ls.push_back(new cls_rgw_reshard_entry); - ls.back()->time = ceph::real_clock::from_ceph_timespec({2, 3}); - ls.back()->tenant = "tenant"; - ls.back()->bucket_name = "bucket1"""; - ls.back()->bucket_id = "bucket_id"; - ls.back()->new_instance_id = "new_instance_id"; - ls.back()->old_num_shards = 8; - ls.back()->new_num_shards = 64; -} - -void cls_rgw_bucket_instance_entry::dump(Formatter *f) const -{ - encode_json("reshard_status", (int)reshard_status, f); - encode_json("new_bucket_instance_id", new_bucket_instance_id, f); - encode_json("num_shards", num_shards, f); - -} - -void cls_rgw_bucket_instance_entry::generate_test_instances(list& ls) -{ - ls.push_back(new cls_rgw_bucket_instance_entry); - ls.push_back(new cls_rgw_bucket_instance_entry); - ls.back()->reshard_status = CLS_RGW_RESHARD_IN_PROGRESS; - ls.back()->new_bucket_instance_id = "new_instance_id"; -}