Class: AvstCloud::ScpTask
Instance Method Summary
collapse
Methods included from Logging
included, #logger, #logger=
Constructor Details
#initialize(files) ⇒ ScpTask
Returns a new instance of ScpTask.
251
252
253
|
# File 'lib/avst-cloud/task.rb', line 251
def initialize(files)
@files = files
end
|
Instance Method Details
#execute(server) ⇒ Object
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
|
# File 'lib/avst-cloud/task.rb', line 255
def execute(server)
unless server.ip_address
logger.error 'Can not find host'.red
raise 'Can not find ip address, access_user or access_password'
end
unless server.access_user
logger.error 'Access user not found. Please provide username for this server.'.red
raise 'Access user not found. Please provide username for this server.'
end
unless server.access_password
logger.error 'Password not found. Please provide password or pem key for this server.'.red
raise 'Password not found. Please provide root_password in config. for this server.'
end
logger.debug "Using #{server.access_user}@#{server.ip_address} with #{server.access_password}"
Net::SCP.start( server.ip_address, server.access_user, :password => server.access_password, :keys => [server.access_password] ) do |scp|
@files.each do |local_file, remote_path|
upload_file(scp, local_file, remote_path)
end
end
end
|
#upload_file(scp, local_path, remote_path) ⇒ Object
279
280
281
282
|
# File 'lib/avst-cloud/task.rb', line 279
def upload_file(scp, local_path, remote_path)
logger.debug("Uploading file on server: #{local_path} to #{remote_path}")
scp.upload!( local_path, remote_path)
end
|