]> git.apps.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
Discover rbd facts.
authorValentin Lorentz <progval+git@progval.net>
Mon, 19 Nov 2018 20:49:45 +0000 (21:49 +0100)
committerSébastien Han <seb@redhat.com>
Tue, 20 Nov 2018 14:06:01 +0000 (15:06 +0100)
Signed-off-by: Valentin Lorentz <progval+git@progval.net>
library/ceph_facts

index 257ab8ee05d5d3b110bc290faaf5baf9fa5adbc2..06b23da4cbecceb81a4ce6e200d4bf54a4b9982e 100644 (file)
@@ -127,6 +127,34 @@ def run_ceph_facts(module):
         for (k,v) in rados_df_ds.items():
             setup_options["rados_df_%s" % k] = v
 
+    setup_options['rbd_images'] = {}
+    for pool in setup_options.get('osd_status_pools', []):
+        if 'rbd' in pool['application_metadata']:
+            pool_name = pool['pool_name']
+            setup_options['rbd_images'][pool_name] = {}
+            cmd = ["/usr/bin/env", "rbd", "list", pool_name, "--format=json"]
+            rc, out, err = module.run_command(cmd, check_rc=True)
+            try:
+                images = json.loads(out)
+            except json.JsonDecodeError:
+                continue
+            for image in images:
+                setup_options['rbd_images'][pool_name][image] = {}
+
+                cmd = ["/usr/bin/env", "rbd", "status", pool_name+'/'+image, "--format=json"]
+                rc, out, err = module.run_command(cmd, check_rc=True)
+                try:
+                    setup_options['rbd_images'][pool_name][image]['status'] = json.loads(out)
+                except json.JsonDecodeError:
+                    continue
+
+                cmd = ["/usr/bin/env", "rbd", "info", pool_name+'/'+image, "--format=json"]
+                rc, out, err = module.run_command(cmd, check_rc=True)
+                try:
+                    setup_options['rbd_images'][pool_name][image]['info'] = json.loads(out)
+                except json.JsonDecodeError:
+                    continue
+
     # business as usual
     for (k, v) in facts.items():                                                
         setup_options["ansible_%s" % k.replace('-', '_')] = v