class Nifty::TransferMethods::Opennebula::Scp
SCP transfer method Copies file from remote server to the destination and clens it after the event is processed
Attributes
host[R]
user[R]
Public Class Methods
backend()
click to toggle source
@see Nifty::TransferMethod#backend
# File lib/nifty/transfer_methods/opennebula/scp.rb, line 15 def backend Nifty::Backends::Opennebula end
description()
click to toggle source
@see Nifty::TransferMethod#description
# File lib/nifty/transfer_methods/opennebula/scp.rb, line 10 def description 'SCP transfer method - copies images from remote host' end
new(destination, options={})
click to toggle source
@see Nifty::TransferMethod#initialize
Calls superclass method
Nifty::TransferMethod::new
# File lib/nifty/transfer_methods/opennebula/scp.rb, line 26 def initialize(destination, options={}) fail Nifty::Errors::TransferMethods::NoRemoteHostError, 'Missing remote host option for SCP transfer method' unless options[:'remote-host'] @host = options[:'remote-host'] @user = options[:'remote-user'] || Etc.getlogin super(destination, options) end
transfer_method?()
click to toggle source
@see Nifty::TransferMethod#transfer_method?
# File lib/nifty/transfer_methods/opennebula/scp.rb, line 20 def transfer_method? true end
Public Instance Methods
clean_copy(file)
click to toggle source
@see Nifty::TransferMethod#clean_copy
# File lib/nifty/transfer_methods/opennebula/scp.rb, line 51 def clean_copy(file) # no remote cleaning end
transfer(file)
click to toggle source
@see Nifty::TransferMethod#transfer
# File lib/nifty/transfer_methods/opennebula/scp.rb, line 36 def transfer(file) destination_line = "#{user}@#{host}:#{destination}" logger.debug("Copying file #{file.inspect} to destination #{destination_line.inspect}") scp_command = Mixlib::ShellOut.new('scp', file, destination_line) scp_command.run_command if scp_command.error? raise Nifty::Errors::TransferMethods::ScpCommandExecutionError, "Command #{scp_command.command.inspect} terminated with an " \ "error: #{scp_command.stderr}" end destination_file file end
Private Instance Methods
destination_file(file)
click to toggle source
TODO duplicit method (cp transfer method) -> move to helper class
# File lib/nifty/transfer_methods/opennebula/scp.rb, line 58 def destination_file(file) File.join(destination, File.basename(file)) end