require 'thread'
require 'ceph-ruby'
require 'facets/multiton'
require 'ceph_storage/cluster_wrapper'
require 'ceph_storage/cluster_factory'
require 'ceph_storage/cluster'
require 'ceph_storage/pool_wrapper'
require 'ceph_storage/pool_factory'
require 'ceph_storage/pool'
require 'ceph_storage/pool_enumerator'
require 'ceph_storage/storage_object'
require 'ceph_storage/storage_object/rados_wrapper'
require 'ceph_storage/storage_object/rados_storage_object'
require 'ceph_storage/storage_object/rados_storage_object_enumerator'
require 'ceph_storage/storage_object/file_storage_object'
require 'ceph_storage/storage_object/url_storage_object'
require 'ceph_storage/storage_object/xattr'
require 'ceph_storage/storage_object/xattr_enumerator'

# An application for moving files into and out of Ceph
module CephStorage
  mattr_accessor :logger

  def self.log(message)
    return unless logger
    logger.info("CephStorage: #{message}")
  end
end