Class: Serverkit::Backends::BaseBackend

Inherits:
Object
  • Object
show all
Defined in:
lib/serverkit/backends/base_backend.rb

Direct Known Subclasses

LocalBackend, SshBackend

Instance Method Summary collapse

Constructor Details

#initialize(log_level: nil) ⇒ BaseBackend

Returns a new instance of BaseBackend.



13
14
15
# File 'lib/serverkit/backends/base_backend.rb', line 13

def initialize(log_level: nil)
  @log_level = log_level
end

Instance Method Details

#hostString

Note:

Override me

Examples:

“localhost”

Returns:

  • (String)

Raises:

  • (NotImplementedError)


20
21
22
# File 'lib/serverkit/backends/base_backend.rb', line 20

def host
  raise NotImplementedError
end

#loggerServerkit::Logger

Returns:



25
26
27
28
29
# File 'lib/serverkit/backends/base_backend.rb', line 25

def logger
  @logger ||= Serverkit::Logger.new($stdout).tap do |_logger|
    _logger.level = @log_level
  end
end

#run_command(command) ⇒ Specinfra::CommandResult

Parameters:

  • command (String)

    one-line shell script to be executed on remote machine

Returns:

  • (Specinfra::CommandResult)


33
34
35
36
37
38
39
40
# File 'lib/serverkit/backends/base_backend.rb', line 33

def run_command(command)
  logger.debug("Running #{command} on #{host}")
  specinfra_backend.run_command(command).tap do |result|
    logger.debug(result.stdout) unless result.stdout.empty?
    logger.debug(result.stderr) unless result.stderr.empty?
    logger.debug("Finished with #{result.exit_status} on #{host}")
  end
end

#send_file(from, to) ⇒ Object



42
43
44
45
# File 'lib/serverkit/backends/base_backend.rb', line 42

def send_file(from, to)
  logger.debug("Sending file #{from} to #{to}")
  specinfra_backend.send_file(from, to)
end