]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: fix default_placement containing "/" when storage_class is standard 27676/head
authormkogan1 <mkogan@redhat.com>
Thu, 18 Apr 2019 09:30:51 +0000 (05:30 -0400)
committermkogan1 <mkogan@redhat.com>
Mon, 29 Apr 2019 16:30:59 +0000 (12:30 -0400)
fixes: http://tracker.ceph.com/issues/39380

Signed-off-by: mkogan1 <mkogan@redhat.com>
src/rgw/rgw_common.h

index 0597cba413e325c14e844a82ecdfe2ea08609cab..51cd22faf8315bdd1d358a360082042d3a1b0e3d 100644 (file)
@@ -695,7 +695,7 @@ struct rgw_placement_rule {
 
   void encode(bufferlist& bl) const {
     /* no ENCODE_START/END due to backward compatibility */
-    std::string s = to_str_explicit();
+    std::string s = to_str();
     ceph::encode(s, bl);
   }
 
@@ -720,12 +720,11 @@ struct rgw_placement_rule {
     size_t pos = s.find("/");
     if (pos == std::string::npos) {
       name = s;
+      storage_class.clear();
       return;
     }
     name = s.substr(0, pos);
-    if (pos < s.size() - 1) {
-      storage_class = s.substr(pos + 1);
-    }
+    storage_class = s.substr(pos + 1);
   }
 
   bool standard_storage_class() const {