Method: Moonshot::Plugins::Backup#backup

Defined in:
lib/plugins/backup.rb

#backup(resources) ⇒ Object

Main worker method, creates a tarball of the given files, and uploads to an S3 bucket.

Parameters:

  • resources (Resources)

    injected Moonshot resources

Raises:

  • (ArgumentError)


47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/plugins/backup.rb', line 47

def backup(resources)
  raise ArgumentError if resources.nil?

  @app_name = resources.controller.config.app_name
  @stack_name = resources.stack.name
  @target_name = render(@target_name)
  @target_bucket = define_bucket
  @parameters = resources.stack.parameters

  return if @target_bucket.nil?

  resources.ilog.start("#{log_message} in progress.") do |s|
    tar_out = tar(@files)
    zip_out = zip(tar_out)
    upload(zip_out)

    s.success("#{log_message} succeeded.")
  rescue StandardError => e
    s.failure("#{log_message} failed: #{e}")
  ensure
    tar_out&.close
    zip_out&.close
  end
end