task: create FuseMount class from ceph_fuse

This is for use by other tasks that need filesystem
mounts under their own control.

Signed-off-by: John Spray <john.spray@redhat.com>
task: refactor kclient into KernelMount

Additionally make both kclient and ceph_fuse
tasks yield a collection of CephFSMount
objects so that subsequent tasks can
retrieve them.

Signed-off-by: John Spray <john.spray@redhat.com>
task/mds_journal_migration: only mount my client

Pass explicit client ID list to ceph_fuse context so
that it doesn't try to mount all clients in the config,
in case there are other clients.

Also allow configuration to specify which client
this task should use.

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

This task exercises the CephFS session recovery
behavior.

Signed-off-by: John Spray <john.spray@redhat.com>
task: fix admin_socket for non-int ids

This was working for OSDs and for my config
where MDS happened to have numeric ID, but
in general service IDs are strings, not ints.

Signed-off-by: John Spray <john.spray@redhat.com>
task/cephfs: use dedent for embedded python

Signed-off-by: John Spray <john.spray@redhat.com>
task/kclient: remove redudant double loop

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