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)
#include "cls/version/cls_version_types.h"
#include "rgw_rados.h"
+#include "rgw_tools.h"
#define dout_subsys ceph_subsys_rgw
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) {
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;
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;
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)