return endpoint;
}
-static void populate_params(param_vec_t& params, const rgw_user *uid, const string& zonegroup)
+void RGWRESTConn::populate_params(param_vec_t& params, const rgw_user *uid, const string& zonegroup)
{
if (uid) {
string uid_str = uid->to_str();
void RGWRESTReadResource::init_common(param_vec_t *extra_headers)
{
- populate_params(params, nullptr, conn->get_self_zonegroup());
+ conn->populate_params(params, nullptr, conn->get_self_zonegroup());
if (extra_headers) {
headers.insert(extra_headers->begin(), extra_headers->end());
void RGWRESTSendResource::init_common(param_vec_t *extra_headers)
{
- populate_params(params, nullptr, conn->get_self_zonegroup());
+ conn->populate_params(params, nullptr, conn->get_self_zonegroup());
if (extra_headers) {
headers.insert(extra_headers->begin(), extra_headers->end());
}
size_t get_endpoint_count() const { return endpoints.size(); }
+ virtual void populate_params(param_vec_t& params, const rgw_user *uid, const string& zonegroup);
+
/* sync request */
int forward(const rgw_user& uid, req_info& info, obj_version *objv, size_t max_response, bufferlist *inbl, bufferlist *outbl);
int get_json_resource(const string& resource, const rgw_http_param_pair *pp, T& t);
};
+class S3RESTConn : public RGWRESTConn {
+
+public:
+
+ S3RESTConn(CephContext *_cct, RGWRados *store, const string& _remote_id, const list<string>& endpoints) :
+ RGWRESTConn(_cct, store, _remote_id, endpoints) {}
+
+ S3RESTConn(CephContext *_cct, RGWRados *store, const string& _remote_id, const list<string>& endpoints, RGWAccessKey _cred):
+ RGWRESTConn(_cct, store, _remote_id, endpoints, _cred) {}
+
+ void populate_params(param_vec_t& params, const rgw_user *uid, const string& zonegroup) override {
+ // do not populate any params in S3 REST Connection.
+ return;
+ }
+};
+
template<class T>
int RGWRESTConn::get_json_resource(const string& resource, param_vec_t *params, bufferlist *in_data, T& t)
void init(RGWDataSyncEnv *sync_env, uint64_t instance_id) {
instance.id = string("s3:") + instance.conf.s3_endpoint;
- instance.conn.reset(new RGWRESTConn(cct,
+ instance.conn.reset(new S3RESTConn(cct,
sync_env->store,
instance.id,
{ instance.conf.s3_endpoint },