backup 3.0.2 → 3.0.3.build.0

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