module CephStorage
  module StorageObject
    # This code is here to wrap around CephRuby::rados_object
    # Methods. It assigns one of the pool_factory cartridges
    # to the RadosObject
    module RadosWrapper
      def wrap_me(*method_names)
        method_names.each do |m|
          define_method(m) do |*args|
            log("#{m} wrapping with rados_pool")
            pool_factory.rados_pool do |p|
              p.ensure_open
              self.pool = p
              super(*args)
            end
          end
        end
      end
    end
  end
end