X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Frgw%2Frgw_dencoder.cc;fp=src%2Fceph%2Fsrc%2Frgw%2Frgw_dencoder.cc;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=415eadb3c08b6b25a3017553d64a26a74376aa38;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/rgw/rgw_dencoder.cc b/src/ceph/src/rgw/rgw_dencoder.cc deleted file mode 100644 index 415eadb..0000000 --- a/src/ceph/src/rgw/rgw_dencoder.cc +++ /dev/null @@ -1,499 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab - -#include "rgw_common.h" -#include "rgw_rados.h" -#include "rgw_log.h" -#include "rgw_acl.h" -#include "rgw_acl_s3.h" -#include "rgw_cache.h" - -#include "common/Formatter.h" - -static string shadow_ns = RGW_OBJ_NS_SHADOW; - -static void init_bucket(rgw_bucket *b, const char *t, const char *n, const char *dp, const char *ip, const char *m, const char *id) -{ - b->tenant = t; - b->name = n; - b->marker = m; - b->bucket_id = id; - b->explicit_placement.data_pool = rgw_pool(dp); - b->explicit_placement.index_pool = rgw_pool(ip); -} - -void RGWObjManifestPart::generate_test_instances(std::list& o) -{ - o.push_back(new RGWObjManifestPart); - - RGWObjManifestPart *p = new RGWObjManifestPart; - rgw_bucket b; - init_bucket(&b, "tenant", "bucket", ".pool", ".index_pool", "marker_", "12"); - - p->loc = rgw_obj(b, "object"); - p->loc_ofs = 512 * 1024; - p->size = 128 * 1024; - o.push_back(p); -} - -void RGWObjManifest::obj_iterator::seek(uint64_t o) -{ - ofs = o; - if (manifest->explicit_objs) { - explicit_iter = manifest->objs.upper_bound(ofs); - if (explicit_iter != manifest->objs.begin()) { - --explicit_iter; - } - if (ofs >= manifest->obj_size) { - ofs = manifest->obj_size; - return; - } - update_explicit_pos(); - update_location(); - return; - } - if (o < manifest->get_head_size()) { - rule_iter = manifest->rules.begin(); - stripe_ofs = 0; - stripe_size = manifest->get_head_size(); - if (rule_iter != manifest->rules.end()) { - cur_part_id = rule_iter->second.start_part_num; - cur_override_prefix = rule_iter->second.override_prefix; - } - update_location(); - return; - } - - rule_iter = manifest->rules.upper_bound(ofs); - next_rule_iter = rule_iter; - if (rule_iter != manifest->rules.begin()) { - --rule_iter; - } - - if (rule_iter == manifest->rules.end()) { - update_location(); - return; - } - - RGWObjManifestRule& rule = rule_iter->second; - - if (rule.part_size > 0) { - cur_part_id = rule.start_part_num + (ofs - rule.start_ofs) / rule.part_size; - } else { - cur_part_id = rule.start_part_num; - } - part_ofs = rule.start_ofs + (cur_part_id - rule.start_part_num) * rule.part_size; - - if (rule.stripe_max_size > 0) { - cur_stripe = (ofs - part_ofs) / rule.stripe_max_size; - - stripe_ofs = part_ofs + cur_stripe * rule.stripe_max_size; - if (!cur_part_id && manifest->get_head_size() > 0) { - cur_stripe++; - } - } else { - cur_stripe = 0; - stripe_ofs = part_ofs; - } - - if (!rule.part_size) { - stripe_size = rule.stripe_max_size; - stripe_size = MIN(manifest->get_obj_size() - stripe_ofs, stripe_size); - } else { - uint64_t next = MIN(stripe_ofs + rule.stripe_max_size, part_ofs + rule.part_size); - stripe_size = next - stripe_ofs; - } - - cur_override_prefix = rule.override_prefix; - - update_location(); -} - -void RGWObjManifest::obj_iterator::update_location() -{ - if (manifest->explicit_objs) { - location = explicit_iter->second.loc; - return; - } - - if (ofs < manifest->get_head_size()) { - location = manifest->get_obj(); - location.set_placement_rule(manifest->get_head_placement_rule()); - return; - } - - manifest->get_implicit_location(cur_part_id, cur_stripe, ofs, &cur_override_prefix, &location); -} - -void RGWObjManifest::obj_iterator::update_explicit_pos() -{ - ofs = explicit_iter->first; - stripe_ofs = ofs; - - map::iterator next_iter = explicit_iter; - ++next_iter; - if (next_iter != manifest->objs.end()) { - stripe_size = next_iter->first - ofs; - } else { - stripe_size = manifest->obj_size - ofs; - } -} - -void RGWObjManifest::generate_test_instances(std::list& o) -{ - RGWObjManifest *m = new RGWObjManifest; - for (int i = 0; i<10; i++) { - RGWObjManifestPart p; - rgw_bucket b; - init_bucket(&b, "tenant", "bucket", ".pool", ".index_pool", "marker_", "12"); - p.loc = rgw_obj(b, "object"); - p.loc_ofs = 0; - p.size = 512 * 1024; - m->objs[(uint64_t)i * 512 * 1024] = p; - } - m->obj_size = 5 * 1024 * 1024; - - o.push_back(m); - - o.push_back(new RGWObjManifest); -} - -void RGWObjManifest::get_implicit_location(uint64_t cur_part_id, uint64_t cur_stripe, uint64_t ofs, string *override_prefix, rgw_obj_select *location) -{ - rgw_obj loc; - - string& oid = loc.key.name; - string& ns = loc.key.ns; - - if (!override_prefix || override_prefix->empty()) { - oid = prefix; - } else { - oid = *override_prefix; - } - - if (!cur_part_id) { - if (ofs < max_head_size) { - location->set_placement_rule(head_placement_rule); - *location = obj; - return; - } else { - char buf[16]; - snprintf(buf, sizeof(buf), "%d", (int)cur_stripe); - oid += buf; - ns = shadow_ns; - } - } else { - char buf[32]; - if (cur_stripe == 0) { - snprintf(buf, sizeof(buf), ".%d", (int)cur_part_id); - oid += buf; - ns= RGW_OBJ_NS_MULTIPART; - } else { - snprintf(buf, sizeof(buf), ".%d_%d", (int)cur_part_id, (int)cur_stripe); - oid += buf; - ns = shadow_ns; - } - } - - if (!tail_placement.bucket.name.empty()) { - loc.bucket = tail_placement.bucket; - } else { - loc.bucket = obj.bucket; - } - - // Always overwrite instance with tail_instance - // to get the right shadow object location - loc.key.set_instance(tail_instance); - - location->set_placement_rule(tail_placement.placement_rule); - *location = loc; -} - - - -void rgw_log_entry::generate_test_instances(list& o) -{ - rgw_log_entry *e = new rgw_log_entry; - e->object_owner = "object_owner"; - e->bucket_owner = "bucket_owner"; - e->bucket = "bucket"; - e->remote_addr = "1.2.3.4"; - e->user = "user"; - e->obj = rgw_obj_key("obj"); - e->uri = "http://uri/bucket/obj"; - e->http_status = "200"; - e->error_code = "error_code"; - e->bytes_sent = 1024; - e->bytes_received = 512; - e->obj_size = 2048; - e->user_agent = "user_agent"; - e->referrer = "referrer"; - e->bucket_id = "10"; - o.push_back(e); - o.push_back(new rgw_log_entry); -} - -void ACLPermission::generate_test_instances(list& o) -{ - ACLPermission *p = new ACLPermission; - p->set_permissions(RGW_PERM_WRITE_ACP); - o.push_back(p); - o.push_back(new ACLPermission); -} - -void ACLGranteeType::generate_test_instances(list& o) -{ - ACLGranteeType *t = new ACLGranteeType; - t->set(ACL_TYPE_CANON_USER); - o.push_back(t); - o.push_back(new ACLGranteeType); -} - -/* the following is copied here from rgw_acl_s3.cc, to avoid having to have excessive linking - with everything it needs */ - -#define RGW_URI_ALL_USERS "http://acs.amazonaws.com/groups/global/AllUsers" -#define RGW_URI_AUTH_USERS "http://acs.amazonaws.com/groups/global/AuthenticatedUsers" - -static string rgw_uri_all_users = RGW_URI_ALL_USERS; -static string rgw_uri_auth_users = RGW_URI_AUTH_USERS; - -ACLGroupTypeEnum ACLGrant::uri_to_group(string& uri) -{ - // this is required for backward compatibility - return ACLGrant_S3::uri_to_group(uri); -} - -ACLGroupTypeEnum ACLGrant_S3::uri_to_group(string& uri) -{ - if (uri.compare(rgw_uri_all_users) == 0) - return ACL_GROUP_ALL_USERS; - else if (uri.compare(rgw_uri_auth_users) == 0) - return ACL_GROUP_AUTHENTICATED_USERS; - - return ACL_GROUP_NONE; -} - -void ACLGrant::generate_test_instances(list& o) -{ - rgw_user id("rgw"); - string name, email; - name = "Mr. RGW"; - email = "r@gw"; - - ACLGrant *g1 = new ACLGrant; - g1->set_canon(id, name, RGW_PERM_READ); - g1->email = email; - o.push_back(g1); - - ACLGrant *g2 = new ACLGrant; - g1->set_group(ACL_GROUP_AUTHENTICATED_USERS, RGW_PERM_WRITE); - o.push_back(g2); - - o.push_back(new ACLGrant); -} - -void RGWAccessControlList::generate_test_instances(list& o) -{ - RGWAccessControlList *acl = new RGWAccessControlList(NULL); - - list glist; - list::iterator iter; - - ACLGrant::generate_test_instances(glist); - for (iter = glist.begin(); iter != glist.end(); ++iter) { - ACLGrant *grant = *iter; - acl->add_grant(grant); - - delete grant; - } - o.push_back(acl); - o.push_back(new RGWAccessControlList(NULL)); -} - -void ACLOwner::generate_test_instances(list& o) -{ - ACLOwner *owner = new ACLOwner; - owner->id = "rgw"; - owner->display_name = "Mr. RGW"; - o.push_back(owner); - o.push_back(new ACLOwner); -} - -void RGWAccessControlPolicy::generate_test_instances(list& o) -{ - list acl_list; - list::iterator iter; - for (iter = acl_list.begin(); iter != acl_list.end(); ++iter) { - RGWAccessControlList::generate_test_instances(acl_list); - iter = acl_list.begin(); - - RGWAccessControlPolicy *p = new RGWAccessControlPolicy(NULL); - RGWAccessControlList *l = *iter; - p->acl = *l; - - string name = "radosgw"; - rgw_user id("rgw"); - p->owner.set_name(name); - p->owner.set_id(id); - - o.push_back(p); - - delete l; - } - - o.push_back(new RGWAccessControlPolicy(NULL)); -} - - -void ObjectMetaInfo::generate_test_instances(list& o) -{ - ObjectMetaInfo *m = new ObjectMetaInfo; - m->size = 1024 * 1024; - o.push_back(m); - o.push_back(new ObjectMetaInfo); -} - -void ObjectCacheInfo::generate_test_instances(list& o) -{ - ObjectCacheInfo *i = new ObjectCacheInfo; - i->status = 0; - i->flags = CACHE_FLAG_MODIFY_XATTRS; - string s = "this is a string"; - string s2 = "this is a another string"; - bufferlist data, data2; - ::encode(s, data); - ::encode(s2, data2); - i->data = data; - i->xattrs["x1"] = data; - i->xattrs["x2"] = data2; - i->rm_xattrs["r2"] = data2; - i->rm_xattrs["r3"] = data; - i->meta.size = 512 * 1024; - o.push_back(i); - o.push_back(new ObjectCacheInfo); -} - -void RGWCacheNotifyInfo::generate_test_instances(list& o) -{ - o.push_back(new RGWCacheNotifyInfo); -} - -void RGWAccessKey::generate_test_instances(list& o) -{ - RGWAccessKey *k = new RGWAccessKey; - k->id = "id"; - k->key = "key"; - k->subuser = "subuser"; - o.push_back(k); - o.push_back(new RGWAccessKey); -} - -void RGWSubUser::generate_test_instances(list& o) -{ - RGWSubUser *u = new RGWSubUser; - u->name = "name"; - u->perm_mask = 0xf; - o.push_back(u); - o.push_back(new RGWSubUser); -} - -void RGWUserInfo::generate_test_instances(list& o) -{ - RGWUserInfo *i = new RGWUserInfo; - i->auid = 1; - i->user_id = "user_id"; - i->display_name = "display_name"; - i->user_email = "user@email"; - RGWAccessKey k1, k2; - k1.id = "id1"; - k1.key = "key1"; - k2.id = "id2"; - k2.subuser = "subuser"; - RGWSubUser u; - u.name = "id2"; - u.perm_mask = 0x1; - i->access_keys[k1.id] = k1; - i->swift_keys[k2.id] = k2; - i->subusers[u.name] = u; - o.push_back(i); - - o.push_back(new RGWUserInfo); -} - -void rgw_bucket::generate_test_instances(list& o) -{ - rgw_bucket *b = new rgw_bucket; - init_bucket(b, "tenant", "name", "pool", ".index_pool", "marker", "123"); - o.push_back(b); - o.push_back(new rgw_bucket); -} - -void RGWBucketInfo::generate_test_instances(list& o) -{ - RGWBucketInfo *i = new RGWBucketInfo; - init_bucket(&i->bucket, "tenant", "bucket", "pool", ".index_pool", "marker", "10"); - i->owner = "owner"; - i->flags = BUCKET_SUSPENDED; - o.push_back(i); - o.push_back(new RGWBucketInfo); -} - -void RGWZoneGroup::generate_test_instances(list& o) -{ - RGWZoneGroup *r = new RGWZoneGroup; - o.push_back(r); - o.push_back(new RGWZoneGroup); -} - -void RGWZone::generate_test_instances(list &o) -{ - RGWZone *z = new RGWZone; - o.push_back(z); - o.push_back(new RGWZone); -} - -void RGWZoneParams::generate_test_instances(list &o) -{ - o.push_back(new RGWZoneParams); - o.push_back(new RGWZoneParams); -} - -void RGWOLHInfo::generate_test_instances(list &o) -{ - RGWOLHInfo *olh = new RGWOLHInfo; - olh->removed = false; - o.push_back(olh); - o.push_back(new RGWOLHInfo); -} - -void RGWBucketEnt::generate_test_instances(list& o) -{ - RGWBucketEnt *e = new RGWBucketEnt; - init_bucket(&e->bucket, "tenant", "bucket", "pool", ".index_pool", "marker", "10"); - e->size = 1024; - e->size_rounded = 4096; - e->count = 1; - o.push_back(e); - o.push_back(new RGWBucketEnt); -} - -void RGWUploadPartInfo::generate_test_instances(list& o) -{ - RGWUploadPartInfo *i = new RGWUploadPartInfo; - i->num = 1; - i->size = 10 * 1024 * 1024; - i->etag = "etag"; - o.push_back(i); - o.push_back(new RGWUploadPartInfo); -} - -void rgw_obj::generate_test_instances(list& o) -{ - rgw_bucket b; - init_bucket(&b, "tenant", "bucket", "pool", ".index_pool", "marker", "10"); - rgw_obj *obj = new rgw_obj(b, "object"); - o.push_back(obj); - o.push_back(new rgw_obj); -} -