From: Valentin Lorentz Date: Mon, 19 Nov 2018 20:49:45 +0000 (+0100) Subject: Discover rbd facts. X-Git-Tag: v4.0.0beta1~214 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=30ce7e84f4d14657d9447081f7f4c05471f8737c;p=ceph-ansible.git Discover rbd facts. Signed-off-by: Valentin Lorentz --- diff --git a/library/ceph_facts b/library/ceph_facts index 257ab8ee0..06b23da4c 100644 --- a/library/ceph_facts +++ b/library/ceph_facts @@ -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