From 660fc7ca08c8c03ee609d23c83874dd4ec54b728 Mon Sep 17 00:00:00 2001 From: Orit Wasserman Date: Fri, 18 Sep 2015 13:37:05 +0200 Subject: [PATCH] rgw: use RGWZoneGroupMap in RGWPeriod Signed-off-by: Orit Wasserman --- src/rgw/rgw_json_enc.cc | 6 ++---- src/rgw/rgw_rados.h | 27 +++++++++++++++++---------- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/rgw/rgw_json_enc.cc b/src/rgw/rgw_json_enc.cc index e450031c9d1f5..e327244041cd8 100644 --- a/src/rgw/rgw_json_enc.cc +++ b/src/rgw/rgw_json_enc.cc @@ -752,8 +752,7 @@ void RGWPeriod::dump(Formatter *f) const encode_json("epoch", epoch , f); encode_json("predecessor_uuid", predecessor_uuid, f); encode_json("versions", versions, f); - encode_json("master_zonegroup", master_zonegroup, f); - encode_json("zonegroups", zonegroups, f); + encode_json("zonegroup_map", zonegroup_map, f); encode_json("master_zone", master_zone, f); } @@ -763,8 +762,7 @@ void RGWPeriod::decode_json(JSONObj *obj) JSONDecoder::decode_json("epoch", epoch, obj); JSONDecoder::decode_json("predecessor_uuid", predecessor_uuid, obj); JSONDecoder::decode_json("versions", versions, obj); - JSONDecoder::decode_json("master_zonegroup", master_zonegroup, obj); - JSONDecoder::decode_json("zonesgroup", zonegroups, obj); + JSONDecoder::decode_json("zonegroup_map", zonegroup_map, obj); JSONDecoder::decode_json("master_zone", master_zone, obj); } diff --git a/src/rgw/rgw_rados.h b/src/rgw/rgw_rados.h index 3aa1e845116d3..78a67149a06cf 100644 --- a/src/rgw/rgw_rados.h +++ b/src/rgw/rgw_rados.h @@ -1139,6 +1139,15 @@ struct RGWZoneGroupMap { RGWQuotaInfo bucket_quota; RGWQuotaInfo user_quota; + RGWZoneGroupMap& operator=(const RGWZoneGroupMap& zg) { + zonegroups = zg.zonegroups; + zonegroups_by_api = zg.zonegroups_by_api; + master_zonegroup = zg.master_zonegroup; + bucket_quota = zg.bucket_quota; + user_quota = zg.user_quota; + return *this; + } + RGWZoneGroupMap() : lock("RGWZoneGroupMap") {} void encode(bufferlist& bl) const; @@ -1264,8 +1273,7 @@ class RGWPeriod epoch_t epoch; string predecessor_uuid; map versions; - string master_zonegroup; - map zonegroups; + RGWZoneGroupMap zonegroup_map; string master_zone; CephContext *cct; @@ -1290,16 +1298,17 @@ public: RGWPeriod(CephContext *_cct, RGWRados *_store, const string& _master_zonegroup, const string& _master_zone) - : epoch(0), master_zonegroup(_master_zonegroup), master_zone(_master_zone), - cct(_cct), store(_store) {} + : epoch(0), master_zone(_master_zone), + cct(_cct), store(_store) { + zonegroup_map.master_zonegroup = _master_zonegroup; + } const string& get_id() { return id;} epoch_t get_epoch() { return epoch;} const string& get_predecessor() { return predecessor_uuid;} - const string& get_master_zonegroup() { return master_zonegroup;} const string& get_master_zone() { return master_zone;} const string& get_realm() { return realm_id;} - + const RGWZoneGroupMap& get_zonegroup_map() { return zonegroup_map;} const string& get_pool_name(CephContext *cct); const string& get_latest_epoch_oid(); const string& get_info_oid_prefix(); @@ -1328,8 +1337,7 @@ public: ::encode(epoch, bl); ::encode(predecessor_uuid, bl); ::encode(versions, bl); - ::encode(master_zonegroup, bl); - ::encode(zonegroups, bl); + ::encode(zonegroup_map, bl); ::encode(master_zone, bl); ENCODE_FINISH(bl); } @@ -1340,8 +1348,7 @@ public: ::decode(epoch, bl); ::decode(predecessor_uuid, bl); ::decode(versions, bl); - ::decode(master_zonegroup, bl); - ::decode(zonegroups, bl); + ::decode(zonegroup_map, bl); ::decode(master_zone, bl); DECODE_FINISH(bl); } -- 2.39.5