]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: use RGWZoneGroupMap in RGWPeriod
authorOrit Wasserman <owasserm@redhat.com>
Fri, 18 Sep 2015 11:37:05 +0000 (13:37 +0200)
committerYehuda Sadeh <yehuda@redhat.com>
Fri, 12 Feb 2016 00:13:00 +0000 (16:13 -0800)
Signed-off-by: Orit Wasserman <owasserm@redhat.com>
src/rgw/rgw_json_enc.cc
src/rgw/rgw_rados.h

index e450031c9d1f5eabb3eb7d43c49426de05b09939..e327244041cd89d2c776573120b7b46d4c7bf581 100644 (file)
@@ -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);
 }
 
index 3aa1e845116d38e3e24a64b06f89c1c7799a509b..78a67149a06cfacb9555d482400684a91daae627 100644 (file)
@@ -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<int, version_t> versions;
-  string master_zonegroup;
-  map <string, RGWZoneGroup> 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);
   }