diff options
author | Yehuda Sadeh <yehuda@inktank.com> | 2013-02-22 16:19:37 -0800 |
---|---|---|
committer | Yehuda Sadeh <yehuda@inktank.com> | 2013-02-25 15:01:20 -0800 |
commit | 786b7518b9dfc73af68fee8f014ae3863df2ad26 (patch) | |
tree | c158bd1a47cb12a42edc8f16c46fbe7e75139118 | |
parent | 6f5cac427f8814be012ada6f70666fdcad929d30 (diff) | |
download | ceph-786b7518b9dfc73af68fee8f014ae3863df2ad26.tar.gz |
rgw: fix json decoding of rgw_bucket
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-rw-r--r-- | src/rgw/rgw_json_enc.cc | 30 | ||||
-rw-r--r-- | src/rgw/rgw_op.cc | 1 | ||||
-rw-r--r-- | 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 2cb489291e2..4cda08fd6e0 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -813,7 +813,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 52b91cd56bd..1860c11af13 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -145,7 +145,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) { @@ -159,10 +159,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) @@ -1135,7 +1135,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; |