mirror of
https://github.com/ceph/ceph
synced 2025-03-30 23:40:09 +00:00
Merge pull request #1028 from ceph/wip-empty-rbd-ls
rbd: return 0 and an empty list when pool is entirely empty Reviewed-by: Sage Weil <sage@inktank.com>
This commit is contained in:
commit
b729ed64fc
@ -1,3 +1,12 @@
|
||||
v0.75
|
||||
~~~~~
|
||||
|
||||
- 'rbd ls' on a pool which never held rbd images now exits with code
|
||||
0. It outputs nothing in plain format, or an empty list in
|
||||
non-plain format. This is consistent with the behavior for a pool
|
||||
which used to hold images, but contains none. Scripts relying on
|
||||
this behavior should be updated.
|
||||
|
||||
v0.74
|
||||
~~~~~
|
||||
|
||||
|
11
src/rbd.cc
11
src/rbd.cc
@ -251,6 +251,8 @@ static int do_list(librbd::RBD &rbd, librados::IoCtx& io_ctx, bool lflag,
|
||||
{
|
||||
std::vector<string> names;
|
||||
int r = rbd.list(io_ctx, names);
|
||||
if (r == -ENOENT)
|
||||
r = 0;
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@ -2777,14 +2779,7 @@ if (!set_conf_param(v, p1, p2, p3)) { \
|
||||
case OPT_LIST:
|
||||
r = do_list(rbd, io_ctx, lflag, formatter.get());
|
||||
if (r < 0) {
|
||||
switch (r) {
|
||||
case -ENOENT:
|
||||
cerr << "rbd: pool " << poolname << " doesn't contain rbd images"
|
||||
<< std::endl;
|
||||
break;
|
||||
default:
|
||||
cerr << "rbd: list: " << cpp_strerror(-r) << std::endl;
|
||||
}
|
||||
cerr << "rbd: list: " << cpp_strerror(-r) << std::endl;
|
||||
return -r;
|
||||
}
|
||||
break;
|
||||
|
@ -1,3 +1,12 @@
|
||||
ls on empty pool never containing images
|
||||
========================================
|
||||
$ rados -p rbd rm rbd_directory || true
|
||||
$ rbd ls
|
||||
$ rbd ls --format json
|
||||
[] (no-eol)
|
||||
$ rbd ls --format xml
|
||||
<images></images> (no-eol)
|
||||
|
||||
create
|
||||
=======
|
||||
$ rbd create -s 1024 foo
|
||||
|
Loading…
Reference in New Issue
Block a user