mds: handle JSON MCommands

Signed-off-by: John Spray <john.spray@redhat.com>
mds: introduce MDS auth caps

Initially very simple, to distinguish normal filesystem
clients from those that can do destructive things
with "tell mds".

Signed-off-by: John Spray <john.spray@redhat.com>
osdc/Objecter: don't consume non-osd cmd replies

...so that Client can get command replies from MDSs.

Signed-off-by: John Spray <john.spray@redhat.com>
client: add mds_command operation

akin to Objecter::osd_command

Signed-off-by: John Spray <john.spray@redhat.com>
libcephfs: add ceph_mds_command

Wraps the equivalent fn in Client.

Signed-off-by: John Spray <john.spray@redhat.com>
pybind/rados: add conf/conf_defaults attributes

Store these from initialization so that given a Rados
object, we can read back config to initialize a
LibCephFS object.

Signed-off-by: John Spray <john.spray@redhat.com>
pybind/cephfs: implement mds_command

Signed-off-by: John Spray <john.spray@redhat.com>
pybind/cephfs: implement conf_parse_argv

So that when using `ceph` we can pass through
--debug-x args etc.

Signed-off-by: John Spray <john.spray@redhat.com>
pybind/ceph_argparse: implement 'tell mds'

Still need to properly implement _parse_mds_id

Signed-off-by: John Spray <john.spray@redhat.com>
test/pybind: tests for MDS spec parsing

Signed-off-by: John Spray <john.spray@redhat.com>