]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
get barbican secret key request return error code 33966/head
authorRichard Bai(白学余) <baixueyu@inspur.com>
Tue, 13 Aug 2019 13:16:49 +0000 (21:16 +0800)
committerNathan Cutler <ncutler@suse.com>
Sat, 14 Mar 2020 11:30:39 +0000 (12:30 +0100)
Signed-off-by: Richard Bai(白学余) <baixueyu@inspur.com>
(cherry picked from commit fbe2be57474df43996dd45bf04d1a1137a02c729)

Conflicts:
src/rgw/rgw_http_client.cc
- mimic uses Mutex::Locker instead of std::lock_guard

src/rgw/rgw_http_client.cc
src/rgw/rgw_http_client.h

index 7bf3f968a34dd1bfb6cbc23d1e079198b4e4f5be..701ada43ad7dd2769f016aae602a8d360a72dea9 100644 (file)
@@ -58,8 +58,13 @@ struct rgw_http_req_data : public RefCountedObject {
 
   void set_state(int bitmask);
 
-  void finish(int r) {
+  void finish(int r, long http_status = -1) {
     Mutex::Locker l(lock);
+    if (http_status != -1) {
+      if (client) {
+        client->set_http_status(http_status);
+      }
+    }
     ret = r;
     if (curl_handle)
       do_curl_easy_cleanup(curl_handle);
@@ -86,7 +91,7 @@ struct rgw_http_req_data : public RefCountedObject {
     Mutex::Locker l(lock);
     return ret;
   }
-
+  
   RGWHTTPManager *get_manager() {
     Mutex::Locker l(lock);
     return mgr;
@@ -829,9 +834,9 @@ void RGWHTTPManager::_complete_request(rgw_http_req_data *req_data)
   req_data->put();
 }
 
-void RGWHTTPManager::finish_request(rgw_http_req_data *req_data, int ret)
+void RGWHTTPManager::finish_request(rgw_http_req_data *req_data, int ret, long http_status)
 {
-  req_data->finish(ret);
+  req_data->finish(ret, http_status);
   complete_request(req_data);
 }
 
@@ -1147,7 +1152,7 @@ void *RGWHTTPManager::reqs_thread_entry()
           status = -EAGAIN;
         }
         int id = req_data->id;
-       finish_request(req_data, status);
+       finish_request(req_data, status, http_status);
         switch (result) {
           case CURLE_OK:
             break;
index fab6f6bb36b156d5eb6dcafb561e132c701f4007..42a54b3c267efbd08a68aac8b0a6998a55d491ba 100644 (file)
@@ -174,6 +174,10 @@ public:
     return http_status;
   }
 
+  void set_http_status(long _http_status) {
+    http_status = _http_status;
+  }
+
   void set_verify_ssl(bool flag) {
     verify_ssl = flag;
   }
@@ -323,7 +327,7 @@ class RGWHTTPManager {
   bool unregister_request(rgw_http_req_data *req_data);
   void _unlink_request(rgw_http_req_data *req_data);
   void unlink_request(rgw_http_req_data *req_data);
-  void finish_request(rgw_http_req_data *req_data, int r);
+  void finish_request(rgw_http_req_data *req_data, int r, long http_status = -1);
   void _finish_request(rgw_http_req_data *req_data, int r);
   void _set_req_state(set_state& ss);
   int link_request(rgw_http_req_data *req_data);