summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYehuda Sadeh <yehuda@inktank.com>2013-02-22 16:19:37 -0800
committerYehuda Sadeh <yehuda@inktank.com>2013-03-22 11:23:58 -0700
commit6478f48a77dadd884b0823c4fe3d530bbff2b0e3 (patch)
tree7f06008fb6885f6de10d07c01afcd7ef31ee46ce
parent469b0f5b002426ff27b2d171c5744b191f057eba (diff)
downloadceph-6478f48a77dadd884b0823c4fe3d530bbff2b0e3.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.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 ecceb06c5fb..a0cc1dfae21 100644
--- a/src/rgw/rgw_op.cc
+++ b/src/rgw/rgw_op.cc
@@ -812,7 +812,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 7225bbdf819..f9d88104209 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)
@@ -1155,7 +1155,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;