iter ++) {
RGWZoneParams zoneparams(iter->first, iter->first);
zoneparams.set_id(iter->first);
+ zoneparams.realm_id = realm.get_id();
ret = zoneparams.init(cct, this);
if (ret < 0) {
ldout(cct, 0) << "failed to init zoneparams " << iter->first << ": " << cpp_strerror(-ret) << dendl;
ldout(cct, 0) << "failed to add zonegroup to current_period: " << cpp_strerror(-ret) << dendl;
return ret;
}
- ret = current_period.update();
- if (ret < 0) {
- ldout(cct, 0) << "failed to update current_period: " << cpp_strerror(-ret) << dendl;
- return ret;
- }
}
+ }
+
+ if (!current_period.get_id().empty()) {
+ ret = current_period.update();
+ if (ret < 0) {
+ ldout(cct, 0) << "failed to update new period: " << cpp_strerror(-ret) << dendl;
+ return ret;
+ }
+ ret = current_period.store_info(false);
+ if (ret < 0) {
+ ldout(cct, 0) << "failed to store new period: " << cpp_strerror(-ret) << dendl;
+ return ret;
+ }
+ ret = current_period.reflect();
+ if (ret < 0) {
+ ldout(cct, 0) << "failed to update local objects: " << cpp_strerror(-ret) << dendl;
+ return ret;
+ }
+ }
+ for (auto const& iter : regions) {
+ RGWZoneGroup zonegroup(iter);
+ int ret = zonegroup.init(cct, this, true, true);
+ if (ret < 0) {
+ ldout(cct, 0) << "failed init zonegroup" << iter << ": ret "<< ret << " " << cpp_strerror(-ret) << dendl;
+ return ret;
+ }
ret = zonegroup.delete_obj(true);
if (ret < 0 && ret != -ENOENT) {
- ldout(cct, 0) << "failed to delete region " << *iter << ": ret "<< ret << " " << cpp_strerror(-ret)
+ ldout(cct, 0) << "failed to delete region " << iter << ": ret "<< ret << " " << cpp_strerror(-ret)
<< dendl;
return ret;
}