Commit ed6a63d5 authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Jim Harris
Browse files

bdev/raid: Add JSON config dump



Change-Id: I5b2832aad585145e021e26ac288da91ece2153a9
Signed-off-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-on: https://review.gerrithub.io/426289


Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarKarol Latecki <karol.latecki@intel.com>
Reviewed-by: default avatarPaul Luse <paul.e.luse@intel.com>
Reviewed-by: default avatarPawel Wodkowski <pawelx.wodkowski@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent 9d1b8599
Loading
Loading
Loading
Loading
+44 −5
Original line number Diff line number Diff line
@@ -696,6 +696,44 @@ raid_bdev_dump_info_json(void *ctx, struct spdk_json_write_ctx *w)
	return 0;
}

/*
 * brief:
 * raid_bdev_write_config_json is the function table pointer for raid bdev
 * params:
 * bdev - pointer to spdk_bdev
 * w - pointer to json context
 * returns:
 * none
 */
static void
raid_bdev_write_config_json(struct spdk_bdev *bdev, struct spdk_json_write_ctx *w)
{
	struct raid_bdev *raid_bdev = bdev->ctxt;
	struct spdk_bdev *base;
	uint16_t i;

	spdk_json_write_object_begin(w);

	spdk_json_write_named_string(w, "method", "construct_raid_bdev");

	spdk_json_write_named_object_begin(w, "params");
	spdk_json_write_named_string(w, "name", bdev->name);
	spdk_json_write_named_uint32(w, "strip_size", raid_bdev->strip_size);
	spdk_json_write_named_uint32(w, "raid_level", raid_bdev->raid_level);

	spdk_json_write_named_array_begin(w, "base_bdevs");
	for (i = 0; i < raid_bdev->num_base_bdevs; i++) {
		base = raid_bdev->base_bdev_info[i].bdev;
		if (base) {
			spdk_json_write_string(w, base->name);
		}
	}
	spdk_json_write_array_end(w);
	spdk_json_write_object_end(w);

	spdk_json_write_object_end(w);
}

/* g_raid_bdev_fn_table is the function table for raid bdev */
static const struct spdk_bdev_fn_table g_raid_bdev_fn_table = {
	.destruct		= raid_bdev_destruct,
@@ -703,6 +741,7 @@ static const struct spdk_bdev_fn_table g_raid_bdev_fn_table = {
	.io_type_supported	= raid_bdev_io_type_supported,
	.get_io_channel		= raid_bdev_get_io_channel,
	.dump_info_json		= raid_bdev_dump_info_json,
	.write_config_json	= raid_bdev_write_config_json,
};

/*
+12 −0
Original line number Diff line number Diff line
@@ -339,6 +339,18 @@ spdk_json_write_object_begin(struct spdk_json_write_ctx *w)
	return 0;
}

int
spdk_json_write_named_object_begin(struct spdk_json_write_ctx *w, const char *name)
{
	return 0;
}

int
spdk_json_write_named_array_begin(struct spdk_json_write_ctx *w, const char *name)
{
	return 0;
}

int
spdk_json_write_array_end(struct spdk_json_write_ctx *w)
{