void RGWRadosParams::init_default()
{
domain_root = ".rgw";
+ control_pool = ".rgw.control";
+ gc_pool = ".rgw.gc";
+ log_pool = ".log";
+ intent_log_pool = ".intent-log";
+ usage_log_pool = ".usage";
+ user_keys_pool = ".users";
+ user_email_pool = ".users.email";
+ user_swift_pool = ".users.swift";
+ user_uid_pool = ".users.uid";
}
int RGWRados::open_gc_pool_ctx()
{
- int r = rados->ioctx_create(RGW_GC_BUCKET, gc_pool_ctx);
+ const char *gc_pool = params.gc_pool.name.c_str();
+ int r = rados->ioctx_create(gc_pool, gc_pool_ctx);
if (r == -ENOENT) {
- r = rados->pool_create(RGW_GC_BUCKET);
+ r = rados->pool_create(gc_pool);
if (r == -EEXIST)
r = 0;
if (r < 0)
return r;
- r = rados->ioctx_create(RGW_GC_BUCKET, gc_pool_ctx);
+ r = rados->ioctx_create(gc_pool, gc_pool_ctx);
}
return r;
int RGWRados::init_watch()
{
- int r = rados->ioctx_create(RGW_CONTROL_BUCKET, control_pool_ctx);
+ const char *control_pool = params.control_pool.name.c_str();
+ int r = rados->ioctx_create(control_pool, control_pool_ctx);
if (r == -ENOENT) {
- r = rados->pool_create(RGW_CONTROL_BUCKET);
+ r = rados->pool_create(control_pool);
if (r == -EEXIST)
r = 0;
if (r < 0)
return r;
- r = rados->ioctx_create(RGW_CONTROL_BUCKET, control_pool_ctx);
+ r = rados->ioctx_create(control_pool, control_pool_ctx);
if (r < 0)
return r;
}
int RGWRados::log_list_init(const string& prefix, RGWAccessHandle *handle)
{
log_list_state *state = new log_list_state;
- int r = rados->ioctx_create(RGW_LOG_POOL_NAME, state->io_ctx);
+ const char *log_pool = params.log_pool.name.c_str();
+ int r = rados->ioctx_create(log_pool, state->io_ctx);
if (r < 0)
return r;
state->prefix = prefix;
int RGWRados::log_remove(const string& name)
{
librados::IoCtx io_ctx;
- int r = rados->ioctx_create(RGW_LOG_POOL_NAME, io_ctx);
+ const char *log_pool = params.log_pool.name.c_str();
+ int r = rados->ioctx_create(log_pool, io_ctx);
if (r < 0)
return r;
return io_ctx.remove(name);
int RGWRados::log_show_init(const string& name, RGWAccessHandle *handle)
{
log_show_state *state = new log_show_state;
- int r = rados->ioctx_create(RGW_LOG_POOL_NAME, state->io_ctx);
+ const char *log_pool = params.log_pool.name.c_str();
+ int r = rados->ioctx_create(log_pool, state->io_ctx);
if (r < 0)
return r;
state->name = name;
{
librados::IoCtx io_ctx;
- int r = rados->ioctx_create(RGW_USAGE_LOG_POOL_NAME, io_ctx);
+ const char *usage_log_pool = params.usage_log_pool.name.c_str();
+ int r = rados->ioctx_create(usage_log_pool, io_ctx);
if (r == -ENOENT) {
string id;
map<std::string, bufferlist> attrs;
- rgw_bucket pool(RGW_USAGE_LOG_POOL_NAME);
+ rgw_bucket pool(usage_log_pool);
r = create_bucket(id, pool, attrs, true);
if (r < 0)
return r;
// retry
- r = rados->ioctx_create(RGW_USAGE_LOG_POOL_NAME, io_ctx);
+ r = rados->ioctx_create(usage_log_pool, io_ctx);
}
if (r < 0)
return r;
*is_truncated = false;
- int r = rados->ioctx_create(RGW_USAGE_LOG_POOL_NAME, io_ctx);
+ const char *usage_log_pool = params.usage_log_pool.name.c_str();
+ int r = rados->ioctx_create(usage_log_pool, io_ctx);
if (r < 0)
return r;
{
librados::IoCtx io_ctx;
- int r = rados->ioctx_create(RGW_USAGE_LOG_POOL_NAME, io_ctx);
+ const char *usage_log_pool = params.usage_log_pool.name.c_str();
+ int r = rados->ioctx_create(usage_log_pool, io_ctx);
if (r < 0)
return r;
}
time_t epoch = mktime(&tm);
- rgw_bucket bucket(RGW_INTENT_LOG_POOL_NAME);
string prefix, delim, marker;
vector<RGWObjEnt> objs;
map<string, bool> common_prefixes;
bool is_truncated;
IntentLogNameFilter filter(date.c_str(), &tm);
RGWPoolIterCtx iter_ctx;
- int r = pool_iterate_begin(bucket, iter_ctx);
+ int r = pool_iterate_begin(params.intent_log_pool, iter_ctx);
if (r < 0) {
cerr << "failed to list objects" << std::endl;
return r;
}
vector<RGWObjEnt>::iterator iter;
for (iter = objs.begin(); iter != objs.end(); ++iter) {
- process_intent_log(bucket, (*iter).name, epoch, I_DEL_OBJ | I_DEL_DIR, true);
+ process_intent_log(params.intent_log_pool, (*iter).name, epoch, I_DEL_OBJ | I_DEL_DIR, true);
}
} while (is_truncated);
using namespace std;
-static rgw_bucket ui_key_bucket(USER_INFO_POOL_NAME);
-static rgw_bucket ui_email_bucket(USER_INFO_EMAIL_POOL_NAME);
-static rgw_bucket ui_swift_bucket(USER_INFO_SWIFT_POOL_NAME);
-static rgw_bucket ui_uid_bucket(USER_INFO_UID_POOL_NAME);
/**
* Get the anonymous (ie, unauthenticated) user info.
::encode(ui, uid_bl);
::encode(info, uid_bl);
- ret = rgw_put_obj(store, info.user_id, ui_uid_bucket, info.user_id, uid_bl.c_str(), uid_bl.length(), exclusive);
+ ret = rgw_put_obj(store, info.user_id, store->params.user_uid_pool, info.user_id, uid_bl.c_str(), uid_bl.length(), exclusive);
if (ret < 0)
return ret;
if (info.user_email.size()) {
- ret = rgw_put_obj(store, info.user_id, ui_email_bucket, info.user_email, uid_bl.c_str(), uid_bl.length(), exclusive);
+ ret = rgw_put_obj(store, info.user_id, store->params.user_email_pool, info.user_email, uid_bl.c_str(), uid_bl.length(), exclusive);
if (ret < 0)
return ret;
}
map<string, RGWAccessKey>::iterator iter = info.access_keys.begin();
for (; iter != info.access_keys.end(); ++iter) {
RGWAccessKey& k = iter->second;
- ret = rgw_put_obj(store, k.id, ui_key_bucket, k.id, uid_bl.c_str(), uid_bl.length(), exclusive);
+ ret = rgw_put_obj(store, k.id, store->params.user_keys_pool, k.id, uid_bl.c_str(), uid_bl.length(), exclusive);
if (ret < 0)
return ret;
}
map<string, RGWAccessKey>::iterator siter;
for (siter = info.swift_keys.begin(); siter != info.swift_keys.end(); ++siter) {
RGWAccessKey& k = siter->second;
- ret = rgw_put_obj(store, info.user_id, ui_swift_bucket, k.id, uid_bl.c_str(), uid_bl.length(), exclusive);
+ ret = rgw_put_obj(store, info.user_id, store->params.user_swift_pool, k.id, uid_bl.c_str(), uid_bl.length(), exclusive);
if (ret < 0)
return ret;
}
*/
int rgw_get_user_info_by_uid(RGWRados *store, string& uid, RGWUserInfo& info)
{
- return rgw_get_user_info_from_index(store, uid, ui_uid_bucket, info);
+ return rgw_get_user_info_from_index(store, uid, store->params.user_uid_pool, info);
}
/**
*/
int rgw_get_user_info_by_email(RGWRados *store, string& email, RGWUserInfo& info)
{
- return rgw_get_user_info_from_index(store, email, ui_email_bucket, info);
+ return rgw_get_user_info_from_index(store, email, store->params.user_email_pool, info);
}
/**
*/
extern int rgw_get_user_info_by_swift(RGWRados *store, string& swift_name, RGWUserInfo& info)
{
- return rgw_get_user_info_from_index(store, swift_name, ui_swift_bucket, info);
+ return rgw_get_user_info_from_index(store, swift_name, store->params.user_swift_pool, info);
}
/**
*/
extern int rgw_get_user_info_by_access_key(RGWRados *store, string& access_key, RGWUserInfo& info)
{
- return rgw_get_user_info_from_index(store, access_key, ui_key_bucket, info);
+ return rgw_get_user_info_from_index(store, access_key, store->params.user_keys_pool, info);
}
static void get_buckets_obj(string& user_id, string& buckets_obj_id)
static int rgw_read_buckets_from_attr(RGWRados *store, string& user_id, RGWUserBuckets& buckets)
{
bufferlist bl;
- rgw_obj obj(ui_uid_bucket, user_id);
+ rgw_obj obj(store->params.user_uid_pool, user_id);
int ret = store->get_attr(NULL, obj, RGW_ATTR_BUCKETS, bl);
if (ret)
return ret;
string buckets_obj_id;
get_buckets_obj(user_id, buckets_obj_id);
bufferlist bl;
- rgw_obj obj(ui_uid_bucket, buckets_obj_id);
+ rgw_obj obj(store->params.user_uid_pool, buckets_obj_id);
bufferlist header;
map<string,bufferlist> m;
bufferlist bl;
buckets.encode(bl);
- rgw_obj obj(ui_uid_bucket, user_id);
+ rgw_obj obj(store->params.user_uid_pool, user_id);
int ret = store->set_attr(NULL, obj, RGW_ATTR_BUCKETS, bl);
string buckets_obj_id;
get_buckets_obj(user_id, buckets_obj_id);
- rgw_obj obj(ui_uid_bucket, buckets_obj_id);
+ rgw_obj obj(store->params.user_uid_pool, buckets_obj_id);
ret = store->omap_set(obj, bucket_name, bl);
if (ret < 0) {
ldout(store->ctx(), 0) << "ERROR: error adding bucket to directory: "
string buckets_obj_id;
get_buckets_obj(user_id, buckets_obj_id);
- rgw_obj obj(ui_uid_bucket, buckets_obj_id);
+ rgw_obj obj(store->params.user_uid_pool, buckets_obj_id);
ret = store->omap_del(obj, bucket.name);
if (ret < 0) {
ldout(store->ctx(), 0) << "ERROR: error removing bucket from directory: "
int rgw_remove_key_index(RGWRados *store, RGWAccessKey& access_key)
{
- rgw_obj obj(ui_key_bucket, access_key.id);
+ rgw_obj obj(store->params.user_keys_pool, access_key.id);
int ret = store->delete_obj(NULL, obj);
return ret;
}
int rgw_remove_uid_index(RGWRados *store, string& uid)
{
- rgw_obj obj(ui_uid_bucket, uid);
+ rgw_obj obj(store->params.user_uid_pool, uid);
int ret = store->delete_obj(NULL, obj);
return ret;
}
int rgw_remove_email_index(RGWRados *store, string& email)
{
- rgw_obj obj(ui_email_bucket, email);
+ rgw_obj obj(store->params.user_email_pool, email);
int ret = store->delete_obj(NULL, obj);
return ret;
}
int rgw_remove_swift_name_index(RGWRados *store, string& swift_name)
{
- rgw_obj obj(ui_swift_bucket, swift_name);
+ rgw_obj obj(store->params.user_swift_pool, swift_name);
int ret = store->delete_obj(NULL, obj);
return ret;
}
}
}
- rgw_obj email_obj(ui_email_bucket, info.user_email);
+ rgw_obj email_obj(store->params.user_email_pool, info.user_email);
ldout(store->ctx(), 10) << "removing email index: " << info.user_email << dendl;
ret = store->delete_obj(NULL, email_obj);
if (ret < 0 && ret != -ENOENT) {
string buckets_obj_id;
get_buckets_obj(info.user_id, buckets_obj_id);
- rgw_obj uid_bucks(ui_uid_bucket, buckets_obj_id);
+ rgw_obj uid_bucks(store->params.user_uid_pool, buckets_obj_id);
ldout(store->ctx(), 10) << "removing user buckets index" << dendl;
ret = store->delete_obj(NULL, uid_bucks);
if (ret < 0 && ret != -ENOENT) {
return ret;
}
- rgw_obj uid_obj(ui_uid_bucket, info.user_id);
+ rgw_obj uid_obj(store->params.user_uid_pool, info.user_id);
ldout(store->ctx(), 10) << "removing user index: " << info.user_id << dendl;
ret = store->delete_obj(NULL, uid_obj);
if (ret < 0 && ret != -ENOENT) {