RGWZoneParams& zone_params = store->get_zone_params();
- int r = store->get_sync_modules_manager()->create_instance(zone_def.tier_type, zone_params.tier_config, &sync_module);
- if (r < 0) {
- lderr(store->ctx()) << "ERROR: failed to init sync module instance, r=" << r << dendl;
- finalize();
- return r;
- }
+ sync_module = store->get_sync_module();
conn = store->get_zone_conn_by_id(source_zone);
if (!conn) {
const char *log_pool = zone_params.log_pool.name.c_str();
librados::Rados *rados = store->get_rados_handle();
- r = rados->ioctx_create(log_pool, ioctx);
+ int r = rados->ioctx_create(log_pool, ioctx);
if (r < 0) {
lderr(store->ctx()) << "ERROR: failed to open log pool (" << zone_params.log_pool.name << " ret=" << r << dendl;
return r;
zone_short_id = current_period.get_map().get_zone_short_id(zone_params.get_id());
+ ret = sync_modules_manager->create_instance(zone_public_config.tier_type, zone_params.tier_config, &sync_module);
+ if (ret < 0) {
+ lderr(cct) << "ERROR: failed to init sync module instance, ret=" << ret << dendl;
+ return ret;
+ }
+
init_unique_trans_id_deps();
finisher = new Finisher(cct);
RGWCoroutinesManagerRegistry *cr_registry;
RGWSyncModulesManager *sync_modules_manager{nullptr};
+ RGWSyncModuleInstanceRef sync_module;
RGWZoneGroup zonegroup;
RGWZone zone_public_config; /* external zone params, e.g., entrypoints, log flags, etc. */
RGWSyncModulesManager *get_sync_modules_manager() {
return sync_modules_manager;
}
+ const RGWSyncModuleInstanceRef& get_sync_module() {
+ return sync_module;
+ }
int get_required_alignment(rgw_bucket& bucket, uint64_t *alignment);
int get_max_chunk_size(rgw_bucket& bucket, uint64_t *max_chunk_size);