diff options
author | Yehuda Sadeh <yehuda.sadeh@dreamhost.com> | 2011-12-02 12:29:15 -0800 |
---|---|---|
committer | Yehuda Sadeh <yehuda.sadeh@dreamhost.com> | 2011-12-02 12:29:15 -0800 |
commit | bd087d8e8d10e90ef4e19bc1c6be0d485fe57cbb (patch) | |
tree | 1c1336411c822e13c7f934ed075ce1e49b37b031 | |
parent | 4ab27607efc8ad310b7a4156bb9a7126bbe388f3 (diff) | |
download | ceph-bd087d8e8d10e90ef4e19bc1c6be0d485fe57cbb.tar.gz |
rgw: get rid of old cruft
-rw-r--r-- | src/rgw/rgw_rados.h | 1 | ||||
-rw-r--r-- | src/rgw/rgw_user.cc | 157 |
2 files changed, 50 insertions, 108 deletions
diff --git a/src/rgw/rgw_rados.h b/src/rgw/rgw_rados.h index 8e7cb8dc9b0..7334cef8952 100644 --- a/src/rgw/rgw_rados.h +++ b/src/rgw/rgw_rados.h @@ -313,7 +313,6 @@ public: virtual int obj_stat(void *ctx, rgw_obj& obj, uint64_t *psize, time_t *pmtime, map<string, bufferlist> *attrs); - virtual bool supports_tmap() { return true; } virtual int tmap_get(rgw_obj& obj, bufferlist& header, std::map<string, bufferlist>& m); virtual int tmap_set(rgw_obj& obj, std::string& key, bufferlist& bl); virtual int tmap_set(rgw_obj& obj, map<std::string, bufferlist>& m); diff --git a/src/rgw/rgw_user.cc b/src/rgw/rgw_user.cc index e91d704402b..fb2809840c9 100644 --- a/src/rgw/rgw_user.cc +++ b/src/rgw/rgw_user.cc @@ -213,63 +213,39 @@ int rgw_read_user_buckets(string user_id, RGWUserBuckets& buckets, bool need_sta { int ret; buckets.clear(); - if (rgwstore->supports_tmap()) { - string buckets_obj_id; - get_buckets_obj(user_id, buckets_obj_id); - bufferlist bl; + string buckets_obj_id; + get_buckets_obj(user_id, buckets_obj_id); + bufferlist bl; #define LARGE_ENOUGH_LEN (4096 * 1024) - size_t len = LARGE_ENOUGH_LEN; - rgw_obj obj(ui_uid_bucket, buckets_obj_id); - - do { - ret = rgwstore->read(NULL, obj, 0, len, bl); - if (ret == -ENOENT) { - /* try to read the old format */ - ret = rgw_read_buckets_from_attr(user_id, buckets); - if (!ret) { - store_buckets(user_id, buckets); - goto done; - } - - ret = 0; - return 0; - } - if (ret < 0) - return ret; + size_t len = LARGE_ENOUGH_LEN; + rgw_obj obj(ui_uid_bucket, buckets_obj_id); - if ((size_t)ret != len) - break; - - len *= 2; - } while (1); - - bufferlist::iterator p = bl.begin(); - bufferlist header; - map<string,bufferlist> m; - try { - ::decode(header, p); - ::decode(m, p); - for (map<string,bufferlist>::iterator q = m.begin(); q != m.end(); q++) { - bufferlist::iterator iter = q->second.begin(); - RGWBucketEnt bucket; - ::decode(bucket, iter); - buckets.add(bucket); - } - } catch (buffer::error& err) { - dout(0) << "ERROR: failed to decode bucket information, caught buffer::error" << dendl; - return -EIO; - } - } else { - ret = rgw_read_buckets_from_attr(user_id, buckets); - switch (ret) { - case 0: - break; - case -ENODATA: - ret = 0; - return 0; - default: + do { + ret = rgwstore->read(NULL, obj, 0, len, bl); + if (ret < 0) return ret; + + if ((size_t)ret != len) + break; + + len *= 2; + } while (1); + + bufferlist::iterator p = bl.begin(); + bufferlist header; + map<string,bufferlist> m; + try { + ::decode(header, p); + ::decode(m, p); + for (map<string,bufferlist>::iterator q = m.begin(); q != m.end(); q++) { + bufferlist::iterator iter = q->second.begin(); + RGWBucketEnt bucket; + ::decode(bucket, iter); + buckets.add(bucket); } + } catch (buffer::error& err) { + dout(0) << "ERROR: failed to decode bucket information, caught buffer::error" << dendl; + return -EIO; } done: @@ -306,46 +282,24 @@ int rgw_write_buckets_attr(string user_id, RGWUserBuckets& buckets) int rgw_add_bucket(string user_id, rgw_bucket& bucket) { int ret; - string& bucket_name = bucket.name; + string& bucket_name = bucket.name; - if (rgwstore->supports_tmap()) { - bufferlist bl; + bufferlist bl; - RGWBucketEnt new_bucket; - new_bucket.bucket = bucket; - new_bucket.size = 0; - time(&new_bucket.mtime); - ::encode(new_bucket, bl); + RGWBucketEnt new_bucket; + new_bucket.bucket = bucket; + new_bucket.size = 0; + time(&new_bucket.mtime); + ::encode(new_bucket, bl); - string buckets_obj_id; - get_buckets_obj(user_id, buckets_obj_id); + string buckets_obj_id; + get_buckets_obj(user_id, buckets_obj_id); - rgw_obj obj(ui_uid_bucket, buckets_obj_id); - ret = rgwstore->tmap_create(obj, bucket_name, bl); - if (ret < 0) { - dout(0) << "error adding bucket to directory: " + rgw_obj obj(ui_uid_bucket, buckets_obj_id); + ret = rgwstore->tmap_create(obj, bucket_name, bl); + if (ret < 0) { + dout(0) << "error adding bucket to directory: " << cpp_strerror(-ret)<< dendl; - } - } else { - RGWUserBuckets buckets; - - ret = rgw_read_user_buckets(user_id, buckets, false); - RGWBucketEnt new_bucket; - - switch (ret) { - case 0: - case -ENOENT: - case -ENODATA: - new_bucket.bucket = bucket; - new_bucket.size = 0; - time(&new_bucket.mtime); - buckets.add(new_bucket); - ret = rgw_write_buckets_attr(user_id, buckets); - break; - default: - dout(10) << "rgw_write_buckets_attr returned " << ret << dendl; - break; - } } return ret; @@ -355,27 +309,16 @@ int rgw_remove_user_bucket_info(string user_id, rgw_bucket& bucket) { int ret; - if (rgwstore->supports_tmap()) { - bufferlist bl; - - string buckets_obj_id; - get_buckets_obj(user_id, buckets_obj_id); - - rgw_obj obj(ui_uid_bucket, buckets_obj_id); - ret = rgwstore->tmap_del(obj, bucket.name); - if (ret < 0) { - dout(0) << "error removing bucket from directory: " - << cpp_strerror(-ret)<< dendl; - } - } else { - RGWUserBuckets buckets; + bufferlist bl; - ret = rgw_read_user_buckets(user_id, buckets, false); + string buckets_obj_id; + get_buckets_obj(user_id, buckets_obj_id); - if (ret == 0 || ret == -ENOENT) { - buckets.remove(bucket.name); - ret = rgw_write_buckets_attr(user_id, buckets); - } + rgw_obj obj(ui_uid_bucket, buckets_obj_id); + ret = rgwstore->tmap_del(obj, bucket.name); + if (ret < 0) { + dout(0) << "error removing bucket from directory: " + << cpp_strerror(-ret)<< dendl; } return ret; |