10 Commits

Author SHA1 Message Date
Paul Luse
e9a50eb8cc blobcli: update some print messages to provide more info
Change-Id: Iaeeff8216784e8f09dc172d6d258c057dc1db37d
Signed-off-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-on: https://review.gerrithub.io/382903
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
2017-10-19 19:01:46 -04:00
Paul Luse
d4e565b41b blobcli: fix bugs where freed memory is not NULL
There are a few places where we check for a NULL * to make
decisions and in both shell and script modes, any command
sequence loads and unloads the bs (self contained) so when
multiple actions are taken and some value that was freed
isn't NULL we can end up with segfaults.

Change-Id: I595797266b4a25dd8bc83fdaf68cb50c11bc958b
Signed-off-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-on: https://review.gerrithub.io/382902
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2017-10-19 19:01:46 -04:00
Paul Luse
cbe9216ee4 blobcli: fix incorrect error message
If a config file is specified an error message would incorrectly
print.

Change-Id: I532762f6e6ed26bd213255b0e67663035fc1620e
Signed-off-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-on: https://review.gerrithub.io/382876
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
2017-10-19 19:01:46 -04:00
Paul Luse
e5044f7930 blobcli: add script mode and readme
The readme explains how this mode works and includes a sample
test script that was used to test this mode.

Change-Id: I501b08004cc68157fe767ce8db61bf05f2eee391
Signed-off-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-on: https://review.gerrithub.io/380891
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2017-10-19 19:01:46 -04:00
Paul Luse
866f15b3ac blobcli: refactoring and cleanup
Some refactoring around functions that need to load the
blobstore as a first step was done as general cleanup. Function names
were also updated for consistency, some comments cleaned up
and #defines added for clarity.

Change-Id: I71550b6664a8ec78aca1b304891de3f6154b616d
Signed-off-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-on: https://review.gerrithub.io/380834
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
2017-10-18 12:46:06 -04:00
Paul Luse
c5e63c71ff blobcli: add interactive shell mode
All of the same commands and options are available but by
starting with the -S option the user enters an interactive
shell mode to interact with blobstore significantly
improving response time by only having to init DPDK and NVMe
subsystems one time.

Change-Id: Ib927ba0848166dba1090484cecbbcf011122b714
Signed-off-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-on: https://review.gerrithub.io/380833
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
2017-10-18 12:46:06 -04:00
Maciej Szwed
eb8b1e20a9 blobstore: add bstype to blobstore super block
Introducing bstype as a way to identify and verify
 blobstore type.

Signed-off-by: Maciej Szwed <maciej.szwed@intel.com>
Change-Id: I50267b5408625be10fe0c146ae329016d5509b4a
Reviewed-on: https://review.gerrithub.io/380476
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
2017-10-17 13:36:03 -04:00
Daniel Verkamp
b0c91df8e7 blobcli: fix formatting with astyle 3.0
Change-Id: Ib6052a9239cac14fdefc74eada39067f2b042672
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
Reviewed-on: https://review.gerrithub.io/380680
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
2017-09-28 14:09:55 -04:00
Daniel Verkamp
e9cf3ecf14 blobcli: add hot remove callbacks
Commit 99ba2b25e6 ("lvol: hotremove support") added new parameters to
spdk_bdev_create_bs_dev(), but it was merged after the blob cli, which
didn't get updated to add the new parameters.

Just pass NULL as the hot remove callback for now (no hotplug support in
blobcli).

Change-Id: I1dea802062afb9fbd4f35f3c891357873570d58c
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
Reviewed-on: https://review.gerrithub.io/380679
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
2017-09-28 13:13:33 -04:00
Paul Luse
8fbbfccdd5 app: blob cli
The CLI is intended to serve as both example code and a tool for
developers learning/kicking the tires of blobstore. Initial
functionality includes:

- initialize a blobstore
- list available bdevs or blobs
- create a new blob of a specific size
- set the superblob ID
- show detailed info for a blob
- show detailed info for the blobstore
- set/delete an xattr pair for a blob
- fill a blob with a value
- import a local file to a blob
- dump a blob to a local file

The CLI requires an NVMe backend and uses both the SPDK app
framework and the bdev layer.

Change-Id: I0a3cccef1ce0d51ce84dde2211cb07551c6e8b3a
Signed-off-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-on: https://review.gerrithub.io/373383
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
2017-09-28 12:27:56 -04:00