Class: AvstCloud::ScpTask

Inherits:
Task
  • Object
show all
Defined in:
lib/avst-cloud/task.rb

Instance Method Summary collapse

Methods included from Logging

included, logger, #logger, logger=, mask_message, show_passwords=

Constructor Details

#initialize(files) ⇒ ScpTask

Returns a new instance of ScpTask.



265
266
267
# File 'lib/avst-cloud/task.rb', line 265

def initialize(files)
    @files = files
end

Instance Method Details

#execute(server) ⇒ Object



269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
# File 'lib/avst-cloud/task.rb', line 269

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 #{Logging.mask_message(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



293
294
295
296
# File 'lib/avst-cloud/task.rb', line 293

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