Class: Uricp::Strategy::SegmentedRemotePut
- Inherits:
-
Object
- Object
- Uricp::Strategy::SegmentedRemotePut
show all
- Includes:
- Common
- Defined in:
- lib/uricp/strategy/segmented_remote_put.rb
Constant Summary
Constants included
from Common
Common::DRY_SNAP, Common::PIPE_URI
Instance Attribute Summary
Attributes included from Common
#proposed_options
#options
Instance Method Summary
collapse
Methods included from Common
#all_local_files?, #always_write_sparse?, #compression_required?, #conversion_required?, #dry_run?, #encoding, #file_source?, #format_change?, #get_temp_filename, #in_rbd_cache, #in_rbd_cache?, #initialize, #lz4?, #lz4_source?, #not_in_rbd_cache?, #proposed_path, #qcow2?, #raw_target?, #rbd_base_name, #rbd_cache_image_exists?, #rbd_cache_image_spec, #rbd_cache_name, #rbd_cache_upload_available?, #rbd_clone_snapshot, #rbd_id, #rbd_image_spec, #rbd_sequence_complete?, #rbd_snapshot_name, #rbd_snapshot_spec?, #rbd_uri, #segmented?, #sequence_complete?, #supported_source?, #temp_uri, #unsupported_transfer
#authentication, #curl_command, #curl_download_to_pipe, #curl_manifest, #curl_upload_from, #from, #from=, #http_authentication?, #to, #to=
Instance Method Details
#appropriate? ⇒ Boolean
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/uricp/strategy/segmented_remote_put.rb', line 5
def appropriate?
unless segmented?
debug "#{self.class.name}: not appropriate"
return false
end
if compression_required? || conversion_required?
debug "#{self.class.name}: not ready to upload"
return false
end
case to.scheme
when 'http', 'https'
case from.scheme
when 'file', 'pipe'
return proposal if http_authentication?
end
end
unsupported_transfer
false
end
|
#command ⇒ Object
25
26
27
|
# File 'lib/uricp/strategy/segmented_remote_put.rb', line 25
def command
"segment_upload --segment-size '#{options['segment-size']}' #{source_details} #{to};"
end
|
#proposal ⇒ Object
29
30
31
32
33
34
|
# File 'lib/uricp/strategy/segmented_remote_put.rb', line 29
def proposal
@proposed_options = options.dup
@proposed_options['from_uri'] = to
@proposed_options['segment-size'] = nil
self
end
|
#source_details ⇒ Object
36
37
38
|
# File 'lib/uricp/strategy/segmented_remote_put.rb', line 36
def source_details
"--from #{from.path}" unless from.scheme == 'pipe'
end
|