]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rados pybind: add conf_parse_env()
authorSage Weil <sage@inktank.com>
Mon, 19 Aug 2013 19:48:40 +0000 (12:48 -0700)
committerSage Weil <sage@inktank.com>
Mon, 19 Aug 2013 19:49:49 +0000 (12:49 -0700)
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Dan Mick <dan.mick@inktank.com>
(cherry picked from commit eef7cacdb19313907a9367187b742db5382ee584)

src/pybind/rados.py
src/test/pybind/test_rados.py

index 7768f8c39d3fb8778176c27898d12197de60dc3a..a0e5bf42ba9276e8944b7a0443b20e0911d3a833 100644 (file)
@@ -294,6 +294,19 @@ Rados object in state %s." % (self.state))
         retargs = [a for a in cretargs if a is not None]
         return retargs
 
+    def conf_parse_env(self, var='CEPH_ARGS'):
+        """
+        Parse known arguments from an environment variable, normally
+        CEPH_ARGS.
+        """
+        self.require_state("configuring", "connected")
+        if not var:
+            return
+        ret = run_in_thread(self.librados.rados_conf_parse_env,
+                            (self.cluster, c_char_p(var)))
+        if (ret != 0):
+            raise make_ex(ret, "error calling conf_parse_env")
+
     def conf_get(self, option):
         """
         Get the value of a configuration option
index 4628a44a652ce4ca2d3c4ec6b60bad5052419d8a..a8df299c879fa4bc2957f40fd225330e0a74715c 100644 (file)
@@ -31,6 +31,12 @@ def test_rados_init():
     with Rados(conffile='', name='client.admin'):
         pass
 
+def test_rados_parse_conf():
+    with Rados(conffile='', rados_id='admin') as rados:
+        rados.parse_env()
+        rados.parse_env('FOO_DOES_NOT_EXIST_BLAHBLAH')
+        pass
+
 def test_ioctx_context_manager():
     with Rados(conffile='', rados_id='admin') as conn:
         with conn.open_ioctx('data') as ioctx: