Project

General

Profile

Feature #9031

List RADOS namespaces and list all objects in all namespaces

Added by Brian Andrus over 8 years ago. Updated over 8 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
-
Target version:
% Done:

0%

Source:
Support
Tags:
Backport:
Reviewed:
Affected Versions:
Pull request ID:

Description

We can currently create namespaces, but cannot easily view those that have been created. A method of listing namespaces with the rados utility is desired.


Related issues

Related to Ceph - Feature #5521: Enhance PGLS or new op to list all namespace/objects in a pool. Duplicate 07/08/2013
Related to Ceph - Bug #9438: librados API generated doc broken Resolved 09/11/2014
Blocks Ceph - Feature #9262: Additional namespace issues Resolved 08/27/2014
Blocks Ceph - Bug #9439: pg_op_must_wait() not checking FILTER variants Resolved 09/11/2014

Associated revisions

Revision a03f85a8 (diff)
Added by David Zafman over 8 years ago

osd, osdc, librados, tools, rgw: Implement pgls of all namespaces

Add release note
New librados interface
New pg_nls_response_t over the wire protocol
Ignore internal namespace (.ceph_internal)
Enhance ObjListCtx to keep independent IoCtxImpl so nspace won't change out from under listing code
Add ListObject with private implementation ListObjectImpl to return from iterator
Add EINVAL error for old librados interface when LIBRADOS_ALL_NSPACES set
Add throw to old librados c++ interface when all_nspaces set

Fixes: #9031

Signed-off-by: David Zafman <>

Revision 9f772c8c (diff)
Added by David Zafman over 8 years ago

rados command: Enhance ls output to show namespaces

Add rados --all option for ls to output all namespaces
Add rados --default option to cancel --all when in CEPH_ARGS environment

Fixes: #9031

Signed-off-by: David Zafman <>

Revision a5a9a5fa (diff)
Added by David Zafman over 8 years ago

test: New and updated testing for pgls of all namespaces

Add pg_nls_response_t encoding type ceph-dencoder
New test ceph_test_rados_api_nlist
Add check for throw of error and EINVAL in old test case
Change tests to use new librados list interfaces
Now flush_evict_all() can really evict all objects

Fixes: #9031

Signed-off-by: David Zafman <>

History

#1 Updated by David Zafman over 8 years ago

  • Subject changed from List RADOS namespaces to List RADOS namespaces and list all objects in all namespaces

A way to implement this is to enhance the pg_ls_repsonse_t to include the namespace (or change object_t to hobject_t). We'd have to provide a wildcard value (e.g. *, ALL) for the namespace to list all object in all namespaces.

A new librados list namespaces operation could run through the pg_ls_response_t for all objects and build a list of unique namespace names. Then a new rados command could be added to list namespaces for a given pool.

We could then easily add the long sought feature of a rados command that lists all objects in a pool in "namespace/objectname" format.

Finally, a printable wildcard value should be an illegal namespace name. Or a non-printable wildcard value would require an additional option to the rados command (e.g. --all, --all-namespaces).

#2 Updated by David Zafman over 8 years ago

  • Status changed from New to 12
  • Assignee set to David Zafman

#3 Updated by Samuel Just over 8 years ago

  • Target version set to 0.88

#4 Updated by David Zafman over 8 years ago

  • Status changed from 12 to Fix Under Review

#5 Updated by Samuel Just over 8 years ago

  • Status changed from Fix Under Review to 7

#6 Updated by Samuel Just over 8 years ago

  • Target version changed from 0.88 to 0.89

#7 Updated by Samuel Just over 8 years ago

  • Target version changed from 0.89 to 0.88

#8 Updated by Samuel Just over 8 years ago

  • Status changed from 7 to Resolved

Also available in: Atom PDF