Class: Uricp::Strategy::PipedCacheConvert

Inherits:
Object
  • Object
show all
Includes:
CacheCommon, Common
Defined in:
lib/uricp/strategy/piped_cache_convert.rb

Constant Summary

Constants included from Common

Common::PIPE_URI

Instance Attribute Summary

Attributes included from Common

#proposed_options

Attributes included from CurlPrimitives

#options

Instance Method Summary collapse

Methods included from CacheCommon

#cache_exists?, #cache_file, #cache_name, #cache_root, #in_cache?, #temp_cache_file, #temp_cache_uri, #validate_cache!

Methods included from Common

#all_local_files?, #always_write_sparse?, #compression_required?, #conversion_required?, #encoding, #file_source?, #format_change?, #get_temp_filename, #initialize, #lz4?, #lz4_source?, #proposed_path, #qcow2?, #raw_target?, #segmented?, #sequence_complete?, #supported_source?, #temp_uri, #unsupported_transfer

Methods included from CurlPrimitives

#authentication, #curl_command, #curl_download_to_pipe, #curl_manifest, #curl_upload_from, #from, #from=, #http_authentication?, #to, #to=

Instance Method Details

#appropriate?Boolean

Returns:

  • (Boolean)


10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/uricp/strategy/piped_cache_convert.rb', line 10

def appropriate?
  if conversion_required? && supported_source? 
	case from.scheme
	when 'pipe'
	  validate_cache! if cache_root
	  return proposal
	end
	debug "#{self.class.name}: not appropriate"
  else
	debug "#{self.class.name}: no non-stream conversion detected" 
  end
  false
end

#commandObject



24
25
26
# File 'lib/uricp/strategy/piped_cache_convert.rb', line 24

def command
  "cp --sparse=always /dev/stdin #{proposed_path};"
end

#proposalObject



28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/uricp/strategy/piped_cache_convert.rb', line 28

def proposal
  @proposed_options = options.dup
  if cache_root
	@proposed_options['from_uri'] = temp_cache_uri
	@proposed_options['sweep'] = [temp_cache_file, cache_file]
	@proposed_options.delete('cache')
	@proposed_options.delete('cache_name')
  else
    @proposed_options['from_uri'] = temp_uri
	@proposed_options['clean'] ||= []
	@proposed_options['clean'] << proposed_path
  end
  self
end