class Spectre::FTP::SFTPConnection
Public Class Methods
new(host, username, opts, logger)
click to toggle source
# File lib/spectre/ftp.rb, line 65 def initialize host, username, opts, logger opts[:non_interactive] = true @__logger = logger @__session = nil @__host = host @__username = username @__opts = opts end
Public Instance Methods
can_connect?()
click to toggle source
# File lib/spectre/ftp.rb, line 87 def can_connect? begin connect! return true rescue return false end end
close()
click to toggle source
# File lib/spectre/ftp.rb, line 82 def close return unless @__session and not @__session.closed? # @__session.close! end
connect!()
click to toggle source
# File lib/spectre/ftp.rb, line 75 def connect! return unless @__session == nil or @__session.closed? @__logger.info "Connecting to '#{@__host}' with user '#{@__username}'" @__session = Net::SFTP.start(@__host, @__username, @__opts) @__session.connect! end
download(remotefile, to: File.basename(remotefile))
click to toggle source
# File lib/spectre/ftp.rb, line 96 def download remotefile, to: File.basename(remotefile) @__logger.info "Downloading '#{@__username}@#{@__host}:#{remotefile}' to '#{File.expand_path to}'" connect! @__session.download!(remotefile, to) end
exists(path)
click to toggle source
# File lib/spectre/ftp.rb, line 115 def exists path begin file_info = @__session.stat! path rescue Net::SFTP::StatusException => e return false if e.description == 'no such file' raise e end return true end
stat(path)
click to toggle source
# File lib/spectre/ftp.rb, line 108 def stat path connect! file_info = @__session.stat! path @__logger.info "Stat '#{path}'\n#{JSON.pretty_generate file_info.attributes}" file_info.attributes end
upload(localfile, to: File.basename(localfile))
click to toggle source
# File lib/spectre/ftp.rb, line 102 def upload localfile, to: File.basename(localfile) @__logger.info "Uploading '#{File.expand_path localfile}' to '#{@__username}@#{@__host}:#{to}'" connect! @__session.upload!(localfile, to) end