On Tue, Apr 03, 2018 at 06:33:52PM +0200, Kevin Wolf wrote:
> The legacy command line interface gets the socket path from an option
> called 'socket'. QAPI in contract uses SocketAddress, where the
> corresponding option is called 'path'.
>
> Fix the gluster block driver to accept both 'socket' and 'path', with
> 'path' being the preferred syntax.
>
> https://bugzilla.redhat.com/show_bug.cgi?id=1545155
>
> Cc: qemu-stable@nongnu.org
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> Reviewed-by: Eric Blake <eblake@redhat.com>
Oops, you and I had a pull request collision on this patch (it is in both of
our PRs); Sorry, my fault, I didn't know you were pulling it in through your
tree.
> ---
> block/gluster.c | 21 +++++++++++++++++----
> 1 file changed, 17 insertions(+), 4 deletions(-)
>
> diff --git a/block/gluster.c b/block/gluster.c
> index 296e036b3d..4adc1a875b 100644
> --- a/block/gluster.c
> +++ b/block/gluster.c
> @@ -167,7 +167,12 @@ static QemuOptsList runtime_unix_opts = {
> {
> .name = GLUSTER_OPT_SOCKET,
> .type = QEMU_OPT_STRING,
> - .help = "socket file path)",
> + .help = "socket file path (legacy)",
> + },
> + {
> + .name = GLUSTER_OPT_PATH,
> + .type = QEMU_OPT_STRING,
> + .help = "socket file path (QAPI)",
> },
> { /* end of list */ }
> },
> @@ -615,10 +620,18 @@ static int qemu_gluster_parse_json(BlockdevOptionsGluster *gconf,
> goto out;
> }
>
> - ptr = qemu_opt_get(opts, GLUSTER_OPT_SOCKET);
> + ptr = qemu_opt_get(opts, GLUSTER_OPT_PATH);
> + if (!ptr) {
> + ptr = qemu_opt_get(opts, GLUSTER_OPT_SOCKET);
> + } else if (qemu_opt_get(opts, GLUSTER_OPT_SOCKET)) {
> + error_setg(&local_err,
> + "Conflicting parameters 'path' and 'socket'");
> + error_append_hint(&local_err, GERR_INDEX_HINT, i);
> + goto out;
> + }
> if (!ptr) {
> error_setg(&local_err, QERR_MISSING_PARAMETER,
> - GLUSTER_OPT_SOCKET);
> + GLUSTER_OPT_PATH);
> error_append_hint(&local_err, GERR_INDEX_HINT, i);
> goto out;
> }
> @@ -684,7 +697,7 @@ static int qemu_gluster_parse(BlockdevOptionsGluster *gconf,
> "file.server.0.host=1.2.3.4,"
> "file.server.0.port=24007,"
> "file.server.1.transport=unix,"
> - "file.server.1.socket=/var/run/glusterd.socket ..."
> + "file.server.1.path=/var/run/glusterd.socket ..."
> "\n");
> return ret;
> }
> --
> 2.13.6
>
>