mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 00:33:55 -06:00
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>
This commit is contained in:
parent
d6da78b5fd
commit
eed8b69178
5 changed files with 56 additions and 2 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue