Class: AvstCloud::ScpTask

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

Instance Method Summary collapse

Methods included from Logging

included, #logger, #logger=

Constructor Details

#initialize(files) ⇒ ScpTask

Returns a new instance of ScpTask.



269
270
271
# File 'lib/avst-cloud/task.rb', line 269

def initialize(files)
    @files = files
end

Instance Method Details

#execute(server) ⇒ Object



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

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



297
298
299
300
# File 'lib/avst-cloud/task.rb', line 297

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