ll-innobackup 0.1.21 → 0.1.22

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.
Files changed (3) hide show
  1. checksums.yaml +5 -5
  2. data/lib/ll-innobackup.rb +13 -7
  3. metadata +20 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 1fb3c03e367f52aa8acb4b7965e53e2948334b1f
4
- data.tar.gz: 6d8cbd3f78015ec3ef7b3b3cd1551f07a0800d4c
2
+ SHA256:
3
+ metadata.gz: d2ca7b250814e3f83939af845ca2f7db199135f659862baaca1bba4cca6f942e
4
+ data.tar.gz: 3945ea705a4caec96da2ccfda6422e6064605707f0077618d927280329b408ab
5
5
  SHA512:
6
- metadata.gz: b4af407b0eb9aeda269924f50a2b69eb562924ede8394e596a6e5b18312a1732cc68dae77c24dc8b8a9f7cc6ec87b17f02fc7a83b922362c2aa49562dd1e5248
7
- data.tar.gz: 14506b97e5e7307bc1f955db29240c56a2f3ebfa5a2e67605e1240bde006790f5170f2fa7f443cf9dc766328443d427e0c01a10c0fbbe07b8acf38494f42b546
6
+ metadata.gz: bd758d78a0b5259bd88b6ca13733fa30fccf08e9690aba34f27a3761880d1803002b7ecacb80d7160991d046fedb448c5e23e32608b42d393aa9393d77530a6e
7
+ data.tar.gz: 1e336ff205f29223ddfec8bf52f0bff24411864a57c06db0e7a3a50debf4f9bdf693968fd92740c62af4beb7b115833c20b17d951b34ba2feab1d0873013f83d
@@ -1,5 +1,6 @@
1
1
  require 'json'
2
2
  require 'date'
3
+ require 'aws-sdk-s3'
3
4
 
4
5
  # Run Inmental or Full backups on MySQL
5
6
  module LL
@@ -62,7 +63,8 @@ class InnoBackup
62
63
  :date,
63
64
  :state_files,
64
65
  :lock_files,
65
- :options
66
+ :options,
67
+ :s3
66
68
 
67
69
  def initialize(options = {})
68
70
  @now = Time.now
@@ -71,6 +73,7 @@ class InnoBackup
71
73
  @lock_files = {}
72
74
  @state_files = {}
73
75
  @type = backup_type
76
+ @s3 = Aws::S3::Resource.new(region: 'eu-west-1')
74
77
  end
75
78
 
76
79
  def aws_log
@@ -217,10 +220,14 @@ class InnoBackup
217
220
  "--expected-size=#{expected_full_size}" if type == 'full'
218
221
  end
219
222
 
220
- def aws_command
221
- "#{aws_bin} s3 cp #{working_file} s3://#{aws_bucket}/#{aws_backup_file} "\
222
- "#{expected_size} #{expires} "\
223
- "2> #{aws_log} >> #{aws_log}"
223
+ def s3object_uploaded?(bucket_name, object_key, file_path)
224
+ object = @s3.bucket(bucket_name).object(object_key)
225
+ object.upload_file(file_path, {expires: expires_date, thread_count: @options['thread_count']}) do |r|
226
+ return true
227
+ end
228
+ rescue StandardError => e
229
+ STDERR.puts "Error uploading object: #{e.message}"
230
+ return false
224
231
  end
225
232
 
226
233
  def valid_commands?
@@ -234,8 +241,7 @@ class InnoBackup
234
241
  `#{innobackup_command}`
235
242
  @completed_inno = $CHILD_STATUS == 0
236
243
  raise InnoBackup::StateError, 'Unable to run innobackup correctly' unless @completed_inno
237
- `#{aws_command}`
238
- @completed_aws = $CHILD_STATUS == 0
244
+ @completed_aws = s3object_uploaded?(aws_bucket, aws_backup_file, working_file)
239
245
  raise InnoBackup::StateError, 'Unable to run aws upload correctly' unless @completed_aws
240
246
  return record if success? && completed?
241
247
  rescue InnoBackup::StateError => e
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ll-innobackup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.21
4
+ version: 0.1.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stuart Harland, LiveLink Technology Ltd
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-07 00:00:00.000000000 Z
11
+ date: 2021-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
26
  version: 4.2.6
27
+ - !ruby/object:Gem::Dependency
28
+ name: aws-sdk-s3
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1'
27
41
  description: A program to conduct innobackup
28
42
  email: essjayhch@gmail.com, infra@livelinktechnology.net
29
43
  executables:
@@ -37,7 +51,7 @@ homepage: http://rubygems.org/gems/ll-innobackup
37
51
  licenses:
38
52
  - MIT
39
53
  metadata: {}
40
- post_install_message:
54
+ post_install_message:
41
55
  rdoc_options: []
42
56
  require_paths:
43
57
  - lib
@@ -52,9 +66,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
52
66
  - !ruby/object:Gem::Version
53
67
  version: '0'
54
68
  requirements: []
55
- rubyforge_project:
56
- rubygems_version: 2.5.2.3
57
- signing_key:
69
+ rubygems_version: 3.1.4
70
+ signing_key:
58
71
  specification_version: 4
59
72
  summary: Livelink Innobackup Script
60
73
  test_files: []