]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test/librbd: added update_features RPC message to test_notify 18561/head
authorJason Dillaman <dillaman@redhat.com>
Thu, 26 Oct 2017 14:57:20 +0000 (10:57 -0400)
committerJason Dillaman <dillaman@redhat.com>
Thu, 26 Oct 2017 16:50:43 +0000 (12:50 -0400)
Fixes: http://tracker.ceph.com/issues/21936
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
src/test/librbd/test_notify.py

index b44ef0cab302bf88050fe6b89b8983fe48c03542..b7b934b5a73e24685463b693e8bb06250c5090d7 100755 (executable)
@@ -64,7 +64,7 @@ def master(ioctx):
         image.create_snap('snap1')
         image.protect_snap('snap1')
 
-    features = features & ~(RBD_FEATURE_OBJECT_MAP | RBD_FEATURE_FAST_DIFF)
+    features = features & ~(RBD_FEATURE_FAST_DIFF)
     RBD().clone(ioctx, PARENT_IMG_NAME, 'snap1', ioctx, CLONE_IMG_NAME,
                 features=features)
     with Image(ioctx, CLONE_IMG_NAME) as image:
@@ -102,7 +102,6 @@ def slave(ioctx):
 
     print("rename")
     RBD().rename(ioctx, CLONE_IMG_NAME, CLONE_IMG_RENAME);
-    assert(not image.is_exclusive_lock_owner())
 
     with Image(ioctx, CLONE_IMG_RENAME) as image:
         print("flatten")
@@ -141,10 +140,17 @@ def slave(ioctx):
         assert(not image.is_exclusive_lock_owner())
         assert(list(image.list_snaps()) == [])
 
-        print("rebuild object map")
+        print("update_features")
+        assert((image.features() & RBD_FEATURE_OBJECT_MAP) != 0)
+        image.update_features(RBD_FEATURE_OBJECT_MAP, False)
+        assert(not image.is_exclusive_lock_owner())
         assert((image.features() & RBD_FEATURE_OBJECT_MAP) == 0)
         image.update_features(RBD_FEATURE_OBJECT_MAP, True)
+        assert(not image.is_exclusive_lock_owner())
+        assert((image.features() & RBD_FEATURE_OBJECT_MAP) != 0)
         assert((image.flags() & RBD_FLAG_OBJECT_MAP_INVALID) != 0)
+
+        print("rebuild object map")
         image.rebuild_object_map()
         assert(not image.is_exclusive_lock_owner())
         assert((image.flags() & RBD_FLAG_OBJECT_MAP_INVALID) == 0)