]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/test/objectstore/FileStoreDiff.cc
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / test / objectstore / FileStoreDiff.cc
index 3bdcec8f6b697e6d2ec7f517576fe4f60b5e8b78..e68485701102fc010655ab715cfdb52ac90ad49b 100644 (file)
@@ -153,11 +153,15 @@ bool FileStoreDiff::diff_objects(FileStore *a_store, FileStore *b_store, coll_t
   }
 
   if (b_objects.size() != a_objects.size()) {
-    cout << "diff_objects num objs mismatch (A: " << a_objects.size()
+    cout << "diff_objects " << coll << " num objs mismatch (A: " << a_objects.size()
         << ", B: " << b_objects.size() << ")" << std::endl;
     ret = true;
+    cout << "a: " << a_objects << std::endl;
+    cout << "b: " << b_objects << std::endl;
   }
 
+  auto a_ch = a_store->open_collection(coll);
+  auto b_ch = b_store->open_collection(coll);
   std::vector<ghobject_t>::iterator b_it = b_objects.begin();
   std::vector<ghobject_t>::iterator a_it = b_objects.begin();
   for (; b_it != b_objects.end(); ++b_it, ++a_it) {
@@ -171,13 +175,13 @@ bool FileStoreDiff::diff_objects(FileStore *a_store, FileStore *b_store, coll_t
     }
 
     struct stat b_stat, a_stat;
-    err = b_store->stat(coll, b_obj, &b_stat);
+    err = b_store->stat(b_ch, b_obj, &b_stat);
     if (err < 0) {
       cout << "diff_objects error stating B object "
              << coll.to_str() << "/" << b_obj.hobj.oid.name << std::endl;
       ret = true;
     }
-    err = a_store->stat(coll, a_obj, &a_stat);
+    err = a_store->stat(a_ch, a_obj, &a_stat);
     if (err < 0) {
       cout << "diff_objects error stating A object "
           << coll << "/" << a_obj << std::endl;
@@ -191,8 +195,8 @@ bool FileStoreDiff::diff_objects(FileStore *a_store, FileStore *b_store, coll_t
     }
 
     bufferlist a_obj_bl, b_obj_bl;
-    b_store->read(coll, b_obj, 0, b_stat.st_size, b_obj_bl);
-    a_store->read(coll, a_obj, 0, a_stat.st_size, a_obj_bl);
+    b_store->read(b_ch, b_obj, 0, b_stat.st_size, b_obj_bl);
+    a_store->read(a_ch, a_obj, 0, a_stat.st_size, a_obj_bl);
 
     if (!a_obj_bl.contents_equal(b_obj_bl)) {
       cout << "diff_objects content mismatch on "
@@ -201,13 +205,13 @@ bool FileStoreDiff::diff_objects(FileStore *a_store, FileStore *b_store, coll_t
     }
 
     std::map<std::string, bufferptr> a_obj_attrs_map, b_obj_attrs_map;
-    err = a_store->getattrs(coll, a_obj, a_obj_attrs_map);
+    err = a_store->getattrs(a_ch, a_obj, a_obj_attrs_map);
     if (err < 0) {
       cout << "diff_objects getattrs on A object " << coll << "/" << a_obj
               << " returns " << err << std::endl;
       ret = true;
     }
-    err = b_store->getattrs(coll, b_obj, b_obj_attrs_map);
+    err = b_store->getattrs(b_ch, b_obj, b_obj_attrs_map);
     if (err < 0) {
       cout << "diff_objects getattrs on B object " << coll << "/" << b_obj
               << "returns " << err << std::endl;
@@ -223,25 +227,25 @@ bool FileStoreDiff::diff_objects(FileStore *a_store, FileStore *b_store, coll_t
 
     std::map<std::string, bufferlist> a_obj_omap, b_obj_omap;
     std::set<std::string> a_omap_keys, b_omap_keys;
-    err = a_store->omap_get_keys(coll, a_obj, &a_omap_keys);
+    err = a_store->omap_get_keys(a_ch, a_obj, &a_omap_keys);
     if (err < 0) {
       cout << "diff_objects getomap on A object " << coll << "/" << a_obj
               << " returns " << err << std::endl;
       ret = true;
     }
-    err = a_store->omap_get_values(coll, a_obj, a_omap_keys, &a_obj_omap);
+    err = a_store->omap_get_values(a_ch, a_obj, a_omap_keys, &a_obj_omap);
     if (err < 0) {
       cout << "diff_objects getomap on A object " << coll << "/" << a_obj
               << " returns " << err << std::endl;
       ret = true;
     }
-    err = b_store->omap_get_keys(coll, b_obj, &b_omap_keys);
+    err = b_store->omap_get_keys(b_ch, b_obj, &b_omap_keys);
     if (err < 0) {
       cout << "diff_objects getomap on A object " << coll << "/" << b_obj
               << " returns " << err << std::endl;
       ret = true;
     }
-    err = b_store->omap_get_values(coll, b_obj, b_omap_keys, &b_obj_omap);
+    err = b_store->omap_get_values(b_ch, b_obj, b_omap_keys, &b_obj_omap);
     if (err < 0) {
       cout << "diff_objects getomap on A object " << coll << "/" << b_obj
               << " returns " << err << std::endl;