rds_backup_service 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -32,6 +32,8 @@ First install the dependencies:
32
32
 
33
33
  * Ruby 1.9, rake, and bundler
34
34
  * [Redis][] (for [Resque][] workers), or [DelayedJob][] (library only for now)
35
+ * mysqldump
36
+ * gzip
35
37
 
36
38
  The RDS Backup Service can be installed as a standalone application or as a
37
39
  Rack middleware library.
@@ -112,9 +114,9 @@ Place some code like this in your Controller or Model:
112
114
  job = RDSBackup::Job.new(params[:rds_id])
113
115
  job.write_to_s3
114
116
  Delayed::Job.enqueue RDSBackup::DelayedJob.new(job.rds_id, {
115
- 'backup_id' => job.backup_id,
116
- 'requested' => job.requested.to_s,
117
- 'email' => params[:email],
117
+ backup_id: job.backup_id,
118
+ requested: job.requested.to_s,
119
+ email: params[:email],
118
120
  })
119
121
 
120
122
 
@@ -12,15 +12,15 @@ module RDSBackup
12
12
 
13
13
  # Constructor.
14
14
  # @param [String] rds_instance_id the ID of the RDS instance to backup
15
- # @param [Hash] options optional additional parameters:
16
- # - backup_id - a unique ID for this job, if necessary
17
- # - requested - a Time when this job was requested
18
- # - email - an email address to be notified on completion
19
- # - logger - a Logger object, for printing this job's ongoing status
20
- def initialize(rds_instance_id, options = {})
21
- @rds_id, @options = rds_instance_id, options
22
- @backup_id = options['backup_id'] || "%016x" % (rand * 0xffffffffffffffff)
23
- @requested = options['requested'] ? Time.parse(options['requested']) : Time.now
15
+ # @param [Hash] optional_params optional additional parameters:
16
+ # - :email - an email address to be notified on completion
17
+ # - :backup_id - a unique ID for this job, if necessary
18
+ # - :requested - a Time when this job was requested
19
+ # - :logger - a Logger object, for printing this job's ongoing status
20
+ def initialize(rds_instance_id, optional_params = {})
21
+ @rds_id, @options = rds_instance_id, optional_params.symbolize_keys
22
+ @backup_id = options[:backup_id] || "%016x" % (rand * 0xffffffffffffffff)
23
+ @requested = options[:requested] ? Time.parse(options[:requested]) : Time.now
24
24
  @status = 200
25
25
  @message = "queued"
26
26
  @files = []
@@ -31,7 +31,7 @@ module RDSBackup
31
31
  @snapshot_id = "rds-backup-service-#{rds_id}-#{backup_id}"
32
32
  @new_rds_id = "rds-backup-service-#{backup_id}"
33
33
  @new_password = "#{backup_id}"
34
- @account_name = options['account_name']
34
+ @account_name = options[:account_name]
35
35
  end
36
36
 
37
37
  # returns a JSON-format String representation of this backup job
@@ -227,7 +227,7 @@ module RDSBackup
227
227
 
228
228
  # Writes a new status message to the log, and writes the job info to S3
229
229
  def update_status(message, new_status = nil)
230
- @log = @options['logger'] || RDSBackup.default_logger(STDOUT)
230
+ @log = @options[:logger] || RDSBackup.default_logger(STDOUT)
231
231
  @message = message
232
232
  @status = new_status if new_status
233
233
  @status == 200 ? (@log.info message) : (@log.error message)
@@ -236,8 +236,8 @@ module RDSBackup
236
236
 
237
237
  # Sends a status email
238
238
  def send_mail
239
- return unless @options['email']
240
- @log.info "Emailing #{@options['email']}..."
239
+ return unless @options[:email]
240
+ @log.info "Emailing #{@options[:email]}..."
241
241
  begin
242
242
  RDSBackup::Email.new(self).send!
243
243
  rescue Exception => e
@@ -13,9 +13,9 @@ module RDSBackup
13
13
  # Attempts to send email through local ESMTP port 25.
14
14
  # Raises an Exception on failure.
15
15
  def send!
16
- raise "job #{job.backup_id} has no email option" unless job.options['email']
16
+ raise "job #{job.backup_id} has no email option" unless job.options[:email]
17
17
  main_text = body_text # define local variables for closure over Mail.new
18
- recipients, header = job.options['email'],
18
+ recipients = job.options[:email]
19
19
  header = "Backup of RDS #{job.rds_id} (job ID #{job.backup_id})"
20
20
  mail = Mail.new do
21
21
  from 'rdsbackupservice@mdsol.com'
@@ -46,7 +46,7 @@ module RDSBackup
46
46
  logger.info "Queuing backup of RDS #{rds_id} in account #{job.account_name}"
47
47
  job.write_to_s3
48
48
  ::Resque.enqueue_to(:backups, Job, job.rds_id, job.options.
49
- merge({'backup_id' => job.backup_id, 'requested' => job.requested.to_s}))
49
+ merge({backup_id: job.backup_id, requested: job.requested.to_s}))
50
50
 
51
51
  [ 201, # return HTTP_CREATED, and
52
52
  { 'Location' => job.status_url }, # point to the S3 document
@@ -1,6 +1,6 @@
1
1
  module RDSBackup
2
2
  # The version of this Gem / Library.
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
 
5
5
  # This library's version of the REST API.
6
6
  API_VERSION = "1"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rds_backup_service
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -214,7 +214,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
214
214
  version: '0'
215
215
  segments:
216
216
  - 0
217
- hash: 1151512606421308315
217
+ hash: -2653342598528617899
218
218
  required_rubygems_version: !ruby/object:Gem::Requirement
219
219
  none: false
220
220
  requirements:
@@ -223,7 +223,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
223
223
  version: '0'
224
224
  segments:
225
225
  - 0
226
- hash: 1151512606421308315
226
+ hash: -2653342598528617899
227
227
  requirements: []
228
228
  rubyforge_project: rds_backup_service
229
229
  rubygems_version: 1.8.24