From 8c5766584ee1a21bac802d77b5527c650a459484 Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Fri, 22 Feb 2013 16:19:37 -0800 Subject: rgw: fix json decoding of rgw_bucket Signed-off-by: Yehuda Sadeh --- src/rgw/rgw_json_enc.cc | 30 ++++++++++++++++++++---------- src/rgw/rgw_op.cc | 1 - src/rgw/rgw_rados.cc | 7 +++---- 3 files changed, 23 insertions(+), 15 deletions(-) diff --git a/src/rgw/rgw_json_enc.cc b/src/rgw/rgw_json_enc.cc index aa16da1e39a..d01bfedef2f 100644 --- a/src/rgw/rgw_json_enc.cc +++ b/src/rgw/rgw_json_enc.cc @@ -436,18 +436,28 @@ void RGWZoneParams::dump(Formatter *f) const encode_json("user_uid_pool ", user_uid_pool.pool, f); } +static void decode_json(const char *field, rgw_bucket& bucket, JSONObj *obj) +{ + string pool; + JSONDecoder::decode_json(field, pool, obj); + if (pool[0] != '.') { + pool = string(".") + pool; + } + bucket = rgw_bucket(pool.c_str()); +} + void RGWZoneParams::decode_json(JSONObj *obj) { - JSONDecoder::decode_json("domain_root", domain_root.pool, obj); - JSONDecoder::decode_json("control_pool", control_pool.pool, obj); - JSONDecoder::decode_json("gc_pool", gc_pool.pool, obj); - JSONDecoder::decode_json("log_pool", log_pool.pool, obj); - JSONDecoder::decode_json("intent_log_pool", intent_log_pool.pool, obj); - JSONDecoder::decode_json("usage_log_pool", usage_log_pool.pool, obj); - JSONDecoder::decode_json("user_keys_pool", user_keys_pool.pool, obj); - JSONDecoder::decode_json("user_email_pool", user_email_pool.pool, obj); - JSONDecoder::decode_json("user_swift_pool", user_swift_pool.pool, obj); - JSONDecoder::decode_json("user_uid_pool ", user_uid_pool.pool, obj); + ::decode_json("domain_root", domain_root, obj); + ::decode_json("control_pool", control_pool, obj); + ::decode_json("gc_pool", gc_pool, obj); + ::decode_json("log_pool", log_pool, obj); + ::decode_json("intent_log_pool", intent_log_pool, obj); + ::decode_json("usage_log_pool", usage_log_pool, obj); + ::decode_json("user_keys_pool", user_keys_pool, obj); + ::decode_json("user_email_pool", user_email_pool, obj); + ::decode_json("user_swift_pool", user_swift_pool, obj); + ::decode_json("user_uid_pool ", user_uid_pool, obj); } void RGWZone::dump(Formatter *f) const diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 579d12abbf3..42c440a6c25 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -815,7 +815,6 @@ void RGWCreateBucket::execute() s->bucket_owner.set_id(s->user.user_id); s->bucket_owner.set_name(s->user.display_name); - r = get_policy_from_attr(s->cct, store, s->obj_ctx, &old_policy, obj); if (r >= 0) { if (old_policy.get_owner().get_id().compare(s->user.user_id) != 0) { diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index c61d1869a44..6da6e8a41eb 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -144,7 +144,7 @@ int RGWRegion::init(CephContext *_cct, RGWRados *_store, bool setup_region) string region_name = cct->_conf->rgw_region; - if (name.empty()) { + if (region_name.empty()) { RGWDefaultRegionInfo default_info; int r = read_default(default_info); if (r == -ENOENT) { @@ -158,10 +158,10 @@ int RGWRegion::init(CephContext *_cct, RGWRados *_store, bool setup_region) lderr(cct) << "failed reading default region info: " << cpp_strerror(-r) << dendl; return r; } - string region_name = default_info.default_region; + region_name = default_info.default_region; } - return read_info(name); + return read_info(region_name); } int RGWRegion::read_info(const string& region_name) @@ -1134,7 +1134,6 @@ int RGWRados::create_bucket(string& owner, rgw_bucket& bucket, bool exclusive) { int ret = 0; - ret = select_bucket_placement(bucket.name, bucket); if (ret < 0) return ret; -- cgit v1.2.1