backup 2.3.2.pre2 → 2.3.2.pre3
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.
- data/VERSION +1 -1
- data/bin/backup +19 -16
- data/lib/backup.rb +13 -11
- data/lib/backup/configuration/base.rb +12 -10
- data/lib/backup/configuration/storage.rb +1 -1
- data/lib/backup/connection/cloudfiles.rb +75 -0
- data/lib/backup/record/cloudfiles.rb +28 -0
- data/lib/backup/storage/cloudfiles.rb +16 -0
- metadata +23 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.3.
|
1
|
+
2.3.2.pre2
|
data/bin/backup
CHANGED
@@ -23,13 +23,14 @@ optparse = OptionParser.new do |opts|
|
|
23
23
|
backup = Backup::Setup.new(trigger, @backup_procedures)
|
24
24
|
records = Array.new
|
25
25
|
case backup.procedure.storage_name.to_sym
|
26
|
-
when :
|
27
|
-
when :
|
28
|
-
when :
|
29
|
-
when :
|
30
|
-
when :
|
26
|
+
when :cloudfiles then records = Backup::Record::CloudFiles.all :conditions => {:trigger => trigger}
|
27
|
+
when :s3 then records = Backup::Record::S3.all :conditions => {:trigger => trigger}
|
28
|
+
when :scp then records = Backup::Record::SCP.all :conditions => {:trigger => trigger}
|
29
|
+
when :ftp then records = Backup::Record::FTP.all :conditions => {:trigger => trigger}
|
30
|
+
when :sftp then records = Backup::Record::SFTP.all :conditions => {:trigger => trigger}
|
31
|
+
when :local then records = Backup::Record::Local.all :conditions => {:trigger => trigger}
|
31
32
|
end
|
32
|
-
|
33
|
+
|
33
34
|
if options[:table]
|
34
35
|
puts Hirb::Helpers::AutoTable.render(records)
|
35
36
|
else
|
@@ -49,11 +50,12 @@ optparse = OptionParser.new do |opts|
|
|
49
50
|
puts "Destroying backup records with trigger: #{trigger}."
|
50
51
|
backup = Backup::Setup.new(trigger, @backup_procedures)
|
51
52
|
case backup.procedure.storage_name.to_sym
|
52
|
-
when :
|
53
|
-
when :
|
54
|
-
when :
|
55
|
-
when :
|
56
|
-
when :
|
53
|
+
when :cloudfiles then Backup::Record::CloudFiles.destroy_all_backups backup.procedure, trigger
|
54
|
+
when :s3 then Backup::Record::S3.destroy_all_backups backup.procedure, trigger
|
55
|
+
when :scp then Backup::Record::SCP.destroy_all_backups backup.procedure, trigger
|
56
|
+
when :ftp then Backup::Record::FTP.destroy_all_backups backup.procedure, trigger
|
57
|
+
when :sftp then Backup::Record::SFTP.destroy_all_backups backup.procedure, trigger
|
58
|
+
when :local then Backup::Record::Local.destroy_all_backups backup.procedure, trigger
|
57
59
|
end
|
58
60
|
end
|
59
61
|
|
@@ -68,11 +70,12 @@ optparse = OptionParser.new do |opts|
|
|
68
70
|
backup = Backup::Setup.new(false, @backup_procedures)
|
69
71
|
backup.procedures.each do |backup_procedure|
|
70
72
|
case backup_procedure.storage_name.to_sym
|
71
|
-
when :
|
72
|
-
when :
|
73
|
-
when :
|
74
|
-
when :
|
75
|
-
when :
|
73
|
+
when :cloudfiles then Backup::Record::CloudFiles.destroy_all_backups backup_procedure, backup_procedure.trigger
|
74
|
+
when :s3 then Backup::Record::S3.destroy_all_backups backup_procedure, backup_procedure.trigger
|
75
|
+
when :scp then Backup::Record::SCP.destroy_all_backups backup_procedure, backup_procedure.trigger
|
76
|
+
when :ftp then Backup::Record::FTP.destroy_all_backups backup_procedure, backup_procedure.trigger
|
77
|
+
when :sftp then Backup::Record::SFTP.destroy_all_backups backup_procedure, backup_procedure.trigger
|
78
|
+
when :local then Backup::Record::Local.destroy_all_backups backup.procedure, backup_procedure.trigger
|
76
79
|
end
|
77
80
|
end
|
78
81
|
end
|
data/lib/backup.rb
CHANGED
@@ -51,20 +51,22 @@ module Backup
|
|
51
51
|
end
|
52
52
|
|
53
53
|
module Storage
|
54
|
-
autoload :
|
55
|
-
autoload :
|
56
|
-
autoload :
|
57
|
-
autoload :
|
58
|
-
autoload :
|
54
|
+
autoload :CloudFiles, 'backup/storage/cloudfiles'
|
55
|
+
autoload :S3, 'backup/storage/s3'
|
56
|
+
autoload :SCP, 'backup/storage/scp'
|
57
|
+
autoload :FTP, 'backup/storage/ftp'
|
58
|
+
autoload :SFTP, 'backup/storage/sftp'
|
59
|
+
autoload :Local, 'backup/storage/local'
|
59
60
|
end
|
60
61
|
|
61
62
|
module Record
|
62
|
-
autoload :Base,
|
63
|
-
autoload :
|
64
|
-
autoload :
|
65
|
-
autoload :
|
66
|
-
autoload :
|
67
|
-
autoload :
|
63
|
+
autoload :Base, 'backup/record/base'
|
64
|
+
autoload :CloudFiles, 'backup/record/cloudfiles'
|
65
|
+
autoload :S3, 'backup/record/s3'
|
66
|
+
autoload :SCP, 'backup/record/scp'
|
67
|
+
autoload :FTP, 'backup/record/ftp'
|
68
|
+
autoload :SFTP, 'backup/record/sftp'
|
69
|
+
autoload :Local, 'backup/record/local'
|
68
70
|
end
|
69
71
|
|
70
72
|
class Setup
|
@@ -25,21 +25,23 @@ module Backup
|
|
25
25
|
# Initializes the storing process depending on the store settings
|
26
26
|
def initialize_storage(adapter)
|
27
27
|
case @storage_name.to_sym
|
28
|
-
when :
|
29
|
-
when :
|
30
|
-
when :
|
31
|
-
when :
|
32
|
-
when :
|
28
|
+
when :cloudfiles then Backup::Storage::CloudFiles.new(adapter)
|
29
|
+
when :s3 then Backup::Storage::S3.new(adapter)
|
30
|
+
when :scp then Backup::Storage::SCP.new(adapter)
|
31
|
+
when :ftp then Backup::Storage::FTP.new(adapter)
|
32
|
+
when :sftp then Backup::Storage::SFTP.new(adapter)
|
33
|
+
when :local then Backup::Storage::Local.new(adapter)
|
33
34
|
end
|
34
35
|
end
|
35
36
|
|
36
37
|
def initialize_record
|
37
38
|
case @storage_name.to_sym
|
38
|
-
when :
|
39
|
-
when :
|
40
|
-
when :
|
41
|
-
when :
|
42
|
-
when :
|
39
|
+
when :cloudfiles then Backup::Record::CloudFiles.new
|
40
|
+
when :s3 then Backup::Record::S3.new
|
41
|
+
when :scp then Backup::Record::SCP.new
|
42
|
+
when :ftp then Backup::Record::FTP.new
|
43
|
+
when :sftp then Backup::Record::SFTP.new
|
44
|
+
when :local then Backup::Record::Local.new
|
43
45
|
end
|
44
46
|
end
|
45
47
|
|
@@ -2,7 +2,7 @@ module Backup
|
|
2
2
|
module Configuration
|
3
3
|
class Storage
|
4
4
|
extend Backup::Configuration::Attributes
|
5
|
-
generate_attributes %w(ip user password path access_key_id secret_access_key use_ssl bucket)
|
5
|
+
generate_attributes %w(ip user password path access_key_id secret_access_key use_ssl bucket username api_key container)
|
6
6
|
end
|
7
7
|
end
|
8
8
|
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
require 'cloudfiles'
|
2
|
+
|
3
|
+
module Backup
|
4
|
+
module Connection
|
5
|
+
class CloudFiles
|
6
|
+
|
7
|
+
attr_accessor :adapter, :procedure, :api_key, :username, :cf_container, :final_file, :tmp_path
|
8
|
+
|
9
|
+
# Initializes the Cloud Files connection, setting the values using the
|
10
|
+
# Cloud Files adapter
|
11
|
+
def initialize(adapter = false)
|
12
|
+
if adapter
|
13
|
+
self.adapter = adapter
|
14
|
+
self.procedure = adapter.procedure
|
15
|
+
self.final_file = adapter.final_file
|
16
|
+
self.tmp_path = adapter.tmp_path.gsub('\ ', ' ')
|
17
|
+
load_storage_configuration_attributes
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
# Sets values from a procedure, rather than from the adapter object
|
22
|
+
def static_initialize(procedure)
|
23
|
+
self.procedure = procedure
|
24
|
+
load_storage_configuration_attributes(true)
|
25
|
+
end
|
26
|
+
|
27
|
+
# Establishes a connection with Rackspace Cloud Files using the
|
28
|
+
# credentials provided by the user
|
29
|
+
def connect
|
30
|
+
connection
|
31
|
+
end
|
32
|
+
|
33
|
+
# Wrapper for the Connection object
|
34
|
+
def connection
|
35
|
+
::CloudFiles::Connection.new(username, api_key)
|
36
|
+
end
|
37
|
+
|
38
|
+
# Wrapper for the Container object
|
39
|
+
def container
|
40
|
+
connection.container(cf_container)
|
41
|
+
end
|
42
|
+
|
43
|
+
# Initializes the file transfer to Rackspace Cloud Files
|
44
|
+
# This can only run after a connection has been made using the #connect method
|
45
|
+
def store
|
46
|
+
object = container.create_object(final_file)
|
47
|
+
object.write(open(File.join(tmp_path, final_file)))
|
48
|
+
end
|
49
|
+
|
50
|
+
# Destroys file from a bucket on Amazon S3
|
51
|
+
def destroy(file, c)
|
52
|
+
c = connection.container(c)
|
53
|
+
c.delete_object(file)
|
54
|
+
end
|
55
|
+
|
56
|
+
private
|
57
|
+
|
58
|
+
def load_storage_configuration_attributes(static = false)
|
59
|
+
%w(api_key username).each do |attribute|
|
60
|
+
if static
|
61
|
+
send("#{attribute}=", procedure.get_storage_configuration.attributes[attribute])
|
62
|
+
else
|
63
|
+
send("#{attribute}=", adapter.procedure.get_storage_configuration.attributes[attribute])
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
if static
|
68
|
+
self.cf_container = procedure.get_storage_configuration.attributes['container']
|
69
|
+
else
|
70
|
+
self.cf_container = adapter.procedure.get_storage_configuration.attributes['container']
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'backup/connection/cloudfiles'
|
2
|
+
|
3
|
+
module Backup
|
4
|
+
module Record
|
5
|
+
class CloudFiles < Backup::Record::Base
|
6
|
+
|
7
|
+
alias_attribute :container, :bucket
|
8
|
+
|
9
|
+
def load_specific_settings(adapter)
|
10
|
+
self.container = adapter.procedure.get_storage_configuration.attributes['container']
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def self.destroy_backups(procedure, backups)
|
16
|
+
cf = Backup::Connection::CloudFiles.new
|
17
|
+
cf.static_initialize(procedure)
|
18
|
+
cf.connect
|
19
|
+
backups.each do |backup|
|
20
|
+
puts "\nDestroying backup \"#{backup.filename}\" from container \"#{backup.container}\"."
|
21
|
+
cf.destroy(backup.filename, backup.container)
|
22
|
+
backup.destroy
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'backup/connection/cloudfiles'
|
2
|
+
|
3
|
+
module Backup
|
4
|
+
module Storage
|
5
|
+
class CloudFiles
|
6
|
+
|
7
|
+
# Stores the backup file on the remote server using Rackspace Cloud Files
|
8
|
+
def initialize(adapter)
|
9
|
+
cf = Backup::Connection::CloudFiles.new(adapter)
|
10
|
+
cf.connect
|
11
|
+
cf.store
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: backup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: -
|
4
|
+
hash: -1876988210
|
5
5
|
prerelease: true
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 3
|
9
9
|
- 2
|
10
|
-
-
|
11
|
-
version: 2.3.2.
|
10
|
+
- pre3
|
11
|
+
version: 2.3.2.pre3
|
12
12
|
platform: ruby
|
13
13
|
authors:
|
14
14
|
- Michael van Rooijen
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-07-
|
19
|
+
date: 2010-07-14 00:00:00 +02:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -146,6 +146,22 @@ dependencies:
|
|
146
146
|
version: "0.5"
|
147
147
|
type: :runtime
|
148
148
|
version_requirements: *id008
|
149
|
+
- !ruby/object:Gem::Dependency
|
150
|
+
name: cloudfiles
|
151
|
+
prerelease: false
|
152
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ">="
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
hash: 9
|
158
|
+
segments:
|
159
|
+
- 1
|
160
|
+
- 4
|
161
|
+
- 7
|
162
|
+
version: 1.4.7
|
163
|
+
type: :runtime
|
164
|
+
version_requirements: *id009
|
149
165
|
description: |-
|
150
166
|
Backup is a Ruby Gem written for Unix and Rails environments. It can be used both with and without the
|
151
167
|
Ruby on Rails framework! This gem offers a quick and simple solution to backing up databases such as
|
@@ -179,6 +195,7 @@ files:
|
|
179
195
|
- lib/backup/configuration/mail.rb
|
180
196
|
- lib/backup/configuration/smtp.rb
|
181
197
|
- lib/backup/configuration/storage.rb
|
198
|
+
- lib/backup/connection/cloudfiles.rb
|
182
199
|
- lib/backup/connection/s3.rb
|
183
200
|
- lib/backup/environment/base.rb
|
184
201
|
- lib/backup/environment/rails.rb
|
@@ -186,11 +203,13 @@ files:
|
|
186
203
|
- lib/backup/mail/base.rb
|
187
204
|
- lib/backup/mail/mail.txt
|
188
205
|
- lib/backup/record/base.rb
|
206
|
+
- lib/backup/record/cloudfiles.rb
|
189
207
|
- lib/backup/record/ftp.rb
|
190
208
|
- lib/backup/record/local.rb
|
191
209
|
- lib/backup/record/s3.rb
|
192
210
|
- lib/backup/record/scp.rb
|
193
211
|
- lib/backup/record/sftp.rb
|
212
|
+
- lib/backup/storage/cloudfiles.rb
|
194
213
|
- lib/backup/storage/ftp.rb
|
195
214
|
- lib/backup/storage/local.rb
|
196
215
|
- lib/backup/storage/s3.rb
|