[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH v2 5/5] block/rbd: add support for 'mon_host', 'auth
From: |
Jeff Cody |
Subject: |
[Qemu-block] [PATCH v2 5/5] block/rbd: add support for 'mon_host', 'auth_supported' via QAPI |
Date: |
Mon, 27 Feb 2017 13:58:48 -0500 |
This adds support for two additional options that may be specified
by QAPI in blockdev-add:
mon_host: servername and port
auth_supported: either 'cephx' or 'none'
Signed-off-by: Jeff Cody <address@hidden>
---
block/rbd.c | 39 +++++++++++++++++++++++++++++++++++++++
qapi/block-core.json | 8 ++++++++
2 files changed, 47 insertions(+)
diff --git a/block/rbd.c b/block/rbd.c
index e04a5e1..51e971e 100644
--- a/block/rbd.c
+++ b/block/rbd.c
@@ -394,6 +394,18 @@ static QemuOptsList runtime_opts = {
.name = "keyvalue-pairs",
.type = QEMU_OPT_STRING,
},
+ {
+ .name = "server.host",
+ .type = QEMU_OPT_STRING,
+ },
+ {
+ .name = "server.port",
+ .type = QEMU_OPT_STRING,
+ },
+ {
+ .name = "auth_supported",
+ .type = QEMU_OPT_STRING,
+ },
{ /* end of list */ }
},
};
@@ -559,6 +571,7 @@ static int qemu_rbd_open(BlockDriverState *bs, QDict
*options, int flags,
{
BDRVRBDState *s = bs->opaque;
const char *pool, *snap, *conf, *clientname, *name, *keypairs;
+ const char *host, *port, *auth_supported;
const char *secretid;
QemuOpts *opts;
Error *local_err = NULL;
@@ -580,6 +593,9 @@ static int qemu_rbd_open(BlockDriverState *bs, QDict
*options, int flags,
clientname = qemu_opt_get(opts, "user");
name = qemu_opt_get(opts, "image");
keypairs = qemu_opt_get(opts, "keyvalue-pairs");
+ host = qemu_opt_get(opts, "server.host");
+ port = qemu_opt_get(opts, "server.port");
+ auth_supported = qemu_opt_get(opts, "auth_supported");
r = rados_create(&s->cluster, clientname);
if (r < 0) {
@@ -604,6 +620,29 @@ static int qemu_rbd_open(BlockDriverState *bs, QDict
*options, int flags,
goto failed_shutdown;
}
+ /* if mon_host was specified */
+ if (host) {
+ const char *hostname = host;
+ char *mon_host = NULL;
+
+ if (port) {
+ mon_host = g_strdup_printf("%s:%s", host, port);
+ hostname = mon_host;
+ }
+ r = rados_conf_set(s->cluster, "mon_host", hostname);
+ g_free(mon_host);
+ if (r < 0) {
+ goto failed_shutdown;
+ }
+ }
+
+ if (auth_supported) {
+ r = rados_conf_set(s->cluster, "auth_supported", auth_supported);
+ if (r < 0) {
+ goto failed_shutdown;
+ }
+ }
+
if (qemu_rbd_set_auth(s->cluster, secretid, errp) < 0) {
r = -EIO;
goto failed_shutdown;
diff --git a/qapi/block-core.json b/qapi/block-core.json
index 5b311ff..376512c 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -2680,6 +2680,12 @@
#
# @user: #optional Ceph id name.
#
+# @server: #optional Monitor host address and port. This maps
+# to the "mon_host" Ceph option.
+#
+# @auth_supported: #optional Authentication supported.
+# Either "cephx" or"none".
+#
# @password-secret: #optional The ID of a QCryptoSecret object providing
# the password for the login.
#
@@ -2691,6 +2697,8 @@
'*conf': 'str',
'*snapshot': 'str',
'*user': 'str',
+ '*server': 'InetSocketAddress',
+ '*auth_supported': 'str',
'*password-secret': 'str' } }
##
--
2.9.3
- [Qemu-block] [PATCH v2 0/5] RBD: blockdev-add, Jeff Cody, 2017/02/27
- [Qemu-block] [PATCH v2 2/5] block/rbd: add all the currently supported runtime_opts, Jeff Cody, 2017/02/27
- [Qemu-block] [PATCH v2 1/5] block/rbd: don't copy strings in qemu_rbd_next_tok(), Jeff Cody, 2017/02/27
- [Qemu-block] [PATCH v2 4/5] block/rbd: add blockdev-add support, Jeff Cody, 2017/02/27
- [Qemu-block] [PATCH v2 5/5] block/rbd: add support for 'mon_host', 'auth_supported' via QAPI,
Jeff Cody <=
- Re: [Qemu-block] [PATCH v2 5/5] block/rbd: add support for 'mon_host', 'auth_supported' via QAPI, Daniel P. Berrange, 2017/02/27
- Re: [Qemu-block] [PATCH v2 5/5] block/rbd: add support for 'mon_host', 'auth_supported' via QAPI, Eric Blake, 2017/02/27
- Re: [Qemu-block] [PATCH v2 5/5] block/rbd: add support for 'mon_host', 'auth_supported' via QAPI, Jeff Cody, 2017/02/27
- Re: [Qemu-block] [PATCH v2 5/5] block/rbd: add support for 'mon_host', 'auth_supported' via QAPI, Jeff Cody, 2017/02/27
- Re: [Qemu-block] [PATCH v2 5/5] block/rbd: add support for 'mon_host', 'auth_supported' via QAPI, Daniel P. Berrange, 2017/02/28
- Re: [Qemu-block] [Qemu-devel] [PATCH v2 5/5] block/rbd: add support for 'mon_host', 'auth_supported' via QAPI, Daniel P. Berrange, 2017/02/28
- Re: [Qemu-block] [Qemu-devel] [PATCH v2 5/5] block/rbd: add support for 'mon_host', 'auth_supported' via QAPI, Jeff Cody, 2017/02/28
- Re: [Qemu-block] [Qemu-devel] [PATCH v2 5/5] block/rbd: add support for 'mon_host', 'auth_supported' via QAPI, Daniel P. Berrange, 2017/02/28
[Qemu-block] [PATCH v2 3/5] block/rbd: parse all options via bdrv_parse_filename, Jeff Cody, 2017/02/27