Sha256: 809efa8b3c52c8836a51169d99eda7052a32b250747594d36f84c196c31040d5

Contents?: true

Size: 1.02 KB

Versions: 1

Compression:

Stored size: 1.02 KB

Contents

require 'uri'

module Uricp::Strategy
  class RbdCacheClone
    include Uricp::Strategy::Common
    include Uricp::Strategy::CacheCommon
    include Methadone::SH

    def appropriate?
      unless from.scheme == 'rbd'
        debug "#{self.class.name}: not appropriate"
        return false
      end

      with_active_cache do
        options['cache_name'] = File.basename(options['to_uri'].path)
        cache_target = rbd_cache_image_spec(from)
        if rbd_cache_image_exists?(cache_target) || in_rbd_cache(cache_target)
          debug "#{self.class.name}: Unexpected existing cache entry for #{options['to_uri']}"
          unsupported_transfer
        end
        proposal(cache_target)
      end
    end

    def command
      ':;'
    end

    def proposal(cache_check)
      @proposed_options = options.dup
      @proposed_options['rbd_cache_target'] = rbd_uri(cache_check)
      @proposed_options.delete('cache')
      @proposed_options.delete('cache_name')
      @proposed_options.delete('dry-cache')
      self
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
uricp-0.0.23 lib/uricp/strategy/rbd_cache_clone.rb