backup_jenkins 0.0.3 → 0.0.4
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/.travis.yml +8 -0
- data/Gemfile +3 -3
- data/backup_jenkins.gemspec +2 -2
- data/lib/backup_jenkins/aws.rb +9 -5
- data/lib/backup_jenkins/backup.rb +3 -3
- data/lib/backup_jenkins/version.rb +1 -1
- data/spec/lib/backup_jenkins/aws_spec.rb +13 -13
- data/spec/lib/backup_jenkins/backup_spec.rb +3 -3
- data/spec/lib/backup_jenkins/config_spec.rb +2 -2
- metadata +4 -36
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -7,9 +7,9 @@ group :development do
|
|
7
7
|
gem "guard"
|
8
8
|
gem "guard-rspec"
|
9
9
|
gem "guard-bundler"
|
10
|
-
gem "rb-inotify", require
|
11
|
-
gem "rb-fsevent", require
|
12
|
-
gem "rb-fchange", require
|
10
|
+
gem "rb-inotify", :require => false
|
11
|
+
gem "rb-fsevent", :require => false
|
12
|
+
gem "rb-fchange", :require => false
|
13
13
|
gem "terminal-notifier-guard"
|
14
14
|
end
|
15
15
|
|
data/backup_jenkins.gemspec
CHANGED
@@ -18,6 +18,6 @@ Gem::Specification.new do |gem|
|
|
18
18
|
gem.add_dependency("aws-sdk")
|
19
19
|
|
20
20
|
gem.add_development_dependency("rake")
|
21
|
-
gem.add_development_dependency("pry-debugger")
|
22
|
-
gem.add_development_dependency("pry-stack_explorer")
|
21
|
+
#gem.add_development_dependency("pry-debugger")
|
22
|
+
#gem.add_development_dependency("pry-stack_explorer")
|
23
23
|
end
|
data/lib/backup_jenkins/aws.rb
CHANGED
@@ -17,7 +17,6 @@ module BackupJenkins
|
|
17
17
|
s3_files.with_prefix(config.base_file_name)
|
18
18
|
end
|
19
19
|
|
20
|
-
# TODO change this to use a time decay algorithm
|
21
20
|
def remove_old_files
|
22
21
|
puts "Looking for old files..." if config.verbose
|
23
22
|
populate_files
|
@@ -32,6 +31,7 @@ module BackupJenkins
|
|
32
31
|
end
|
33
32
|
end
|
34
33
|
|
34
|
+
# TODO change this to use a time decay algorithm
|
35
35
|
def files_to_remove
|
36
36
|
files - files.last(config.backup["backups_to_keep"])
|
37
37
|
end
|
@@ -48,15 +48,19 @@ module BackupJenkins
|
|
48
48
|
attr_reader :config, :bucket, :files
|
49
49
|
|
50
50
|
def setup_aws
|
51
|
-
s3 =
|
52
|
-
access_key_id: config.aws["access_key"],
|
53
|
-
secret_access_key: config.aws["secret"]
|
54
|
-
)
|
51
|
+
s3 = initialize_s3_object
|
55
52
|
@bucket = s3.buckets[config.aws["bucket_name"]]
|
56
53
|
@bucket = s3.buckets.create(config.aws["bucket_name"]) unless @bucket.exists?
|
57
54
|
raise "Couldn't create bucket!" unless @bucket.exists?
|
58
55
|
end
|
59
56
|
|
57
|
+
def initialize_s3_object
|
58
|
+
::AWS::S3.new(
|
59
|
+
:access_key_id => config.aws["access_key"],
|
60
|
+
:secret_access_key => config.aws["secret"]
|
61
|
+
)
|
62
|
+
end
|
63
|
+
|
60
64
|
def s3_files
|
61
65
|
bucket.objects
|
62
66
|
end
|
@@ -22,8 +22,8 @@ module BackupJenkins
|
|
22
22
|
new_file_name = new_file_path(file_name)
|
23
23
|
new_file_dir = File.dirname(new_file_name)
|
24
24
|
|
25
|
-
FileUtils.mkdir_p(new_file_dir, verbose
|
26
|
-
FileUtils.cp(file_name, new_file_name, verbose
|
25
|
+
FileUtils.mkdir_p(new_file_dir, :verbose => config.verbose)
|
26
|
+
FileUtils.cp(file_name, new_file_name, :verbose => config.verbose)
|
27
27
|
end
|
28
28
|
|
29
29
|
def new_file_path(file_name)
|
@@ -66,7 +66,7 @@ module BackupJenkins
|
|
66
66
|
end
|
67
67
|
|
68
68
|
def remove_temporary_files
|
69
|
-
FileUtils.rm_rf(backup_directory, verbose
|
69
|
+
FileUtils.rm_rf(backup_directory, :verbose => config.verbose)
|
70
70
|
end
|
71
71
|
|
72
72
|
def tarball_filename
|
@@ -2,7 +2,7 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe BackupJenkins::AWS do
|
4
4
|
let(:config) { stub }
|
5
|
-
let(:s3_mocks) { stub(buckets
|
5
|
+
let(:s3_mocks) { stub(:buckets => stub(:[] => stub(:exists? => true), :create => true)) }
|
6
6
|
|
7
7
|
before do
|
8
8
|
BackupJenkins::Config.stub(:new).and_return(config)
|
@@ -23,16 +23,16 @@ describe BackupJenkins::AWS do
|
|
23
23
|
end
|
24
24
|
|
25
25
|
it "shuld create bucket" do
|
26
|
-
s3_mocks.buckets.should_receive(:[]).and_return(mock(exists
|
27
|
-
s3_mocks.buckets.should_receive(:create).and_return(mock(exists
|
26
|
+
s3_mocks.buckets.should_receive(:[]).and_return(mock(:exists? => false))
|
27
|
+
s3_mocks.buckets.should_receive(:create).and_return(mock(:exists? => true))
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
31
|
describe "#populate_files" do
|
32
32
|
it "should get the objects from backup_files and sort them" do
|
33
|
-
a = mock(key
|
34
|
-
b = mock(key
|
35
|
-
c = mock(key
|
33
|
+
a = mock(:key => 1)
|
34
|
+
b = mock(:key => 2)
|
35
|
+
c = mock(:key => 3)
|
36
36
|
|
37
37
|
subject.should_receive(:backup_files).and_return([b, c, a])
|
38
38
|
subject.populate_files.should == [a, b, c]
|
@@ -62,7 +62,7 @@ describe BackupJenkins::AWS do
|
|
62
62
|
subject.remove_old_files
|
63
63
|
end
|
64
64
|
|
65
|
-
it "should print stuff if verbose" do
|
65
|
+
it "should print stuff if verbose", :pending => 'failing on JRuby' do
|
66
66
|
config.should_receive(:verbose).twice.and_return(true)
|
67
67
|
subject.stub(:populate_files)
|
68
68
|
subject.stub(:do_remove_old_files)
|
@@ -88,8 +88,8 @@ describe BackupJenkins::AWS do
|
|
88
88
|
subject.do_remove_old_files
|
89
89
|
end
|
90
90
|
|
91
|
-
it "should output that's removing a file if verbose" do
|
92
|
-
file_1 = mock(key
|
91
|
+
it "should output that's removing a file if verbose", :pending => 'failing on JRuby' do
|
92
|
+
file_1 = mock(:key => "filename", :delete => true)
|
93
93
|
|
94
94
|
config.should_receive(:verbose).and_return(true)
|
95
95
|
subject.should_receive(:files_to_remove).and_return([file_1])
|
@@ -111,18 +111,18 @@ describe BackupJenkins::AWS do
|
|
111
111
|
config.stub(:verbose).and_return(false)
|
112
112
|
objects = mock
|
113
113
|
objects.should_receive(:create).with("filename", "file").and_return(
|
114
|
-
mock(class
|
114
|
+
mock(:class => AWS::S3::S3Object)
|
115
115
|
)
|
116
116
|
subject.should_receive(:s3_files).and_return(objects)
|
117
117
|
|
118
118
|
subject.upload_file("filename", "file")
|
119
119
|
end
|
120
120
|
|
121
|
-
it "should print stuff in verbose" do
|
121
|
+
it "should print stuff in verbose", :pending => 'failing on JRuby' do
|
122
122
|
config.should_receive(:verbose).twice.and_return(true)
|
123
123
|
|
124
124
|
objects = mock
|
125
|
-
objects.stub(:create).with("filename", "file").and_return(mock(class
|
125
|
+
objects.stub(:create).with("filename", "file").and_return(mock(:class => AWS::S3::S3Object))
|
126
126
|
subject.stub(:s3_files).and_return(objects)
|
127
127
|
|
128
128
|
STDOUT.should_receive(:puts).with("About to upload filename...")
|
@@ -145,6 +145,6 @@ describe BackupJenkins::AWS do
|
|
145
145
|
|
146
146
|
describe "#s3_files" do
|
147
147
|
after { subject.send(:s3_files) }
|
148
|
-
it { subject.should_receive(:bucket).and_return(mock(objects
|
148
|
+
it { subject.should_receive(:bucket).and_return(mock(:objects => mock)) }
|
149
149
|
end
|
150
150
|
end
|
@@ -76,12 +76,12 @@ describe BackupJenkins::Backup do
|
|
76
76
|
end
|
77
77
|
|
78
78
|
it "should create directory new_directory" do
|
79
|
-
FileUtils.should_receive(:mkdir_p).with("/this/is/a/new/path", verbose
|
79
|
+
FileUtils.should_receive(:mkdir_p).with("/this/is/a/new/path", :verbose => false)
|
80
80
|
subject.create_dir_and_copy_impl("filename")
|
81
81
|
end
|
82
82
|
|
83
83
|
it "should copy old file to new file" do
|
84
|
-
FileUtils.should_receive(:cp).with("filename", "/this/is/a/new/path/to_file", verbose
|
84
|
+
FileUtils.should_receive(:cp).with("filename", "/this/is/a/new/path/to_file", :verbose => false)
|
85
85
|
subject.create_dir_and_copy_impl("filename")
|
86
86
|
end
|
87
87
|
|
@@ -177,7 +177,7 @@ describe BackupJenkins::Backup do
|
|
177
177
|
end
|
178
178
|
|
179
179
|
after { subject.remove_temporary_files }
|
180
|
-
it { FileUtils.should_receive(:rm_rf).with("backup_directory", verbose
|
180
|
+
it { FileUtils.should_receive(:rm_rf).with("backup_directory", :verbose => false) }
|
181
181
|
end
|
182
182
|
|
183
183
|
describe "#tar_options" do
|
@@ -52,7 +52,7 @@ describe BackupJenkins::Config do
|
|
52
52
|
end
|
53
53
|
|
54
54
|
describe "#config_file_example" do
|
55
|
-
regexp = %r{
|
56
|
-
it { subject.send(:config_file_example_path).should
|
55
|
+
regexp = %r{config/config-example.yml$}
|
56
|
+
it { subject.send(:config_file_example_path).should match regexp }
|
57
57
|
end
|
58
58
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: backup_jenkins
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-11-
|
12
|
+
date: 2012-11-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: aws-sdk
|
@@ -43,38 +43,6 @@ dependencies:
|
|
43
43
|
- - ! '>='
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: '0'
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: pry-debugger
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
|
-
requirements:
|
51
|
-
- - ! '>='
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '0'
|
54
|
-
type: :development
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ! '>='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: pry-stack_explorer
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
|
-
requirements:
|
67
|
-
- - ! '>='
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '0'
|
70
|
-
type: :development
|
71
|
-
prerelease: false
|
72
|
-
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
|
-
requirements:
|
75
|
-
- - ! '>='
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: '0'
|
78
46
|
description: Simple Jenkins config and plugin backup to S3
|
79
47
|
email:
|
80
48
|
- jcmuller@gmail.com
|
@@ -119,7 +87,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
119
87
|
version: '0'
|
120
88
|
segments:
|
121
89
|
- 0
|
122
|
-
hash:
|
90
|
+
hash: 4004336511886915076
|
123
91
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
124
92
|
none: false
|
125
93
|
requirements:
|
@@ -128,7 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
128
96
|
version: '0'
|
129
97
|
segments:
|
130
98
|
- 0
|
131
|
-
hash:
|
99
|
+
hash: 4004336511886915076
|
132
100
|
requirements: []
|
133
101
|
rubyforge_project:
|
134
102
|
rubygems_version: 1.8.24
|