backup 3.0.2 → 3.0.3.build.0

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 (121) hide show
  1. data/bin/backup +12 -190
  2. metadata +7 -191
  3. data/.gitignore +0 -2
  4. data/.infinity_test +0 -7
  5. data/.rspec +0 -3
  6. data/Gemfile +0 -17
  7. data/Gemfile.lock +0 -88
  8. data/LICENSE.md +0 -24
  9. data/README.md +0 -236
  10. data/backup.gemspec +0 -41
  11. data/lib/backup.rb +0 -148
  12. data/lib/backup/archive.rb +0 -54
  13. data/lib/backup/cli.rb +0 -50
  14. data/lib/backup/compressor/base.rb +0 -17
  15. data/lib/backup/compressor/gzip.rb +0 -61
  16. data/lib/backup/configuration/base.rb +0 -15
  17. data/lib/backup/configuration/compressor/base.rb +0 -10
  18. data/lib/backup/configuration/compressor/gzip.rb +0 -23
  19. data/lib/backup/configuration/database/base.rb +0 -18
  20. data/lib/backup/configuration/database/mongodb.rb +0 -37
  21. data/lib/backup/configuration/database/mysql.rb +0 -37
  22. data/lib/backup/configuration/database/postgresql.rb +0 -37
  23. data/lib/backup/configuration/database/redis.rb +0 -35
  24. data/lib/backup/configuration/encryptor/base.rb +0 -10
  25. data/lib/backup/configuration/encryptor/gpg.rb +0 -17
  26. data/lib/backup/configuration/encryptor/open_ssl.rb +0 -26
  27. data/lib/backup/configuration/helpers.rb +0 -54
  28. data/lib/backup/configuration/notifier/base.rb +0 -39
  29. data/lib/backup/configuration/notifier/mail.rb +0 -52
  30. data/lib/backup/configuration/storage/base.rb +0 -18
  31. data/lib/backup/configuration/storage/cloudfiles.rb +0 -21
  32. data/lib/backup/configuration/storage/dropbox.rb +0 -25
  33. data/lib/backup/configuration/storage/ftp.rb +0 -25
  34. data/lib/backup/configuration/storage/rsync.rb +0 -25
  35. data/lib/backup/configuration/storage/s3.rb +0 -25
  36. data/lib/backup/configuration/storage/scp.rb +0 -25
  37. data/lib/backup/configuration/storage/sftp.rb +0 -25
  38. data/lib/backup/database/base.rb +0 -33
  39. data/lib/backup/database/mongodb.rb +0 -137
  40. data/lib/backup/database/mysql.rb +0 -104
  41. data/lib/backup/database/postgresql.rb +0 -111
  42. data/lib/backup/database/redis.rb +0 -105
  43. data/lib/backup/encryptor/base.rb +0 -17
  44. data/lib/backup/encryptor/gpg.rb +0 -78
  45. data/lib/backup/encryptor/open_ssl.rb +0 -67
  46. data/lib/backup/finder.rb +0 -39
  47. data/lib/backup/logger.rb +0 -80
  48. data/lib/backup/model.rb +0 -249
  49. data/lib/backup/notifier/base.rb +0 -29
  50. data/lib/backup/notifier/binder.rb +0 -32
  51. data/lib/backup/notifier/mail.rb +0 -141
  52. data/lib/backup/notifier/templates/notify_failure.erb +0 -31
  53. data/lib/backup/notifier/templates/notify_success.erb +0 -16
  54. data/lib/backup/storage/base.rb +0 -67
  55. data/lib/backup/storage/cloudfiles.rb +0 -95
  56. data/lib/backup/storage/dropbox.rb +0 -82
  57. data/lib/backup/storage/ftp.rb +0 -114
  58. data/lib/backup/storage/object.rb +0 -45
  59. data/lib/backup/storage/rsync.rb +0 -100
  60. data/lib/backup/storage/s3.rb +0 -108
  61. data/lib/backup/storage/scp.rb +0 -105
  62. data/lib/backup/storage/sftp.rb +0 -106
  63. data/lib/backup/version.rb +0 -72
  64. data/lib/templates/archive +0 -4
  65. data/lib/templates/compressor/gzip +0 -4
  66. data/lib/templates/database/mongodb +0 -10
  67. data/lib/templates/database/mysql +0 -11
  68. data/lib/templates/database/postgresql +0 -11
  69. data/lib/templates/database/redis +0 -10
  70. data/lib/templates/encryptor/gpg +0 -9
  71. data/lib/templates/encryptor/openssl +0 -5
  72. data/lib/templates/notifier/mail +0 -14
  73. data/lib/templates/readme +0 -15
  74. data/lib/templates/storage/cloudfiles +0 -7
  75. data/lib/templates/storage/dropbox +0 -8
  76. data/lib/templates/storage/ftp +0 -8
  77. data/lib/templates/storage/rsync +0 -7
  78. data/lib/templates/storage/s3 +0 -8
  79. data/lib/templates/storage/scp +0 -8
  80. data/lib/templates/storage/sftp +0 -8
  81. data/spec/archive_spec.rb +0 -53
  82. data/spec/backup_spec.rb +0 -11
  83. data/spec/compressor/gzip_spec.rb +0 -59
  84. data/spec/configuration/base_spec.rb +0 -35
  85. data/spec/configuration/compressor/gzip_spec.rb +0 -28
  86. data/spec/configuration/database/base_spec.rb +0 -16
  87. data/spec/configuration/database/mongodb_spec.rb +0 -30
  88. data/spec/configuration/database/mysql_spec.rb +0 -32
  89. data/spec/configuration/database/postgresql_spec.rb +0 -32
  90. data/spec/configuration/database/redis_spec.rb +0 -30
  91. data/spec/configuration/encryptor/gpg_spec.rb +0 -25
  92. data/spec/configuration/encryptor/open_ssl_spec.rb +0 -31
  93. data/spec/configuration/notifier/mail_spec.rb +0 -32
  94. data/spec/configuration/storage/cloudfiles_spec.rb +0 -34
  95. data/spec/configuration/storage/dropbox_spec.rb +0 -40
  96. data/spec/configuration/storage/ftp_spec.rb +0 -40
  97. data/spec/configuration/storage/rsync_spec.rb +0 -37
  98. data/spec/configuration/storage/s3_spec.rb +0 -37
  99. data/spec/configuration/storage/scp_spec.rb +0 -40
  100. data/spec/configuration/storage/sftp_spec.rb +0 -40
  101. data/spec/database/base_spec.rb +0 -30
  102. data/spec/database/mongodb_spec.rb +0 -144
  103. data/spec/database/mysql_spec.rb +0 -150
  104. data/spec/database/postgresql_spec.rb +0 -164
  105. data/spec/database/redis_spec.rb +0 -122
  106. data/spec/encryptor/gpg_spec.rb +0 -57
  107. data/spec/encryptor/open_ssl_spec.rb +0 -102
  108. data/spec/logger_spec.rb +0 -37
  109. data/spec/model_spec.rb +0 -236
  110. data/spec/notifier/mail_spec.rb +0 -97
  111. data/spec/spec_helper.rb +0 -21
  112. data/spec/storage/base_spec.rb +0 -33
  113. data/spec/storage/cloudfiles_spec.rb +0 -102
  114. data/spec/storage/dropbox_spec.rb +0 -89
  115. data/spec/storage/ftp_spec.rb +0 -133
  116. data/spec/storage/object_spec.rb +0 -74
  117. data/spec/storage/rsync_spec.rb +0 -115
  118. data/spec/storage/s3_spec.rb +0 -110
  119. data/spec/storage/scp_spec.rb +0 -129
  120. data/spec/storage/sftp_spec.rb +0 -125
  121. data/spec/version_spec.rb +0 -32
@@ -1,54 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Backup
4
- class Archive
5
- include Backup::CLI
6
-
7
- ##
8
- # Stores the name of the archive
9
- attr_accessor :name
10
-
11
- ##
12
- # Stores an array of different paths/files to store
13
- attr_accessor :paths
14
-
15
- ##
16
- # Stores the path to the archive directory
17
- attr_accessor :archive_path
18
-
19
- ##
20
- # Takes the name of the archive and the configuration block
21
- def initialize(name, &block)
22
- @name = name.to_sym
23
- @paths = Array.new
24
- @archive_path = File.join(TMP_PATH, TRIGGER, 'archive')
25
-
26
- instance_eval(&block)
27
- end
28
-
29
- ##
30
- # Adds new paths to the @paths instance variable array
31
- def add(path)
32
- @paths << path
33
- end
34
-
35
- ##
36
- # Archives all the provided paths in to a single .tar file
37
- # and places that .tar file in the folder which later will be packaged
38
- def perform!
39
- mkdir(archive_path)
40
- Logger.message("#{ self.class } started packaging and archiving #{ paths.map { |path| "\"#{path}\""}.join(", ") }.")
41
- run("#{ utility(:tar) } -c #{ paths_to_package } 1> '#{ File.join(archive_path, "#{name}.tar") }' 2> /dev/null")
42
- end
43
-
44
- private
45
-
46
- ##
47
- # Returns a "tar-ready" string of all the specified paths combined
48
- def paths_to_package
49
- paths.map do |path|
50
- "'#{path}'"
51
- end.join("\s")
52
- end
53
- end
54
- end
@@ -1,50 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Backup
4
- module CLI
5
-
6
- ##
7
- # Wrapper method for %x[] to run CL commands
8
- # through a ruby method. This helps with test coverage and
9
- # improves readability
10
- def run(command)
11
- %x[#{command}]
12
- end
13
-
14
- ##
15
- # Wrapper method for FileUtils.mkdir_p to create directories
16
- # through a ruby method. This helps with test coverage and
17
- # improves readability
18
- def mkdir(path)
19
- FileUtils.mkdir_p(path)
20
- end
21
-
22
- ##
23
- # Wrapper for the FileUtils.rm_rf to remove files and folders
24
- # through a ruby method. This helps with test coverage and
25
- # improves readability
26
- def rm(path)
27
- FileUtils.rm_rf(path)
28
- end
29
-
30
- ##
31
- # Tries to find the full path of the specified utility. If the full
32
- # path is found, it'll return that. Otherwise it'll just return the
33
- # name of the utility. If the 'utility_path' is defined, it'll check
34
- # to see if it isn't an empty string, and if it isn't, it'll go ahead and
35
- # always use that path rather than auto-detecting it
36
- def utility(name)
37
- if respond_to?(:utility_path)
38
- if utility_path.is_a?(String) and not utility_path.empty?
39
- return utility_path
40
- end
41
- end
42
-
43
- if path = %x[which #{name}].chomp and not path.empty?
44
- return path
45
- end
46
- name
47
- end
48
-
49
- end
50
- end
@@ -1,17 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Backup
4
- module Compressor
5
- class Base
6
- include Backup::CLI
7
- include Backup::Configuration::Helpers
8
-
9
- ##
10
- # Logs a message to the console and log file to inform
11
- # the client that Backup is compressing the archive
12
- def log!
13
- Backup::Logger.message "#{ self.class } started compressing the archive."
14
- end
15
- end
16
- end
17
- end
@@ -1,61 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Backup
4
- module Compressor
5
- class Gzip < Base
6
-
7
- ##
8
- # Tells Backup::Compressor::Gzip to compress
9
- # better rather than faster when set to true
10
- attr_writer :best
11
-
12
- ##
13
- # Tells Backup::Compressor::Gzip to compress
14
- # faster rather than better when set to true
15
- attr_writer :fast
16
-
17
- ##
18
- # Creates a new instance of Backup::Compressor::Gzip and
19
- # configures it to either compress faster or better
20
- def initialize(&block)
21
- load_defaults!
22
-
23
- @best ||= false
24
- @fast ||= false
25
-
26
- instance_eval(&block) if block_given?
27
- end
28
-
29
- ##
30
- # Performs the compression of the packages backup file
31
- def perform!
32
- log!
33
- run("#{ utility(:gzip) } #{ options } '#{ Backup::Model.file }'")
34
- Backup::Model.extension += '.gz'
35
- end
36
-
37
- private
38
-
39
- ##
40
- # Combines the provided options and returns a gzip options string
41
- def options
42
- (best + fast).join("\s")
43
- end
44
-
45
- ##
46
- # Returns the gzip option syntax for compressing
47
- # better when @best is set to true
48
- def best
49
- return ['--best'] if @best; []
50
- end
51
-
52
- ##
53
- # Returns the gzip option syntax for compressing
54
- # faster when @fast is set to true
55
- def fast
56
- return ['--fast'] if @fast; []
57
- end
58
-
59
- end
60
- end
61
- end
@@ -1,15 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Backup
4
- module Configuration
5
- class Base
6
- extend Backup::Configuration::Helpers
7
-
8
- ##
9
- # Allows for global configuration through block-notation
10
- def self.defaults
11
- yield self
12
- end
13
- end
14
- end
15
- end
@@ -1,10 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Backup
4
- module Configuration
5
- module Compressor
6
- class Base < Backup::Configuration::Base
7
- end
8
- end
9
- end
10
- end
@@ -1,23 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Backup
4
- module Configuration
5
- module Compressor
6
- class Gzip < Base
7
- class << self
8
-
9
- ##
10
- # Tells Backup::Compressor::Gzip to compress
11
- # better rather than faster when set to true
12
- attr_accessor :best
13
-
14
- ##
15
- # Tells Backup::Compressor::Gzip to compress
16
- # faster rather than better when set to true
17
- attr_accessor :fast
18
-
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,18 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Backup
4
- module Configuration
5
- module Database
6
- class Base < Backup::Configuration::Base
7
- class << self
8
-
9
- ##
10
- # Allows the user to specify the path to a "dump" utility
11
- # in case it cannot be auto-detected by Backup
12
- attr_accessor :utility_path
13
-
14
- end
15
- end
16
- end
17
- end
18
- end
@@ -1,37 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Backup
4
- module Configuration
5
- module Database
6
- class MongoDB < Base
7
- class << self
8
-
9
- ##
10
- # Name of the database that needs to get dumped
11
- attr_accessor :name
12
-
13
- ##
14
- # Credentials for the specified database
15
- attr_accessor :username, :password
16
-
17
- ##
18
- # Connectivity options
19
- attr_accessor :host, :port
20
-
21
- ##
22
- # IPv6 support (disabled by default)
23
- attr_accessor :ipv6
24
-
25
- ##
26
- # Collections to dump, collections that aren't specified won't get dumped
27
- attr_accessor :only_collections
28
-
29
- ##
30
- # Additional "mongodump" options
31
- attr_accessor :additional_options
32
-
33
- end
34
- end
35
- end
36
- end
37
- end
@@ -1,37 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Backup
4
- module Configuration
5
- module Database
6
- class MySQL < Base
7
- class << self
8
-
9
- ##
10
- # Name of the database that needs to get dumped
11
- attr_accessor :name
12
-
13
- ##
14
- # Credentials for the specified database
15
- attr_accessor :username, :password
16
-
17
- ##
18
- # Connectivity options
19
- attr_accessor :host, :port, :socket
20
-
21
- ##
22
- # Tables to skip while dumping the database
23
- attr_accessor :skip_tables
24
-
25
- ##
26
- # Tables to dump, tables that aren't specified won't get dumped
27
- attr_accessor :only_tables
28
-
29
- ##
30
- # Additional "mysqldump" options
31
- attr_accessor :additional_options
32
-
33
- end
34
- end
35
- end
36
- end
37
- end
@@ -1,37 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Backup
4
- module Configuration
5
- module Database
6
- class PostgreSQL < Base
7
- class << self
8
-
9
- ##
10
- # Name of the database that needs to get dumped
11
- attr_accessor :name
12
-
13
- ##
14
- # Credentials for the specified database
15
- attr_accessor :username, :password
16
-
17
- ##
18
- # Connectivity options
19
- attr_accessor :host, :port, :socket
20
-
21
- ##
22
- # Tables to skip while dumping the database
23
- attr_accessor :skip_tables
24
-
25
- ##
26
- # Tables to dump, tables that aren't specified won't get dumped
27
- attr_accessor :only_tables
28
-
29
- ##
30
- # Additional "pg_dump" options
31
- attr_accessor :additional_options
32
-
33
- end
34
- end
35
- end
36
- end
37
- end
@@ -1,35 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Backup
4
- module Configuration
5
- module Database
6
- class Redis < Base
7
- class << self
8
-
9
- ##
10
- # Name of and path to the database that needs to get dumped
11
- attr_accessor :name, :path
12
-
13
- ##
14
- # Credentials for the specified database
15
- attr_accessor :password
16
-
17
- ##
18
- # Determines whether Backup should invoke the SAVE command through
19
- # the 'redis-cli' utility to persist the most recent data before
20
- # copying over the dump file
21
- attr_accessor :invoke_save
22
-
23
- ##
24
- # Connectivity options
25
- attr_accessor :host, :port, :socket
26
-
27
- ##
28
- # Additional "redis-cli" options
29
- attr_accessor :additional_options
30
-
31
- end
32
- end
33
- end
34
- end
35
- end
@@ -1,10 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Backup
4
- module Configuration
5
- module Encryptor
6
- class Base < Backup::Configuration::Base
7
- end
8
- end
9
- end
10
- end
@@ -1,17 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Backup
4
- module Configuration
5
- module Encryptor
6
- class GPG < Base
7
- class << self
8
-
9
- ##
10
- # The GPG Public key that'll be used to encrypt the backup
11
- attr_accessor :key
12
-
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,26 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Backup
4
- module Configuration
5
- module Encryptor
6
- class OpenSSL < Base
7
- class << self
8
-
9
- ##
10
- # The password that'll be used to encrypt the backup. This
11
- # password will be required to decrypt the backup later on.
12
- attr_accessor :password
13
-
14
- ##
15
- # Determines whether the 'base64' should be used or not
16
- attr_accessor :base64
17
-
18
- ##
19
- # Determines whether the 'salt' flag should be used
20
- attr_accessor :salt
21
-
22
- end
23
- end
24
- end
25
- end
26
- end