]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: rest conn functions cleanup, only append zonegroup if not empty
authorYehuda Sadeh <yehuda@redhat.com>
Tue, 23 Aug 2016 17:22:42 +0000 (10:22 -0700)
committerYehuda Sadeh <yehuda@redhat.com>
Fri, 7 Oct 2016 17:31:24 +0000 (10:31 -0700)
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
src/rgw/rgw_rest_conn.cc

index d92a8ca0d76781d23e2e2feead742ced74f9483a..a96c97819ba9ff05e37190c524ae04628b2d867b 100644 (file)
@@ -46,17 +46,27 @@ string RGWRESTConn::get_url()
   return endpoint;
 }
 
+static void populate_params(param_vec_t& params, const rgw_user *uid, const string& zonegroup)
+{
+  if (uid) {
+    string uid_str = uid->to_str();
+    if (!uid->empty()) {
+      params.push_back(param_pair_t(RGW_SYS_PARAM_PREFIX "uid", uid_str));
+    }
+  }
+  if (!zonegroup.empty()) {
+    params.push_back(param_pair_t(RGW_SYS_PARAM_PREFIX "zonegroup", zonegroup));
+  }
+}
+
 int RGWRESTConn::forward(const rgw_user& uid, req_info& info, obj_version *objv, size_t max_response, bufferlist *inbl, bufferlist *outbl)
 {
   string url;
   int ret = get_url(url);
   if (ret < 0)
     return ret;
-  string uid_str = uid.to_str();
   param_vec_t params;
-  if (!uid.empty())
-    params.push_back(param_pair_t(RGW_SYS_PARAM_PREFIX "uid", uid_str));
-  params.push_back(param_pair_t(RGW_SYS_PARAM_PREFIX "zonegroup", self_zone_group));
+  populate_params(params, &uid, self_zone_group);
   if (objv) {
     params.push_back(param_pair_t(RGW_SYS_PARAM_PREFIX "tag", objv->tag));
     char buf[16];
@@ -81,10 +91,8 @@ int RGWRESTConn::put_obj_init(const rgw_user& uid, rgw_obj& obj, uint64_t obj_si
   if (ret < 0)
     return ret;
 
-  string uid_str = uid.to_str();
   param_vec_t params;
-  params.push_back(param_pair_t(RGW_SYS_PARAM_PREFIX "uid", uid_str));
-  params.push_back(param_pair_t(RGW_SYS_PARAM_PREFIX "zonegroup", self_zone_group));
+  populate_params(params, &uid, self_zone_group);
   *req = new RGWRESTStreamWriteRequest(cct, url, NULL, &params);
   return (*req)->put_obj_init(key, obj, obj_size, attrs);
 }
@@ -129,10 +137,7 @@ int RGWRESTConn::get_obj(const rgw_user& uid, req_info *info /* optional */, rgw
     return ret;
 
   param_vec_t params;
-  if (!uid.empty()) {
-    params.push_back(param_pair_t(RGW_SYS_PARAM_PREFIX "uid", uid.to_str()));
-  }
-  params.push_back(param_pair_t(RGW_SYS_PARAM_PREFIX "zonegroup", self_zone_group));
+  populate_params(params, &uid, self_zone_group);
   if (prepend_metadata) {
     params.push_back(param_pair_t(RGW_SYS_PARAM_PREFIX "prepend-metadata", self_zone_group));
   }
@@ -202,7 +207,7 @@ int RGWRESTConn::get_resource(const string& resource,
     params.insert(params.end(), extra_params->begin(), extra_params->end());
   }
 
-  params.push_back(param_pair_t(RGW_SYS_PARAM_PREFIX "zonegroup", self_zone_group));
+  populate_params(params, nullptr, self_zone_group);
 
   RGWStreamIntoBufferlist cb(bl);
 
@@ -249,7 +254,7 @@ RGWRESTReadResource::RGWRESTReadResource(RGWRESTConn *_conn,
 
 void RGWRESTReadResource::init_common(param_vec_t *extra_headers)
 {
-  params.push_back(param_pair_t(RGW_SYS_PARAM_PREFIX "zonegroup", conn->get_self_zonegroup()));
+  populate_params(params, nullptr, conn->get_self_zonegroup());
 
   if (extra_headers) {
     headers.insert(extra_headers->begin(), extra_headers->end());
@@ -309,7 +314,7 @@ RGWRESTSendResource::RGWRESTSendResource(RGWRESTConn *_conn,
 
 void RGWRESTSendResource::init_common(param_vec_t *extra_headers)
 {
-  params.push_back(param_pair_t(RGW_SYS_PARAM_PREFIX "zonegroup", conn->get_self_zonegroup()));
+  populate_params(params, nullptr, conn->get_self_zonegroup());
 
   if (extra_headers) {
     headers.insert(extra_headers->begin(), extra_headers->end());