Spdk/test
Shuhei Matsumoto a3004632e2 bdev/raid: Change construct_raid_bdev RPC to be consistent to other bdev modules
Change the behavior of construct_raid_bdev RPC to be consistent with
other bdev modules.

Create a config of raid bdev first. Then create a raid bdev based
on the config.

If both succeed, the config and the raid bdev are not removed even if
any failure occur later in construct_raid_bdev RPC. Otherwise, both
are removed and return failure.

During iteration of adding base bdevs in construct_raid_bdev RPC,
- skip any nonexistent bdev and move to the next base bdev.
- if adding any base bdev fails, move to the next bdev.
- if adding base bdevs don't fail but any base bdev doesn't exist,
  the raid bdev is in the configuring state and return success.
- if adding base bdev fails, the raid bdev is in the configuring state
  and return failure.
- if all adding base bdevs succeed, configure the raid bdev. If configuring
  the raid bdev fails, move the raid bdev to the offline state and return
  failure. If configuring the raid bdev succeed, return success.

check_and_remove_raid_bdev() becomes unused in raid_bdev_rpc.c but
is still necessary in UT. Hence move this function to UT.

In UT, finding a raid bdev config by name becomes necessary. Hence
factor out the iteration to a function and use the function in UT.

Change-Id: Ifa36967bdc987d97030e3a4e36684cb37b329d4e
Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-on: https://review.gerrithub.io/423622
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Kunal Sablok <kunal.sablok@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2018-09-11 19:00:05 +00:00
..
app jsoncat, histogram_perf: add missing dependencies 2018-08-16 14:27:18 +00:00
bdev test: re-enable bdevperf write_zeroes test 2018-09-06 20:42:47 +00:00
blobfs test/ioat: remove unnecessary config entires 2018-08-30 14:45:48 +00:00
blobstore autotest_common.sh: move to test/common 2018-02-27 20:37:27 -05:00
common autobuild: add shared object build to tests 2018-09-10 17:50:06 +00:00
cpp_headers build: add @: to remaining 'all' targets 2018-02-14 17:38:25 -05:00
env test/vtophys: reduce amount of memory requested 2018-07-26 05:28:52 +00:00
event test/event_perf: use less memory 2018-07-26 05:28:52 +00:00
ioat ioat: remove ioat kperf kernel driver test harness 2018-04-30 17:11:53 +00:00
iscsi_tgt test/ioat: remove unnecessary config entires 2018-08-30 14:45:48 +00:00
json_config app: drop -w parameter (wait for rpc init) 2018-08-13 17:30:10 +00:00
lvol test: refactor the run_test function to add detailed information 2018-08-15 17:24:01 +00:00
nvme test: fix typos in the test directory 2018-08-27 19:39:31 +00:00
nvmf autotest: testing of nested lvol should be retained 2018-09-05 21:59:04 +00:00
pmem test/json: Add pmem bdev test 2018-07-05 19:09:56 +00:00
spdkcli test/spdkcli: Fix: Add missing delete_*_bdev methods 2018-07-27 16:48:02 +00:00
unit bdev/raid: Change construct_raid_bdev RPC to be consistent to other bdev modules 2018-09-11 19:00:05 +00:00
vhost test/ioat: remove unnecessary config entires 2018-08-30 14:45:48 +00:00
Makefile test: move lib/json up to test app directory 2018-03-29 00:31:24 -04:00
spdk_cunit.h test: remove leftover spdk_cunit declaration 2018-07-06 22:47:56 +00:00