Sha256: 58f55752cdfd82ff68d6554545ac3251415de0df89207ea5a1074e506ecc98e4

Contents?: true

Size: 966 Bytes

Versions: 2

Compression:

Stored size: 966 Bytes

Contents

module CephStorage
  module StorageObject
    # Ceph Storage Object
    class RadosStorageObject < ::CephRuby::RadosObject
      extend CephStorage::StorageObject::RadosWrapper
      include CephStorage::StorageObject
      attr_accessor :pool_factory

      def initialize(pool_factory, name)
        log("init #{name}")
        self.pool_factory = pool_factory
        super(nil, name)
      end

      wrap_me :write, :append, :read, :destroy,
              :resize, :overwrite, :stat

      def read_file
        log('read file')
        read_full
      end

      def write_file(contents)
        log("write file #{contents.length}")
        overwrite(contents)
      end

      def xattr(name, &block)
        Xattr.new(self, name, &block)
      end

      def xattr_enumerator(&block)
        XattrEnumerator.new(self, &block)
      end

      def path
        "ceph://#{pool_factory.cluster.cluster}/#{pool_factory.name}/#{name}"
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ceph_storage-0.1.1 lib/ceph_storage/storage_object/rados_storage_object.rb
ceph_storage-0.1.0 lib/ceph_storage/storage_object/rados_storage_object.rb