From a05c7f1e868ae414957b196b2e62dcc9ca7a057a Mon Sep 17 00:00:00 2001 From: Abhishek Lekshmanan Date: Tue, 21 Feb 2017 17:46:16 +0100 Subject: [PATCH] rgw: sync aws module compiles Signed-off-by: Abhishek Lekshmanan --- src/rgw/rgw_sync_module_aws.cc | 49 ++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/src/rgw/rgw_sync_module_aws.cc b/src/rgw/rgw_sync_module_aws.cc index 2c94432abb1e1..33dc0f548f289 100644 --- a/src/rgw/rgw_sync_module_aws.cc +++ b/src/rgw/rgw_sync_module_aws.cc @@ -19,3 +19,52 @@ static string aws_object_name(const RGWBucketInfo& bucket_info, const rgw_obj_ke } return obj_name; } + +struct AWSConfig { + string id; + RGWRESTConn *conn{nullptr}; +}; + +// maybe use Fetch Remote Obj instead? +class RGWAWSHandleRemoteObjCBCR: public RGWStatRemoteObjCBCR { + const AWSConfig& conf; +public: + RGWAWSHandleRemoteObjCBCR(RGWDataSyncEnv *_sync_env, + RGWBucketInfo& _bucket_info, + rgw_obj_key& _key, + const AWSConfig& _conf) : RGWStatRemoteObjCBCR(_sync_env, _bucket_info, _key), + conf(_conf) {} + int operate () override { + auto store = sync_env->store; + RGWRESTConn *conn = store->rest_master_conn; + if (conn == nullptr) + return -EIO; + + reenter(this) { + ldout(sync_env->cct, 0) << "SYNC_BEGIN: stat of remote obj z=" << sync_env->source_zone + << " b=" << bucket_info.bucket << " k=" << key << " size=" << size + << " mtime=" << mtime << " attrs=" << attrs + << dendl; + + yield { + // and here be dragons! + // ultimately we should be using a form of fetch obj that doesn't write to rados maybe? + + ldout(store->ctx(),0) << "abhi: If you're reading this, wait till things work!" << dendl; + string obj_path = bucket_info.bucket.name + "/" + key.name; + string res = nullptr; + call(new RGWReadRESTResourceCR(sync_env->cct, + conn, + sync_env->http_manager, + obj_path, + nullptr, + &res)); + ldout(store->ctx(),0) << "abhi, printing obj" << dendl; + ldout(store->ctx(),0) << res << dendl; + + } + + + } + } +}; -- 2.39.5