webtranslateit-safe 0.4.10 → 0.4.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1a8304cc611880266f79c56c9be3a4e5cea6275073c93889a4dfd599ad6cf851
4
- data.tar.gz: 46a96b97260f9458625e433681562dd0997e4b7d79e19082dd52add75a9712f5
3
+ metadata.gz: 9ecdf78b8c44bcbf64d9096a3dc20d434867719635c1104f14423aacd40172d6
4
+ data.tar.gz: ce5f71e6ddcbe3e335084ce700a2749ebf936b86b7a02786ee534ed2480b5edd
5
5
  SHA512:
6
- metadata.gz: 670a84fa71b7b52132670219d064e816bd68475c3a40bbc96fc9fcce9471ef073c8aea272800490c97517e1e8c01536f1db7c35badbe193169530fca32b01946
7
- data.tar.gz: 75b72ba9cb7ef01b6e327187479e379db60feb60a0eceac7e96d34f9637206f01fed991c6e8f84f5ee0bfe376eb72d3165337be62dc14c417cde8fb8c92c4580
6
+ metadata.gz: d27bffcae503f8a8725a42dec46c8b09ce313f1bd45aa0a6df25aa8e18e33816fb39b83d2215b489b3c517850e874b6393c073a0029e43d2310abf15b3e88d1c
7
+ data.tar.gz: 950b3366db7917bc402cc3d0986f03c012b706fe604cfd275d5e42e3241cf449b5309a83352aa6a2903f2ffca48ef5f9e4b6154fc166e49c659f6ec65a2ac87c
data/CHANGELOG CHANGED
@@ -1,3 +1,8 @@
1
+ ## 0.4.11 - 2023-07-27
2
+
3
+ * Remove Rackspace Cloudfiles feature.
4
+ * Code refactoring.
5
+
1
6
  ## 0.4.10 - 2023-07-06
2
7
 
3
8
  * Fix retry strategy when using SCP.
data/README.markdown CHANGED
@@ -1,6 +1,6 @@
1
1
  # webtranslateit-safe
2
2
 
3
- Simple database and filesystem backups with S3 and Rackspace Cloud Files support (with optional encryption).
3
+ Simple database and filesystem backups with Amazon S3 support (with optional encryption).
4
4
 
5
5
  This is a fork of now abandonned [astrails-safe](https://github.com/astrails/safe) that we’ve been using since 2010. It is now unmaintained and not compatible with ruby 3.2, so we forked it.
6
6
 
@@ -121,14 +121,6 @@ safe do
121
121
  path "servers/alpha/:kind/:id"
122
122
  end
123
123
 
124
- cloudfiles do
125
- user "..........."
126
- api_key "................................."
127
- container "safe_backup"
128
- path ":kind/" # this is default
129
- service_net false
130
- end
131
-
132
124
  sftp do
133
125
  host "sftp.astrails.com"
134
126
  user "astrails"
@@ -150,7 +142,6 @@ safe do
150
142
  keep do
151
143
  local 20
152
144
  s3 100
153
- cloudfiles 100
154
145
  sftp 100
155
146
  end
156
147
 
@@ -72,12 +72,10 @@ module WebTranslateIt
72
72
 
73
73
  end
74
74
 
75
- simple_value :verbose, :dry_run, :local_only, :path, :command,
76
- :options, :user, :host, :port, :password, :key, :secret, :bucket,
77
- :api_key, :container, :socket, :service_net, :repo_path, :use_scp
75
+ simple_value :verbose, :dry_run, :local_only, :path, :command, :options, :user, :host, :port,
76
+ :password, :key, :secret, :bucket, :socket, :service_net, :repo_path, :use_scp
78
77
  multi_value :skip_tables, :exclude, :files
79
- mixed_value :s3, :local, :cloudfiles, :sftp, :mysqldump, :tar, :gpg, :keep, :pgdump, :tar,
80
- :mongodump
78
+ mixed_value :s3, :local, :sftp, :mysqldump, :tar, :gpg, :keep, :pgdump, :tar, :mongodump
81
79
  collection :database, :archive, :repo
82
80
 
83
81
  private
@@ -31,8 +31,8 @@ module WebTranslateIt
31
31
 
32
32
  # recursive find
33
33
  # starts at the node and continues to the parent
34
- def find(*path)
35
- get(*path) || @parent&.find(*path)
34
+ def find(*)
35
+ get(*) || @parent&.find(*)
36
36
  end
37
37
  alias [] find
38
38
 
@@ -1,5 +1,4 @@
1
1
  require 'aws/s3'
2
- require 'cloudfiles'
3
2
  require 'net/sftp'
4
3
  require 'net/scp'
5
4
  require 'tmpdir'
@@ -31,7 +30,6 @@ require 'web_translate_it/safe/pigz'
31
30
  require 'web_translate_it/safe/sink'
32
31
  require 'web_translate_it/safe/local'
33
32
  require 'web_translate_it/safe/s3'
34
- require 'web_translate_it/safe/cloudfiles'
35
33
  require 'web_translate_it/safe/sftp'
36
34
 
37
35
  # Keeps mkmf from littering STDOUT
@@ -57,7 +55,7 @@ module WebTranslateIt
57
55
  next unless collection = config[*path]
58
56
 
59
57
  collection.each do |name, c|
60
- klass.new(name, c).backup.run(c, :gpg, :pigz, :gzip, :local, :s3, :cloudfiles, :sftp)
58
+ klass.new(name, c).backup.run(c, :gpg, :pigz, :gzip, :local, :s3, :sftp)
61
59
  end
62
60
  end
63
61
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webtranslateit-safe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.10
4
+ version: 0.4.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edouard Briere
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-07-06 00:00:00.000000000 Z
12
+ date: 2023-07-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aws-s3
@@ -25,20 +25,6 @@ dependencies:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
27
  version: '0'
28
- - !ruby/object:Gem::Dependency
29
- name: cloudfiles
30
- requirement: !ruby/object:Gem::Requirement
31
- requirements:
32
- - - ">="
33
- - !ruby/object:Gem::Version
34
- version: '0'
35
- type: :runtime
36
- prerelease: false
37
- version_requirements: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - ">="
40
- - !ruby/object:Gem::Version
41
- version: '0'
42
28
  - !ruby/object:Gem::Dependency
43
29
  name: net-scp
44
30
  requirement: !ruby/object:Gem::Requirement
@@ -70,7 +56,7 @@ dependencies:
70
56
  description: |
71
57
  WebTranslateIt-Safe is a simple tool to backup databases (MySQL and PostgreSQL) and files.
72
58
  Backups can be stored locally or remotely and can be encrypted.
73
- Remote storage is supported on Amazon S3, Rackspace Cloud Files, or just plain SFTP/SCP.
59
+ Remote storage is supported on Amazon S3 or just plain SFTP/SCP.
74
60
  email:
75
61
  - support@webtranslateit.com
76
62
  executables:
@@ -84,7 +70,6 @@ files:
84
70
  - lib/web_translate_it/safe.rb
85
71
  - lib/web_translate_it/safe/archive.rb
86
72
  - lib/web_translate_it/safe/backup.rb
87
- - lib/web_translate_it/safe/cloudfiles.rb
88
73
  - lib/web_translate_it/safe/config/builder.rb
89
74
  - lib/web_translate_it/safe/config/node.rb
90
75
  - lib/web_translate_it/safe/gpg.rb
@@ -1,83 +0,0 @@
1
- module WebTranslateIt
2
-
3
- module Safe
4
-
5
- class Cloudfiles < Sink
6
-
7
- MAX_CLOUDFILES_FILE_SIZE = 5_368_709_120
8
-
9
- def active?
10
- container && user && api_key
11
- end
12
-
13
- protected
14
-
15
- def path
16
- @path ||= expand(config[:cloudfiles, :path] || config[:local, :path] || ':kind/:id')
17
- end
18
-
19
- # UGLY: we need this function for the reason that
20
- # we can't double mock on ruby 1.9.2, duh!
21
- # so we created this func to mock it all together
22
- def get_file_size(path)
23
- File.stat(path).size
24
- end
25
-
26
- def save # rubocop:todo Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/MethodLength, Metrics/PerceivedComplexity
27
- raise 'pipe-streaming not supported for S3.' unless @backup.path
28
-
29
- # needed in cleanup even on dry run
30
- cf = CloudFiles::Connection.new(user, api_key, true, service_net) unless local_only?
31
- puts "Uploading #{container}:#{full_path} from #{@backup.path}" if verbose? || dry_run?
32
- return if dry_run? || local_only?
33
-
34
- if get_file_size(@backup.path) > MAX_CLOUDFILES_FILE_SIZE
35
- warn "ERROR: File size exceeds maximum allowed for upload to Cloud Files (#{MAX_CLOUDFILES_FILE_SIZE}): #{@backup.path}"
36
- return
37
- end
38
- benchmark = Benchmark.realtime do
39
- cf_container = cf.create_container(container)
40
- o = cf_container.create_object(full_path, true)
41
- o.write(File.open(@backup.path))
42
- end
43
- puts '...done' if verbose?
44
- puts("Upload took #{format('%.2f', benchmark)} second(s).") if verbose?
45
- end
46
-
47
- def cleanup # rubocop:todo Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
48
- return if local_only?
49
-
50
- return unless keep = config[:keep, :cloudfiles]
51
-
52
- puts "listing files: #{container}:#{base}*" if verbose?
53
- cf = CloudFiles::Connection.new(user, api_key, true, service_net) unless local_only?
54
- cf_container = cf.container(container)
55
- files = cf_container.objects(prefix: base).sort
56
-
57
- cleanup_with_limit(files, keep) do |f|
58
- puts "removing Cloud File #{container}:#{f}" if dry_run? || verbose?
59
- cf_container.delete_object(f) unless dry_run? || local_only?
60
- end
61
- end
62
-
63
- def container
64
- config[:cloudfiles, :container]
65
- end
66
-
67
- def user
68
- config[:cloudfiles, :user]
69
- end
70
-
71
- def api_key
72
- config[:cloudfiles, :api_key]
73
- end
74
-
75
- def service_net
76
- config[:cloudfiles, :service_net] || false
77
- end
78
-
79
- end
80
-
81
- end
82
-
83
- end