cephfs: import CephFileSystem implementation

Import the implementation that currently exists in the core Ceph
repository. This will serve as a base implemetnation to build upon.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
cephfs: port CephFileSystem to new Java bindings

CephFileSystem now uses basic functionality of libcephfs Java bindings.
This allows file management (e.g. hadoop fs -ls,-rm,-put, etc...).  Some
functionality exercised by basic CLI file system routines are not yet
converted.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
cephfs: parse and set raw Ceph config options

Allows CephFileSystem to accept raw Ceph configuraiton options by
specifying them via the Hadoop configuration files. Options are set
using the ceph_conf_set interface.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
cephfs: clean-up initialize() interface

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
cephfs: clean-up open() and add fstat()

Replaces open_for_read() with the generic Ceph open() interface. Also
adds fstat() to test for directories in open(). Fixes up CephFaker to
use the new interface.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
cephfs: clean-up rmdir/unlink

Uses rmdir and unlink interfaces and clean-up of delete() that uses both
interfaces.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
cephfs: remove exists, isdir/file  specializations

The default implementation that builds upon getStatus will be as fast as
the specialization (single fstat call) once we expand fstat to grab more
Inode information.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
cephfs: remove reverse DNS feature

Will be replaced with native support for hostname-based locality
information.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
cephfs: clean-up getdir() and listStatus()

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
cephfs: remove root path checks

This should be returning -EBUSY from libcephfs.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
cephfs: ceph_replication should use Path type

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
cephfs: use lstat() for getFileStatus

Removes ceph_stat and uses the Ceph lstat interface.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
cephfs: use setattr and chmod

Replaces setTimes and setPermissions with setattr and chmod.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
cephfs: use general open() interface

Replaces specializations like open_for_append/overwrite.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
cephfs: fix ordering of open() flags

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
cephfs: use lseek in place of specializations

Replaces seek_from_start and getpos with lseek interface.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
cephfs: use new close() interface

Replaces old ceph_close(). This is mostly a rename, but close() doesn't
return an error value, so checks on the return value are removed.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
cephfs: rename kill_client to shutdown

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
cephfs: remove get_hosts interface

This will be changing when we add native support for retrieving extent
locality and topology information from Ceph.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>