]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: add virtual error bucket per user in usage logs
authorJavier M. Mellid <jmunhoz@igalia.com>
Wed, 2 Mar 2016 17:20:29 +0000 (18:20 +0100)
committerJavier M. Mellid <jmunhoz@igalia.com>
Sat, 5 Mar 2016 08:49:45 +0000 (09:49 +0100)
Log under the virtual error bucket '-' when bucket not found

Signed-off-by: Javier M. Mellid <jmunhoz@igalia.com>
src/rgw/rgw_log.cc

index eecb990e8b3353435c0a42d516724d19811a3446..f3206b9fbeee8aabc251511df311651d14357919 100644 (file)
@@ -188,19 +188,27 @@ static void log_usage(struct req_state *s, const string& op_name)
 
   rgw_user user;
   rgw_user payer;
+  string bucket_name;
 
-  if (!s->bucket_name.empty()) {
+  bucket_name = s->bucket_name;
+
+  if (!bucket_name.empty()) {
     user = s->bucket_owner.get_id();
     if (s->bucket_info.requester_pays) {
       payer = s->user->user_id;
     }
   } else {
-    user = s->user->user_id;
+      user = s->user->user_id;
+  }
+
+  bool error = s->err.is_err();
+  if (error && s->err.http_ret == 404) {
+    bucket_name = "-"; /* bucket not found, use the invalid '-' as bucket name */
   }
 
   string u = user.to_str();
   string p = payer.to_str();
-  rgw_usage_log_entry entry(u, p, s->bucket.name);
+  rgw_usage_log_entry entry(u, p, bucket_name);
 
   uint64_t bytes_sent = s->cio->get_bytes_sent();
   uint64_t bytes_received = s->cio->get_bytes_received();
@@ -208,7 +216,7 @@ static void log_usage(struct req_state *s, const string& op_name)
   rgw_usage_data data(bytes_sent, bytes_received);
 
   data.ops = 1;
-  if (!s->err.is_err())
+  if (!error)
     data.successful_ops = 1;
 
   entry.add(op_name, data);