]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph_manager: define pool context
authorLoic Dachary <ldachary@redhat.com>
Thu, 20 Nov 2014 12:54:11 +0000 (13:54 +0100)
committerLoic Dachary <ldachary@redhat.com>
Tue, 13 Jan 2015 19:18:25 +0000 (20:18 +0100)
To create a pool before running a code bloc and remove it after.

   with manager.pool("mypool"):
        mytest..

Signed-off-by: Loic Dachary <ldachary@redhat.com>
tasks/ceph_manager.py

index b1ffc80ec77cf150e94f6cf5a782cc6fac04de90..05e94111f882e48a47d9877bbaf86ab1eef28e0b 100644 (file)
@@ -2,6 +2,7 @@
 ceph manager -- Thrasher and CephManager objects
 """
 from cStringIO import StringIO
+import contextlib
 import random
 import time
 import gevent
@@ -898,6 +899,12 @@ class CephManager:
                 erasure_code_profile_name=erasure_code_profile_name)
         return name
 
+    @contextlib.contextmanager
+    def pool(self, pool_name, pg_num=16, erasure_code_profile_name=None):
+        self.create_pool(pool_name, pg_num, erasure_code_profile_name)
+        yield
+        self.remove_pool(pool_name)
+
     def create_pool(self, pool_name, pg_num=16, erasure_code_profile_name=None):
         """
         Create a pool named from the pool_name parameter.