ll-innobackup 0.1.21 → 0.1.22

Sign up to get free protection for your applications and to get access to all the features.
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: []