Added implemented but not listed commands to the help/usage text:
* -g shortcut for --gen-key
* -a shortcut for --add-key
* -u/--set-uid to set auid
* --gen-print-key
* --import-keyring
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Hidden commands have no help string. Make this consistent: the m_help
entry is always there, but may be empty.
Signed-off-by: Sage Weil <sage@inktank.com>
ceph-rest-api:
* create app from wrapper by calling generate_app()
* pass args to generate_app() (early parsed in wrapper)
* parse -i/--id here as well
* set addr:port on returned app object
* handle only EnvironmentError exceptions; let others spew traceback
* turn off debug when running singlethreaded server
ceph_rest_api.py:
* put glob.* on app.ceph_* instead; pass around app in init code
* drop conf parsing (let librados do its job)
Documentation updated to match.
Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
CID 1058392: Out-of-bounds access (OVERRUN_DYNAMIC) [select issue]
CID 1058391 (#1 of 1): Out-of-bounds access (OVERRUN)
32. alloc_strlen: Allocating insufficient memory for the terminating null of the string.
CID 1058390 (#1 of 1): Unchecked return value from library (CHECKED_RETURN)
13. check_return: Calling function "this->class_handler->open_all_classes()" without checking return value. It wraps a library function that may fail and return an error code. [show details]
14. unchecked_value: No check of the return value of "this->class_handler->open_all_classes()".
Signed-off-by: Sage Weil <sage@inktank.com>
Usually it can get it from the OSD, but it assumes the mon will also share
and doesn't behave when it does not.
Fixes: #5767
Signed-off-by: Sage Weil <sage@inktank.com>
It's a wad of special cases, but it implements "tell <pgid>" such that
it has the same effect as "pg <pgid>".
Signed-off-by: Dan Mick <dan.mick@inktank.com>
Contact an OSD that's up to get a list of the commands, and use
them to add to the URL map.
Special treatment throughout for these commands:
* hack the help signature dump
* keep a 'flavor' per command to allow special handler() processing
* strip off 'tell/<target>' when constructing command
* allow multiple dicts with the same url
(the parameters and get/put methods can change)
* because of above, method must be validated in handler()
* validate the given OSD
* calculate target for command (mon, osd, pg)
Unrelated: make method_dict into global METHOD_DICT
Signed-off-by: Dan Mick <dan.mick@inktank.com>
We might have a sequence like:
- start mon, load pgmap 100
- sync
- including a format upgrade at say v 150
- refresh
- see format_version==1, and try read pgmap:101 as new format
This simply clears our in-memory state if we see that the format has
changed. That will make update_from_paxos reload the latest and prevent
it from walking through the old and useless inc updates.
Note: this does not affect the auth monitor because we unconditionally
load the latest map in update_from_paxos on upgrade. Also, the upgrade
there wasn't a format change--just a translation of cap strings from the
old to new style.
Fixes: #5764
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
Call delete on md_log in the destructor.
CID 1054826 (#1 of 1): Resource leak in object (CTOR_DTOR_LEAK)
1. alloc_new: Allocating memory by calling "new RGWMetadataLog(_cct, _store)".
2. var_assign: Assigning: "this->md_log" = "new RGWMetadataLog(_cct, _store)".
3. ctor_dtor_leak: The constructor allocates field "md_log" of
"RGWMetadataManager" but the destructor and whatever functions it calls
do not free it.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Call complete_list_entries() at end of RGWOp_MDLog_List::execute()
to free the 'handle'.
CID 1054834 (#1-2 of 2): Resource leak (RESOURCE_LEAK)
leaked_storage: Variable "handle" going out of scope leaks the
storage it points to.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Fixes for:
CID 1054838 (#14 of 14): Resource leak (RESOURCE_LEAK)
leaked_storage: Variable "rop" going out of scope leaks the
storage it points to.
CID 1054836 (#5 of 5): Resource leak (RESOURCE_LEAK)
leaked_storage: Variable "rop" going out of scope leaks the
storage it points to.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
CID 1054840 (#3 of 3): Resource leak (RESOURCE_LEAK)
leaked_storage: Variable "rop" going out of scope leaks
the storage it points to.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Close some memory leaks caused by calling new() without
freeing the memory already assigned to 'rop'.
CID 1054848 (#1-6 of 6): Resource leak (RESOURCE_LEAK)
overwrite_var: Overwriting "rop" in "rop = new_rop()"
leaks the storage that "rop" points to.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
This avoid creating a wide window between when ceph-osd is started and
when a request arrives needing a class and it is loaded. In particular,
upgrading the packages in that window may cause linkage errors (if the
class API has changed, for example).
Fixes: #5752
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>