Class | Capistrano::Transfer |
In: |
lib/capistrano/transfer.rb
lib/capistrano/transfer.rb |
Parent: | Object |
callback | [R] | |
callback | [R] | |
direction | [R] | |
direction | [R] | |
from | [R] | |
from | [R] | |
logger | [R] | |
logger | [R] | |
options | [R] | |
options | [R] | |
sessions | [R] | |
sessions | [R] | |
to | [R] | |
to | [R] | |
transfers | [R] | |
transfers | [R] | |
transport | [R] | |
transport | [R] |
# File lib/capistrano/transfer.rb, line 26 26: def initialize(direction, from, to, sessions, options={}, &block) 27: @direction = direction 28: @from = from 29: @to = to 30: @sessions = sessions 31: @options = options 32: @callback = callback 33: 34: @transport = options.fetch(:via, :sftp) 35: @logger = options.delete(:logger) 36: 37: @session_map = {} 38: 39: prepare_transfers 40: end
# File lib/capistrano/transfer.rb, line 26 26: def initialize(direction, from, to, sessions, options={}, &block) 27: @direction = direction 28: @from = from 29: @to = to 30: @sessions = sessions 31: @options = options 32: @callback = callback 33: 34: @transport = options.fetch(:via, :sftp) 35: @logger = options.delete(:logger) 36: 37: @session_map = {} 38: 39: prepare_transfers 40: end
# File lib/capistrano/transfer.rb, line 10 10: def self.process(direction, from, to, sessions, options={}, &block) 11: new(direction, from, to, sessions, options, &block).process! 12: end
# File lib/capistrano/transfer.rb, line 10 10: def self.process(direction, from, to, sessions, options={}, &block) 11: new(direction, from, to, sessions, options, &block).process! 12: end
# File lib/capistrano/transfer.rb, line 70 70: def active? 71: transfers.any? { |transfer| transfer.active? } 72: end
# File lib/capistrano/transfer.rb, line 70 70: def active? 71: transfers.any? { |transfer| transfer.active? } 72: end
# File lib/capistrano/transfer.rb, line 42 42: def process! 43: loop do 44: begin 45: break unless process_iteration { active? } 46: rescue Exception => error 47: if error.respond_to?(:session) 48: handle_error(error) 49: else 50: raise 51: end 52: end 53: end 54: 55: failed = transfers.select { |txfr| txfr[:failed] } 56: if failed.any? 57: hosts = failed.map { |txfr| txfr[:server] } 58: errors = failed.map { |txfr| "#{txfr[:error]} (#{txfr[:error].message})" }.uniq.join(", ") 59: error = TransferError.new("#{operation} via #{transport} failed on #{hosts.join(',')}: #{errors}") 60: error.hosts = hosts 61: 62: logger.important(error.message) if logger 63: raise error 64: end 65: 66: logger.debug "#{transport} #{operation} complete" if logger 67: self 68: end
# File lib/capistrano/transfer.rb, line 42 42: def process! 43: loop do 44: begin 45: break unless process_iteration { active? } 46: rescue Exception => error 47: if error.respond_to?(:session) 48: handle_error(error) 49: else 50: raise 51: end 52: end 53: end 54: 55: failed = transfers.select { |txfr| txfr[:failed] } 56: if failed.any? 57: hosts = failed.map { |txfr| txfr[:server] } 58: errors = failed.map { |txfr| "#{txfr[:error]} (#{txfr[:error].message})" }.uniq.join(", ") 59: error = TransferError.new("#{operation} via #{transport} failed on #{hosts.join(',')}: #{errors}") 60: error.hosts = hosts 61: 62: logger.important(error.message) if logger 63: raise error 64: end 65: 66: logger.debug "#{transport} #{operation} complete" if logger 67: self 68: end
# File lib/capistrano/transfer.rb, line 78 78: def sanitized_from 79: if from.responds_to?(:read) 80: "#<#{from.class}>" 81: else 82: from 83: end 84: end
# File lib/capistrano/transfer.rb, line 78 78: def sanitized_from 79: if from.responds_to?(:read) 80: "#<#{from.class}>" 81: else 82: from 83: end 84: end
# File lib/capistrano/transfer.rb, line 86 86: def sanitized_to 87: if to.responds_to?(:read) 88: "#<#{to.class}>" 89: else 90: to 91: end 92: end