diff options
author | Kevin Wolf <kwolf@redhat.com> | 2020-02-24 15:29:57 +0100 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2020-03-06 17:21:28 +0100 |
commit | eed8b691783264013142ed0273e08f5a7f913569 (patch) | |
tree | 0aa5c78e05a357345cc7719dd8e03df6b0cfbf8f /qemu-storage-daemon.c | |
parent | d6da78b5fdad8d4e7fbe6eebbb6ea369f84c0408 (diff) |
qemu-storage-daemon: Add --nbd-server option
Add a --nbd-server option to qemu-storage-daemon to start the built-in
NBD server right away. It maps the arguments for nbd-server-start to the
command line, with the exception that it uses SocketAddress instead of
SocketAddressLegacy: New interfaces shouldn't use legacy types, and the
additional nesting would be nasty on the command line.
Example (only with required options):
--nbd-server addr.type=inet,addr.host=localhost,addr.port=10809
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20200224143008.13362-10-kwolf@redhat.com>
Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'qemu-storage-daemon.c')
-rw-r--r-- | qemu-storage-daemon.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/qemu-storage-daemon.c b/qemu-storage-daemon.c index 0cd8144c81..276a412915 100644 --- a/qemu-storage-daemon.c +++ b/qemu-storage-daemon.c @@ -28,11 +28,14 @@ #include <getopt.h> #include "block/block.h" +#include "block/nbd.h" #include "crypto/init.h" #include "qapi/error.h" -#include "qapi/qapi-visit-block-core.h" +#include "qapi/qapi-commands-block.h" #include "qapi/qapi-commands-block-core.h" +#include "qapi/qapi-visit-block.h" +#include "qapi/qapi-visit-block-core.h" #include "qapi/qmp/qdict.h" #include "qapi/qobject-input-visitor.h" @@ -67,6 +70,12 @@ static void help(void) " [,driver specific parameters...]\n" " configure a block backend\n" "\n" +" --nbd-server addr.type=inet,addr.host=<host>,addr.port=<port>\n" +" [,tls-creds=<id>][,tls-authz=<id>]\n" +" --nbd-server addr.type=unix,addr.path=<path>\n" +" [,tls-creds=<id>][,tls-authz=<id>]\n" +" start an NBD server for exporting block nodes\n" +"\n" " --object help list object types that can be added\n" " --object <type>,help list properties for the given object type\n" " --object <type>[,<property>=<value>...]\n" @@ -82,6 +91,7 @@ QEMU_HELP_BOTTOM "\n", enum { OPTION_BLOCKDEV = 256, + OPTION_NBD_SERVER, OPTION_OBJECT, }; @@ -101,6 +111,7 @@ static void process_options(int argc, char *argv[]) static const struct option long_options[] = { {"blockdev", required_argument, NULL, OPTION_BLOCKDEV}, {"help", no_argument, NULL, 'h'}, + {"nbd-server", required_argument, NULL, OPTION_NBD_SERVER}, {"object", required_argument, NULL, OPTION_OBJECT}, {"trace", required_argument, NULL, 'T'}, {"version", no_argument, NULL, 'V'}, @@ -145,6 +156,19 @@ static void process_options(int argc, char *argv[]) qapi_free_BlockdevOptions(options); break; } + case OPTION_NBD_SERVER: + { + Visitor *v; + NbdServerOptions *options; + + v = qobject_input_visitor_new_str(optarg, NULL, &error_fatal); + visit_type_NbdServerOptions(v, NULL, &options, &error_fatal); + visit_free(v); + + nbd_server_start_options(options, &error_fatal); + qapi_free_NbdServerOptions(options); + break; + } case OPTION_OBJECT: { QemuOpts *opts; |