summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYehuda Sadeh <yehuda@inktank.com>2013-02-22 16:19:37 -0800
committerYehuda Sadeh <yehuda@inktank.com>2013-02-22 16:19:37 -0800
commit8c5766584ee1a21bac802d77b5527c650a459484 (patch)
tree1c08973c3ae95029b5cdccd054715a4581e58202
parent566674f39820c756b11fd7599f6b2f22f97047a2 (diff)
downloadceph-wip-rgw-zone.tar.gz
rgw: fix json decoding of rgw_bucketwip-rgw-zone
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-rw-r--r--src/rgw/rgw_json_enc.cc30
-rw-r--r--src/rgw/rgw_op.cc1
-rw-r--r--src/rgw/rgw_rados.cc7
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;