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.



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

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

Instance Method Details

#check_command(*args) ⇒ true, false

Returns:

  • (true, false)


17
18
19
# File 'lib/serverkit/backends/base_backend.rb', line 17

def check_command(*args)
  run_command(*args).success?
end

#check_command_from_identifier(*args) ⇒ true, false

Returns:

  • (true, false)


22
23
24
# File 'lib/serverkit/backends/base_backend.rb', line 22

def check_command_from_identifier(*args)
  run_command_from_identifier(*args).success?
end

#get_command_from_identifier(*args) ⇒ String

Returns:

  • (String)


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

def get_command_from_identifier(*args)
  specinfra_backend.command.get(*args)
end

#hostString

Note:

Override me

Examples:

“localhost”

Returns:

  • (String)

Raises:

  • (NotImplementedError)


34
35
36
# File 'lib/serverkit/backends/base_backend.rb', line 34

def host
  raise NotImplementedError
end

#loggerServerkit::Logger

Returns:



39
40
41
42
43
# File 'lib/serverkit/backends/base_backend.rb', line 39

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

#run_command(*args) ⇒ Specinfra::CommandResult

Returns:

  • (Specinfra::CommandResult)


46
47
48
49
50
51
52
53
# File 'lib/serverkit/backends/base_backend.rb', line 46

def run_command(*args)
  logger.debug("Running #{args.first.inspect} on #{host}")
  specinfra_backend.run_command(*args).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

#run_command_from_identifier(*args) ⇒ Specinfra::CommandResult

Returns:

  • (Specinfra::CommandResult)


56
57
58
# File 'lib/serverkit/backends/base_backend.rb', line 56

def run_command_from_identifier(*args)
  run_command(get_command_from_identifier(*args))
end

#send_file(from, to) ⇒ Object



60
61
62
63
# File 'lib/serverkit/backends/base_backend.rb', line 60

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