diff --git a/ext_scripts/ext_rbd.py b/ext_scripts/ext_rbd.py index b74ae1ba9a1ec0bfd8e76d12a28a4ad62151243e..006e5c0afccf9f2303dadc015fb6bb96df1cc7d1 100755 --- a/ext_scripts/ext_rbd.py +++ b/ext_scripts/ext_rbd.py @@ -281,6 +281,22 @@ def snapshot(env): return 1 +def format_qemu_uri(name, pool=None, cephx=None, conf_file=None): + """Create a QEMU RBD URI for the specific image / environment""" + + uri = 'kvm:rbd:%s' % RBD.format_name(name, pool=pool) + extra_conf = '' + if cephx['id']: + extra_conf += ':id=%s' % cephx['id'] + if conf_file: + extra_conf += ':conf=%s' % conf_file + + if extra_conf: + uri += extra_conf + + return uri + + def attach(env): """ Map an existing RBD Image to a block device @@ -294,6 +310,7 @@ def attach(env): userspace_only = env.get("userspace_only") name = env.get("name") pool = env.get("rbd_pool") + cephx = env.get("cephx") if userspace_only: device = "" else: @@ -308,7 +325,9 @@ def attach(env): % (RBD.format_name(name, pool=pool), device)) sys.stdout.write("%s" % device) - sys.stdout.write("\nkvm:rbd:%s" % RBD.format_name(name, pool=pool)) + qemu_uri = format_qemu_uri(name, pool=pool, cephx=cephx) + sys.stdout.write("\n%s" % qemu_uri) + return 0