return;
}
- ret = sync.read_sync_status();
+ rgw_data_sync_status sync_status;
+ ret = sync.read_sync_status(&sync_status);
if (ret < 0 && ret != -ENOENT) {
push_ss(ss, status, tab) << string("failed read sync status: ") + cpp_strerror(-ret);
return;
}
- const rgw_data_sync_status& sync_status = sync.get_sync_status();
-
string status_str;
switch (sync_status.sync_info.state) {
case rgw_data_sync_info::StateInit:
return -ret;
}
- ret = sync.read_sync_status();
+ rgw_data_sync_status sync_status;
+ ret = sync.read_sync_status(&sync_status);
if (ret < 0 && ret != -ENOENT) {
cerr << "ERROR: sync.read_sync_status() returned ret=" << ret << std::endl;
return -ret;
}
- rgw_data_sync_status& sync_status = sync.get_sync_status();
-
formatter->open_object_section("summary");
encode_json("sync_status", sync_status, formatter);
data_sync_cr->wakeup(shard_id, keys);
}
-int RGWRemoteDataLog::run_sync(int num_shards, rgw_data_sync_status& sync_status)
+int RGWRemoteDataLog::run_sync(int num_shards)
{
- int r = run(new RGWReadDataSyncStatusCoroutine(&sync_env, &sync_status));
- if (r < 0 && r != -ENOENT) {
- ldout(store->ctx(), 0) << "ERROR: failed to read sync status from source_zone=" << sync_env.source_zone << " r=" << r << dendl;
- return r;
- }
-
lock.get_write();
data_sync_cr = new RGWDataSyncControlCR(&sync_env, num_shards);
lock.unlock();
- r = run(data_sync_cr);
+ int r = run(data_sync_cr);
if (r < 0) {
ldout(store->ctx(), 0) << "ERROR: failed to run sync" << dendl;
return r;
int get_shard_info(int shard_id);
int read_sync_status(rgw_data_sync_status *sync_status);
int init_sync_status(int num_shards);
- int run_sync(int num_shards, rgw_data_sync_status& sync_status);
+ int run_sync(int num_shards);
void wakeup(int shard_id, set<string>& keys);
};
string source_shard_status_oid_prefix;
rgw_obj source_status_obj;
- rgw_data_sync_status sync_status;
map<int, rgw_obj> shard_objs;
int num_shards;
int init();
void finalize();
- rgw_data_sync_status& get_sync_status() { return sync_status; }
-
static string shard_obj_name(const string& source_zone, int shard_id);
static string sync_status_oid(const string& source_zone);
- int read_sync_status() { return source_log.read_sync_status(&sync_status); }
+ int read_sync_status(rgw_data_sync_status *sync_status) {
+ return source_log.read_sync_status(sync_status);
+ }
int init_sync_status() { return source_log.init_sync_status(num_shards); }
int read_log_info(rgw_datalog_info *log_info) {
return source_log.read_source_log_shards_next(shard_markers, result);
}
- int run() { return source_log.run_sync(num_shards, sync_status); }
+ int run() { return source_log.run_sync(num_shards); }
void wakeup(int shard_id, set<string>& keys) { return source_log.wakeup(shard_id, keys); }
void stop() {