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



263
264
265
# File 'lib/avst-cloud/task.rb', line 263

def initialize(files)
    @files = files
end

Instance Method Details

#execute(server) ⇒ Object



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

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



291
292
293
294
# File 'lib/avst-cloud/task.rb', line 291

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