Previously, call() returned a bool. Return an int instead so we can
wire this up to tell command return values.
The admin socket 'ceph daemon ...' unix domain socket protocol does not
pass a return code, only data, so we cannot pass these errors that way.
We have two choices: make error codes silently succeed when accessed via
asok (so that we get an error string etc), or make them fail without any
specific error code or string.
Unfortunately, there are several cases where an exception was caught and
what() returned as a string, or where error strings are returned. These
would "blindly" fail if we took the latter approach.
So, for the asok interface, -ENOSYS means a "hard" error that gives the
user no data and makes the 'ceph daemon ...' command return an error code.
Other error codes are interpreted as a success. This is ONLY for the
asok interface; the tell interface has full fidelity with error codes and
error strings.
Note that this means that 'net new' tell-style commands that we move over
to this handler will also appear to succeed via the 'ceph daemon'
interface when they return error codes.