]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Return STATUS_NO_CONTENT on successful deletion
authorSelvakumar <selva.k.nambi@seagate.com>
Mon, 27 Jun 2022 12:19:55 +0000 (17:49 +0530)
committerSelvakumar <selva.k.nambi@seagate.com>
Mon, 27 Jun 2022 12:19:55 +0000 (17:49 +0530)
Signed-off-by: Selvakumar <selva.k.nambi@seagate.com>
src/rgw/rgw_op.cc
src/rgw/rgw_rest_s3.cc

index d7699add955ea78bef00f66ec1382c58548896a3..444f887811e0a6caece45238d306d6cf378a9464 100644 (file)
@@ -1031,13 +1031,15 @@ void RGWGetObjTags::execute(optional_yield y)
 
   s->object->set_atomic();
 
-  op_ret = s->object->get_obj_attrs(y, this);
+  op_ret = s->object->get_obj_attrs(s->obj_ctx, y, this);
 
-  attrs = s->object->get_attrs();
-  auto tags = attrs.find(RGW_ATTR_TAGS);
-  if(tags != attrs.end()){
-    has_tags = true;
-    tags_bl.append(tags->second);
+  if (op_ret == 0){
+    attrs = s->object->get_attrs();
+    auto tags = attrs.find(RGW_ATTR_TAGS);
+    if(tags != attrs.end()){
+      has_tags = true;
+      tags_bl.append(tags->second);
+    }
   }
   send_response_data(tags_bl);
 }
index 4300a4026ee6fe6a054ba033af9a1b9f7768ace1..c9ef424af7dc36bb4895dc784098f3f74fb72dc5 100644 (file)
@@ -638,23 +638,25 @@ void RGWGetObjTags_ObjStore_S3::send_response_data(bufferlist& bl)
   end_header(s, this, "application/xml");
   dump_start(s);
 
-  s->formatter->open_object_section_in_ns("Tagging", XMLNS_AWS_S3);
-  s->formatter->open_object_section("TagSet");
-  if (has_tags){
-    RGWObjTagSet_S3 tagset;
-    auto iter = bl.cbegin();
-    try {
-      tagset.decode(iter);
-    } catch (buffer::error& err) {
-      ldpp_dout(this,0) << "ERROR: caught buffer::error, couldn't decode TagSet" << dendl;
-      op_ret= -EIO;
-      return;
+  if (!op_ret){
+    s->formatter->open_object_section_in_ns("Tagging", XMLNS_AWS_S3);
+    s->formatter->open_object_section("TagSet");
+    if (has_tags){
+      RGWObjTagSet_S3 tagset;
+      auto iter = bl.cbegin();
+      try {
+        tagset.decode(iter);
+      } catch (buffer::error& err) {
+        ldpp_dout(this,0) << "ERROR: caught buffer::error, couldn't decode TagSet" << dendl;
+        op_ret= -EIO;
+        return;
+      }
+      tagset.dump_xml(s->formatter);
     }
-    tagset.dump_xml(s->formatter);
+    s->formatter->close_section();
+    s->formatter->close_section();
+    rgw_flush_formatter_and_reset(s, s->formatter);
   }
-  s->formatter->close_section();
-  s->formatter->close_section();
-  rgw_flush_formatter_and_reset(s, s->formatter);
 }
 
 
@@ -711,6 +713,9 @@ void RGWPutObjTags_ObjStore_S3::send_response()
 
 void RGWDeleteObjTags_ObjStore_S3::send_response()
 {
+  if (op_ret == 0){
+    op_ret = STATUS_NO_CONTENT;
+  }
   if (op_ret)
     set_req_state_err(s, op_ret);
   dump_errno(s);