diff options
author | Yehuda Sadeh <yehuda@inktank.com> | 2013-05-13 14:26:19 -0700 |
---|---|---|
committer | Yehuda Sadeh <yehuda@inktank.com> | 2013-05-13 14:26:19 -0700 |
commit | d06d0c3bc42c74f49728613b5389b2576571b0e1 (patch) | |
tree | a01dcc2b15b2c197a2b0249e8922e53e5b4991ab | |
parent | bb6d1f07e4d89d8f2978d2cc8560163bbc115938 (diff) | |
download | ceph-d06d0c3bc42c74f49728613b5389b2576571b0e1.tar.gz |
rgw: slightly simplify metadata abstraction
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-rw-r--r-- | src/rgw/rgw_bucket.cc | 8 | ||||
-rw-r--r-- | src/rgw/rgw_metadata.cc | 15 | ||||
-rw-r--r-- | src/rgw/rgw_metadata.h | 3 | ||||
-rw-r--r-- | src/rgw/rgw_user.cc | 8 |
4 files changed, 19 insertions, 15 deletions
diff --git a/src/rgw/rgw_bucket.cc b/src/rgw/rgw_bucket.cc index 1495994b713..4690afdc68f 100644 --- a/src/rgw/rgw_bucket.cc +++ b/src/rgw/rgw_bucket.cc @@ -1332,11 +1332,9 @@ public: return store->delete_bucket(bucket); } - int put_entry(RGWRados *store, string& key, bufferlist& bl, bool exclusive, - RGWObjVersionTracker *objv_tracker, map<string, bufferlist> *pattrs) { - return rgw_put_system_obj(store, store->zone.domain_root, key, - bl.c_str(), bl.length(), exclusive, - objv_tracker, pattrs); + void get_pool_and_oid(RGWRados *store, string& key, rgw_bucket& bucket, string& oid) { + oid = key; + bucket = store->zone.domain_root; } int list_keys_init(RGWRados *store, void **phandle) diff --git a/src/rgw/rgw_metadata.cc b/src/rgw/rgw_metadata.cc index c474a6d0de7..8312da6b3cc 100644 --- a/src/rgw/rgw_metadata.cc +++ b/src/rgw/rgw_metadata.cc @@ -5,6 +5,7 @@ #include "cls/version/cls_version_types.h" #include "rgw_rados.h" +#include "rgw_tools.h" #define dout_subsys ceph_subsys_rgw @@ -183,8 +184,9 @@ public: virtual int get(RGWRados *store, string& entry, RGWMetadataObject **obj) { return -ENOTSUP; } virtual int put(RGWRados *store, string& entry, RGWObjVersionTracker& objv_tracker, JSONObj *obj) { return -ENOTSUP; } - virtual int put_entry(RGWRados *store, string& key, bufferlist& bl, bool exclusive, - RGWObjVersionTracker *objv_tracker, map<string, bufferlist> *pattrs) { return -ENOTSUP; } + + virtual void get_pool_and_oid(RGWRados *store, string& key, rgw_bucket& bucket, string& oid) {} + virtual int remove(RGWRados *store, string& entry, RGWObjVersionTracker& objv_tracker) { return -ENOTSUP; } virtual int list_keys_init(RGWRados *store, void **phandle) { @@ -525,7 +527,14 @@ int RGWMetadataManager::put_entry(RGWMetadataHandler *handler, string& key, buff if (ret < 0) return ret; - ret = handler->put_entry(store, key, bl, exclusive, objv_tracker, pattrs); + string oid; + rgw_bucket bucket; + + handler->get_pool_and_oid(store, key, bucket, oid); + + ret = rgw_put_system_obj(store, bucket, oid, + bl.c_str(), bl.length(), exclusive, + objv_tracker, pattrs); if (ret < 0) return ret; diff --git a/src/rgw/rgw_metadata.h b/src/rgw/rgw_metadata.h index b9e10fd7326..21a37e27cab 100644 --- a/src/rgw/rgw_metadata.h +++ b/src/rgw/rgw_metadata.h @@ -33,8 +33,7 @@ class RGWMetadataHandler { friend class RGWMetadataManager; protected: - virtual int put_entry(RGWRados *store, string& key, bufferlist& bl, bool exclusive, - RGWObjVersionTracker *objv_tracker, map<string, bufferlist> *pattrs = NULL) = 0; + virtual void get_pool_and_oid(RGWRados *store, string& key, rgw_bucket& bucket, string& oid) = 0; public: virtual ~RGWMetadataHandler() {} virtual string get_type() = 0; diff --git a/src/rgw/rgw_user.cc b/src/rgw/rgw_user.cc index 0e71dc602eb..4bb4369c2d4 100644 --- a/src/rgw/rgw_user.cc +++ b/src/rgw/rgw_user.cc @@ -2287,11 +2287,9 @@ public: return rgw_delete_user(store, info); } - int put_entry(RGWRados *store, string& key, bufferlist& bl, bool exclusive, - RGWObjVersionTracker *objv_tracker, map<string, bufferlist> *pattrs) { - return rgw_put_system_obj(store, store->zone.user_uid_pool, key, - bl.c_str(), bl.length(), exclusive, - objv_tracker, pattrs); + void get_pool_and_oid(RGWRados *store, string& key, rgw_bucket& bucket, string& oid) { + oid = key; + bucket = store->zone.user_uid_pool; } int list_keys_init(RGWRados *store, void **phandle) |