Hey Marc, I'm glad to see interest here! On 11/26/18 7:32 AM, Koderer, Marc wrote:
Hi all, I remember we briefly discussed about it at the Ceph Day in Darmstadt and I wanted to follow up on this. Currently there is just a global help text for radosgw-admin. For an operator it’s quite hard to determine which options is needed to be set for a certain command. I opened a feature (and also work on PRs) to add helps text for each command individually [1]. My main question: is somebody working on the same already?
Orit mentored an outreachy project last year with similar goals: https://ceph.com/ceph-in-outreachy-2017-december-round/#radosgw-admin-improvements https://github.com/ceph/ceph/pull/20936 The work is unfinished, but some of it may be relevant to your work.
This would look like: > radosgw-admin help user show Usage radosgw-admin:user show Shows user details radosgw-admin user show --uid <UUID> mandatory arguments: --uid=<id> Looking at the rgw cli code I have the feeling the arg parsing needs to be reworked a lot. But to start stepwise I suggest to to the following: 1.) Implement help texts in the existing CLI code base (covered in [1]) 2.) Start with an API first strategy (so CLI is just a user of the radosgw-admin api) 2.a) Document rgw admin properly (e.g. using swagger) 2.b) Fix potential gaps between current CLI and API 3) Implement API radosgw-cli tool (maybe based on python or similar) Any feedback? Regards Marc Koderer SAP SE [1]: https://tracker.ceph.com/issues/37381
Does 2) imply that radosgw-admin will issue http requests to the /admin/ REST APIs of a running radosgw instead of processing them locally? radosgw-admin doesn't currently require a running gateway, and might be needed to repair a configuration (eg zone/zonegroup) that prevents radosgw from starting in the first place.
So I don't think that's the right approach, but I definitely agree that the admin apis need loving too, especially now that the dashboard project is using them.
Instead, we should share as much code as possible between the radosgw-admin commands and their associated rest apis - a 'grep -r AdminOp src/rgw' will show several examples of that, and that pattern could be useful when exposing more APIs for existing radosgw-admin functionality.
Regarding 3), there are some existing api bindings listed under http://docs.ceph.com/docs/master/radosgw/adminops/#binding-libraries that you might explore before starting a new one.