Commit 0a993323 authored by Pawel Kaminski's avatar Pawel Kaminski Committed by Ben Walker
Browse files

rpc: Rename start_nbd_disk to nbd_start_disk



Change-Id: I46722176726076fd8bbcfa681eb7316e30ecb07d
Signed-off-by: default avatarPawel Kaminski <pawelx.kaminski@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/468580


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarPaul Luse <paul.e.luse@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
parent 0cbf1237
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -258,11 +258,11 @@ The SPDK partition type GUID is `7c5222bd-8f5d-4087-9c00-bf9843c7b58c`. Existing
can be exposed as Linux block devices via NBD and then ca be partitioned with
standard partitioning tools. After partitioning, the bdevs will need to be deleted and
attached again for the GPT bdev module to see any changes. NBD kernel module must be
loaded first. To create NBD bdev user should use `start_nbd_disk` RPC command.
loaded first. To create NBD bdev user should use `nbd_start_disk` RPC command.

Example command

`rpc.py start_nbd_disk Malloc0 /dev/nbd0`
`rpc.py nbd_start_disk Malloc0 /dev/nbd0`

This will expose an SPDK bdev `Malloc0` under the `/dev/nbd0` block device.

@@ -282,7 +282,7 @@ Example command

~~~
# Expose bdev Nvme0n1 as kernel block device /dev/nbd0 by JSON-RPC
rpc.py start_nbd_disk Nvme0n1 /dev/nbd0
rpc.py nbd_start_disk Nvme0n1 /dev/nbd0

# Create GPT partition table.
parted -s /dev/nbd0 mklabel gpt
+3 −3
Original line number Diff line number Diff line
@@ -246,7 +246,7 @@ Example response:
    "add_ip_address",
    "get_nbd_disks",
    "stop_nbd_disk",
    "start_nbd_disk",
    "nbd_start_disk",
    "get_log_flags",
    "clear_log_flag",
    "set_log_flag",
@@ -5518,7 +5518,7 @@ SPDK supports exporting bdevs through Linux nbd. These devices then appear as st

In order to export a device over nbd, first make sure the Linux kernel nbd driver is loaded by running 'modprobe nbd'.

## start_nbd_disk {#rpc_start_nbd_disk}
## nbd_start_disk {#rpc_nbd_start_disk}

Start to export one SPDK bdev as NBD disk

@@ -5544,7 +5544,7 @@ Example request:
    "bdev_name": "Malloc1"
  },
  "jsonrpc": "2.0",
  "method": "start_nbd_disk",
  "method": "nbd_start_disk",
  "id": 1
}
~~~
+1 −1
Original line number Diff line number Diff line
@@ -228,7 +228,7 @@ spdk_nbd_write_config_json(struct spdk_json_write_ctx *w)
	TAILQ_FOREACH(nbd, &g_spdk_nbd.disk_head, tailq) {
		spdk_json_write_object_begin(w);

		spdk_json_write_named_string(w, "method", "start_nbd_disk");
		spdk_json_write_named_string(w, "method", "nbd_start_disk");

		spdk_json_write_named_object_begin(w, "params");
		spdk_json_write_named_string(w, "nbd_device",  spdk_nbd_disk_get_nbd_path(nbd));
+15 −14
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@
#include "nbd_internal.h"
#include "spdk_internal/log.h"

struct rpc_start_nbd_disk {
struct rpc_nbd_start_disk {
	char *bdev_name;
	char *nbd_device;
	/* Used to search one available nbd device */
@@ -51,16 +51,16 @@ struct rpc_start_nbd_disk {
};

static void
free_rpc_start_nbd_disk(struct rpc_start_nbd_disk *req)
free_rpc_nbd_start_disk(struct rpc_nbd_start_disk *req)
{
	free(req->bdev_name);
	free(req->nbd_device);
	free(req);
}

static const struct spdk_json_object_decoder rpc_start_nbd_disk_decoders[] = {
	{"bdev_name", offsetof(struct rpc_start_nbd_disk, bdev_name), spdk_json_decode_string},
	{"nbd_device", offsetof(struct rpc_start_nbd_disk, nbd_device), spdk_json_decode_string, true},
static const struct spdk_json_object_decoder rpc_nbd_start_disk_decoders[] = {
	{"bdev_name", offsetof(struct rpc_nbd_start_disk, bdev_name), spdk_json_decode_string},
	{"nbd_device", offsetof(struct rpc_nbd_start_disk, nbd_device), spdk_json_decode_string, true},
};

/* Return 0 to indicate the nbd_device might be available,
@@ -138,7 +138,7 @@ find_available_nbd_disk(int nbd_idx, int *next_nbd_idx)
static void
spdk_rpc_start_nbd_done(void *cb_arg, struct spdk_nbd_disk *nbd, int rc)
{
	struct rpc_start_nbd_disk *req = cb_arg;
	struct rpc_nbd_start_disk *req = cb_arg;
	struct spdk_jsonrpc_request *request = req->request;
	struct spdk_json_write_ctx *w;

@@ -165,25 +165,25 @@ spdk_rpc_start_nbd_done(void *cb_arg, struct spdk_nbd_disk *nbd, int rc)
	spdk_json_write_string(w, spdk_nbd_get_path(nbd));
	spdk_jsonrpc_end_result(request, w);

	free_rpc_start_nbd_disk(req);
	free_rpc_nbd_start_disk(req);
}

static void
spdk_rpc_start_nbd_disk(struct spdk_jsonrpc_request *request,
spdk_rpc_nbd_start_disk(struct spdk_jsonrpc_request *request,
			const struct spdk_json_val *params)
{
	struct rpc_start_nbd_disk *req;
	struct rpc_nbd_start_disk *req;
	int rc;

	req = calloc(1, sizeof(*req));
	if (req == NULL) {
		SPDK_ERRLOG("could not allocate start_nbd_disk request.\n");
		SPDK_ERRLOG("could not allocate nbd_start_disk request.\n");
		spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR, "Out of memory");
		return;
	}

	if (spdk_json_decode_object(params, rpc_start_nbd_disk_decoders,
				    SPDK_COUNTOF(rpc_start_nbd_disk_decoders),
	if (spdk_json_decode_object(params, rpc_nbd_start_disk_decoders,
				    SPDK_COUNTOF(rpc_nbd_start_disk_decoders),
				    req)) {
		SPDK_ERRLOG("spdk_json_decode_object failed\n");
		spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR,
@@ -228,10 +228,11 @@ spdk_rpc_start_nbd_disk(struct spdk_jsonrpc_request *request,
	return;

invalid:
	free_rpc_start_nbd_disk(req);
	free_rpc_nbd_start_disk(req);
}

SPDK_RPC_REGISTER("start_nbd_disk", spdk_rpc_start_nbd_disk, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER("nbd_start_disk", spdk_rpc_nbd_start_disk, SPDK_RPC_RUNTIME)
SPDK_RPC_REGISTER_ALIAS_DEPRECATED(nbd_start_disk, start_nbd_disk)

struct rpc_stop_nbd_disk {
	char *nbd_device;
+5 −4
Original line number Diff line number Diff line
@@ -1461,15 +1461,16 @@ Format: 'user:u1 secret:s1 muser:mu1 msecret:ms1,user:u2 secret:s2 muser:mu2 mse
    p.set_defaults(func=enable_vmd)

    # nbd
    def start_nbd_disk(args):
        print(rpc.nbd.start_nbd_disk(args.client,
    def nbd_start_disk(args):
        print(rpc.nbd.nbd_start_disk(args.client,
                                     bdev_name=args.bdev_name,
                                     nbd_device=args.nbd_device))

    p = subparsers.add_parser('start_nbd_disk', help='Export a bdev as a nbd disk')
    p = subparsers.add_parser('nbd_start_disk', aliases=['start_nbd_disk'],
                              help='Export a bdev as a nbd disk')
    p.add_argument('bdev_name', help='Blockdev name to be exported. Example: Malloc0.')
    p.add_argument('nbd_device', help='Nbd device name to be assigned. Example: /dev/nbd0.', nargs='?')
    p.set_defaults(func=start_nbd_disk)
    p.set_defaults(func=nbd_start_disk)

    def stop_nbd_disk(args):
        rpc.nbd.stop_nbd_disk(args.client,
Loading