]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
qa/workunits/rbd: use context managers to control Rados lifespan 34035/head
authorJason Dillaman <dillaman@redhat.com>
Wed, 18 Mar 2020 16:54:16 +0000 (12:54 -0400)
committerJason Dillaman <dillaman@redhat.com>
Wed, 18 Mar 2020 16:56:14 +0000 (12:56 -0400)
There is a potential race between the expected exceptions being
thrown and Python shutting down racing with librados background
threads. Ensure that librados is properly shut down prior to
exiting Python.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
qa/workunits/rbd/permissions.sh

index 68144d2b9402e588a0fd00a77e8db6b0a06be305..f8a9aaa7128ef86f9941568d3da94fddf6966668 100755 (executable)
@@ -168,12 +168,11 @@ create_self_managed_snapshot() {
   cat << EOF | CEPH_ARGS="-k $KEYRING" python3
 import rados
 
-cluster = rados.Rados(conffile="", rados_id="${ID}")
-cluster.connect()
-ioctx = cluster.open_ioctx("${POOL}")
+with rados.Rados(conffile="", rados_id="${ID}") as cluster:
+  ioctx = cluster.open_ioctx("${POOL}")
 
-snap_id = ioctx.create_self_managed_snap()
-print ("Created snap id {}".format(snap_id))
+  snap_id = ioctx.create_self_managed_snap()
+  print ("Created snap id {}".format(snap_id))
 EOF
 }
 
@@ -184,19 +183,17 @@ remove_self_managed_snapshot() {
   cat << EOF | CEPH_ARGS="-k $KEYRING" python3
 import rados
 
-cluster1 = rados.Rados(conffile="", rados_id="mon_write")
-cluster1.connect()
-ioctx1 = cluster1.open_ioctx("${POOL}")
+with rados.Rados(conffile="", rados_id="mon_write") as cluster1, \
+     rados.Rados(conffile="", rados_id="${ID}") as cluster2:
+  ioctx1 = cluster1.open_ioctx("${POOL}")
 
-snap_id = ioctx1.create_self_managed_snap()
-print ("Created snap id {}".format(snap_id))
+  snap_id = ioctx1.create_self_managed_snap()
+  print ("Created snap id {}".format(snap_id))
 
-cluster2 = rados.Rados(conffile="", rados_id="${ID}")
-cluster2.connect()
-ioctx2 = cluster2.open_ioctx("${POOL}")
+  ioctx2 = cluster2.open_ioctx("${POOL}")
 
-ioctx2.remove_self_managed_snap(snap_id)
-print ("Removed snap id {}".format(snap_id))
+  ioctx2.remove_self_managed_snap(snap_id)
+  print ("Removed snap id {}".format(snap_id))
 EOF
 }