rubber 2.15.0 → 2.15.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +3 -0
- data/CHANGELOG +17 -1
- data/lib/rubber/cloud/aws.rb +3 -3
- data/lib/rubber/commands/cron.rb +40 -1
- data/lib/rubber/version.rb +1 -1
- data/templates/base/config/rubber/rubber.yml +3 -3
- data/templates/monit/config/rubber/role/delayed_job/monit-delayed_job.conf +4 -4
- data/templates/nginx/config/rubber/role/nginx/nginx.conf +2 -0
- metadata +37 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 21c5bfb07a7261cb92605b809544a8d9c502aa57
|
4
|
+
data.tar.gz: a697ababec4f8b944685774d919b989ef1d81a67
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 98b33cf60f9828de811891b51fe910be4c7cea0ae3b4b8b20e31a93d25780bc5616f1a61ec7359463c3af7b401d57b19e50242f5a9784e9674389f03677492d1
|
7
|
+
data.tar.gz: 23b7336f0ca80b50e72ce66fb3384b47264dfb7cedb98fbebefbd7f2fd5f403089011c7744b37b9f0e9dddd55ab189a599b3765df75d6ce129826856870ea61e
|
data/.travis.yml
CHANGED
data/CHANGELOG
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
2.15.1 (12/22/2014)
|
2
|
+
|
3
|
+
Improvements:
|
4
|
+
============
|
5
|
+
|
6
|
+
[nginx] Set UTF-8 charset and do not echo server version. <04c03ef>
|
7
|
+
|
8
|
+
Bug Fixes:
|
9
|
+
=========
|
10
|
+
|
11
|
+
[base] Restored comment about EBS volume types in rubber.yml. <73283ff>
|
12
|
+
[core] Fixed broken method interface Aws#create_spot_instance_request. <ed95bdb>
|
13
|
+
[core] Mostly fixed cronjobs on JRuby 9.0.0.0 (jobs will run, but error cases are incorrectly reported as successful still). <cefbdec>
|
14
|
+
[delayed_job] Fixed variable interpolation in monit-delayed_job.conf. <792ba57>
|
15
|
+
|
16
|
+
|
1
17
|
2.15.0 (10/24/2014)
|
2
18
|
|
3
19
|
New Features:
|
@@ -15,7 +31,7 @@ Bug Fixes:
|
|
15
31
|
=========
|
16
32
|
|
17
33
|
[nginx] Add Nginx parameter required by DigitalOcean droplets. <24ac1aa>
|
18
|
-
[postgresql] Surround postgresql database name with quotes to avoid syntax error when using
|
34
|
+
[postgresql] Surround postgresql database name with quotes to avoid syntax error when using hyphens in the DB name. <4017979>
|
19
35
|
|
20
36
|
|
21
37
|
|
data/lib/rubber/cloud/aws.rb
CHANGED
@@ -216,13 +216,13 @@ module Rubber
|
|
216
216
|
return zones
|
217
217
|
end
|
218
218
|
|
219
|
-
def create_spot_instance_request(spot_price, ami, ami_type, security_groups, availability_zone)
|
220
|
-
response = compute_provider.spot_requests.create(:price => spot_price,
|
219
|
+
def create_spot_instance_request(spot_price, ami, ami_type, security_groups, availability_zone, fog_options={})
|
220
|
+
response = compute_provider.spot_requests.create({:price => spot_price,
|
221
221
|
:image_id => ami,
|
222
222
|
:flavor_id => ami_type,
|
223
223
|
:groups => security_groups,
|
224
224
|
:availability_zone => availability_zone,
|
225
|
-
:key_name => env.key_name)
|
225
|
+
:key_name => env.key_name}.merge(Rubber::Util.symbolize_keys(fog_options)))
|
226
226
|
request_id = response.id
|
227
227
|
return request_id
|
228
228
|
end
|
data/lib/rubber/commands/cron.rb
CHANGED
@@ -95,7 +95,7 @@ module Rubber
|
|
95
95
|
|
96
96
|
# Open4 forks, which JRuby doesn't support. But JRuby added a popen4-compatible method on the IO class,
|
97
97
|
# so we can use that instead.
|
98
|
-
status =
|
98
|
+
status = popen4(*cmd) do |pid, stdin, stdout, stderr|
|
99
99
|
File.open(log, "a") do | fh |
|
100
100
|
fh.puts "\nrubber:cron running #{cmd.inspect} at #{Time.now}\n"
|
101
101
|
threads = []
|
@@ -125,6 +125,45 @@ module Rubber
|
|
125
125
|
|
126
126
|
exit(result)
|
127
127
|
end
|
128
|
+
|
129
|
+
def popen4(*cmd, &blk)
|
130
|
+
if defined?(JRUBY_VERSION)
|
131
|
+
if defined?(IO.popen4)
|
132
|
+
IO.popen4(*cmd, &blk)
|
133
|
+
else
|
134
|
+
opts = {}
|
135
|
+
in_r, in_w = IO.pipe
|
136
|
+
opts[:in] = in_r
|
137
|
+
in_w.sync = true
|
138
|
+
|
139
|
+
out_r, out_w = IO.pipe
|
140
|
+
opts[:out] = out_w
|
141
|
+
|
142
|
+
err_r, err_w = IO.pipe
|
143
|
+
opts[:err] = err_w
|
144
|
+
|
145
|
+
child_io = [in_r, out_w, err_w]
|
146
|
+
parent_io = [in_w, out_r, err_r]
|
147
|
+
|
148
|
+
pid = spawn(*cmd, opts)
|
149
|
+
wait_thr = Process.detach(pid)
|
150
|
+
child_io.each { |io| io.close }
|
151
|
+
result = [pid, *parent_io]
|
152
|
+
if defined? yield
|
153
|
+
begin
|
154
|
+
return yield(*result)
|
155
|
+
ensure
|
156
|
+
parent_io.each { |io| io.close unless io.closed? }
|
157
|
+
wait_thr.join
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
161
|
+
result
|
162
|
+
end
|
163
|
+
else
|
164
|
+
Open4.popen4(*cmd, &blk)
|
165
|
+
end
|
166
|
+
end
|
128
167
|
|
129
168
|
end
|
130
169
|
|
data/lib/rubber/version.rb
CHANGED
@@ -342,16 +342,16 @@ staging_roles: "#{known_roles.reject {|r| r =~ /slave/ || r =~ /^db$/ }.join(','
|
|
342
342
|
# # guarantee about how they work (if fog renames an attribute, e.g., your config will break). Please see the fog
|
343
343
|
# # source code for the option names.
|
344
344
|
# fog_options:
|
345
|
-
# type:
|
345
|
+
# type: gp2 # type of volume, standard (EBS magnetic), io1 (provisioned IOPS - SSD), or gp2 (general purpose - SSD).
|
346
346
|
# iops: 500 # The number of I/O operations per second (IOPS) that the volume supports.
|
347
|
-
# # Required when the volume type is io1; not used with
|
347
|
+
# # Required when the volume type is io1; not used with non-provisioned IOPS volumes.
|
348
348
|
# - size: 10
|
349
349
|
# zone: us-east-1a
|
350
350
|
# device: /dev/sdi
|
351
351
|
# mount: /mnt/logs
|
352
352
|
# filesystem: ext4
|
353
353
|
# fog_options:
|
354
|
-
# type:
|
354
|
+
# type: io1
|
355
355
|
# iops: 500
|
356
356
|
#
|
357
357
|
# # volumes without mount/filesystem can be used in raid arrays
|
@@ -10,14 +10,14 @@
|
|
10
10
|
<% if rubber_env.num_delayed_job_workers == 1 %>
|
11
11
|
check process delayed_job
|
12
12
|
with pidfile <%= rubber_env.delayed_job_pid_dir %>/delayed_job.pid
|
13
|
-
start program = "/usr/bin/sudo -H -u
|
14
|
-
stop program = "/usr/bin/sudo -H -u
|
13
|
+
start program = "/usr/bin/sudo -H -u <%= rubber_env.app_user %> /bin/bash -l -c 'cd <%= current_path %> && RAILS_ENV=<%= Rubber.env %> bundle exec <%= script_path %> start --pid-dir=<%= rubber_env.delayed_job_pid_dir %>'" with timeout 600 seconds
|
14
|
+
stop program = "/usr/bin/sudo -H -u <%= rubber_env.app_user %> /bin/bash -l -c 'cd <%= current_path %> && RAILS_ENV=<%= Rubber.env %> bundle exec <%= script_path %> stop --pid-dir=<%= rubber_env.delayed_job_pid_dir %>'" with timeout 600 seconds
|
15
15
|
<% else %>
|
16
16
|
<% rubber_env.num_delayed_job_workers.times do |id| %>
|
17
17
|
check process delayed_job_<%= id %>
|
18
18
|
with pidfile <%= rubber_env.delayed_job_pid_dir %>/delayed_job.<%= id %>.pid
|
19
|
-
start program = "/usr/bin/sudo -H -u
|
20
|
-
stop program = "/usr/bin/sudo -H -u
|
19
|
+
start program = "/usr/bin/sudo -H -u <%= rubber_env.app_user %> /bin/bash -l -c 'cd <%= current_path %> && RAILS_ENV=<%= Rubber.env %> bundle exec <%= script_path %> start -i <%= id %> --pid-dir=<%= rubber_env.delayed_job_pid_dir %>'" with timeout 600 seconds
|
20
|
+
stop program = "/usr/bin/sudo -H -u <%= rubber_env.app_user %> /bin/bash -l -c 'cd <%= current_path %> && RAILS_ENV=<%= Rubber.env %> bundle exec <%= script_path %> stop -i <%= id %> --pid-dir=<%= rubber_env.delayed_job_pid_dir %>'" with timeout 600 seconds
|
21
21
|
group delayed_job
|
22
22
|
<% end %>
|
23
23
|
<% end %>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.15.
|
4
|
+
version: 2.15.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Conway
|
@@ -9,176 +9,176 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-12-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
+
name: capistrano
|
16
|
+
version_requirements: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ~>
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '2.12'
|
15
21
|
requirement: !ruby/object:Gem::Requirement
|
16
22
|
requirements:
|
17
23
|
- - ~>
|
18
24
|
- !ruby/object:Gem::Version
|
19
25
|
version: '2.12'
|
20
|
-
name: capistrano
|
21
26
|
prerelease: false
|
22
27
|
type: :runtime
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: net-ssh
|
23
30
|
version_requirements: !ruby/object:Gem::Requirement
|
24
31
|
requirements:
|
25
32
|
- - ~>
|
26
33
|
- !ruby/object:Gem::Version
|
27
|
-
version: '2.
|
28
|
-
- !ruby/object:Gem::Dependency
|
34
|
+
version: '2.6'
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
37
|
- - ~>
|
32
38
|
- !ruby/object:Gem::Version
|
33
39
|
version: '2.6'
|
34
|
-
name: net-ssh
|
35
40
|
prerelease: false
|
36
41
|
type: :runtime
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: thor
|
37
44
|
version_requirements: !ruby/object:Gem::Requirement
|
38
45
|
requirements:
|
39
|
-
- -
|
46
|
+
- - '>='
|
40
47
|
- !ruby/object:Gem::Version
|
41
|
-
version: '
|
42
|
-
- !ruby/object:Gem::Dependency
|
48
|
+
version: '0'
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
44
50
|
requirements:
|
45
51
|
- - '>='
|
46
52
|
- !ruby/object:Gem::Version
|
47
53
|
version: '0'
|
48
|
-
name: thor
|
49
54
|
prerelease: false
|
50
55
|
type: :runtime
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: clamp
|
51
58
|
version_requirements: !ruby/object:Gem::Requirement
|
52
59
|
requirements:
|
53
60
|
- - '>='
|
54
61
|
- !ruby/object:Gem::Version
|
55
62
|
version: '0'
|
56
|
-
- !ruby/object:Gem::Dependency
|
57
63
|
requirement: !ruby/object:Gem::Requirement
|
58
64
|
requirements:
|
59
65
|
- - '>='
|
60
66
|
- !ruby/object:Gem::Version
|
61
67
|
version: '0'
|
62
|
-
name: clamp
|
63
68
|
prerelease: false
|
64
69
|
type: :runtime
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: open4
|
65
72
|
version_requirements: !ruby/object:Gem::Requirement
|
66
73
|
requirements:
|
67
74
|
- - '>='
|
68
75
|
- !ruby/object:Gem::Version
|
69
76
|
version: '0'
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
77
|
requirement: !ruby/object:Gem::Requirement
|
72
78
|
requirements:
|
73
79
|
- - '>='
|
74
80
|
- !ruby/object:Gem::Version
|
75
81
|
version: '0'
|
76
|
-
name: open4
|
77
82
|
prerelease: false
|
78
83
|
type: :runtime
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: fog
|
79
86
|
version_requirements: !ruby/object:Gem::Requirement
|
80
87
|
requirements:
|
81
|
-
- -
|
88
|
+
- - ~>
|
82
89
|
- !ruby/object:Gem::Version
|
83
|
-
version: '
|
84
|
-
- !ruby/object:Gem::Dependency
|
90
|
+
version: '1.6'
|
85
91
|
requirement: !ruby/object:Gem::Requirement
|
86
92
|
requirements:
|
87
93
|
- - ~>
|
88
94
|
- !ruby/object:Gem::Version
|
89
95
|
version: '1.6'
|
90
|
-
name: fog
|
91
96
|
prerelease: false
|
92
97
|
type: :runtime
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: json
|
93
100
|
version_requirements: !ruby/object:Gem::Requirement
|
94
101
|
requirements:
|
95
|
-
- -
|
102
|
+
- - '>='
|
96
103
|
- !ruby/object:Gem::Version
|
97
|
-
version: '
|
98
|
-
- !ruby/object:Gem::Dependency
|
104
|
+
version: '0'
|
99
105
|
requirement: !ruby/object:Gem::Requirement
|
100
106
|
requirements:
|
101
107
|
- - '>='
|
102
108
|
- !ruby/object:Gem::Version
|
103
109
|
version: '0'
|
104
|
-
name: json
|
105
110
|
prerelease: false
|
106
111
|
type: :runtime
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: rake
|
107
114
|
version_requirements: !ruby/object:Gem::Requirement
|
108
115
|
requirements:
|
109
116
|
- - '>='
|
110
117
|
- !ruby/object:Gem::Version
|
111
118
|
version: '0'
|
112
|
-
- !ruby/object:Gem::Dependency
|
113
119
|
requirement: !ruby/object:Gem::Requirement
|
114
120
|
requirements:
|
115
121
|
- - '>='
|
116
122
|
- !ruby/object:Gem::Version
|
117
123
|
version: '0'
|
118
|
-
name: rake
|
119
124
|
prerelease: false
|
120
125
|
type: :development
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: test-unit
|
121
128
|
version_requirements: !ruby/object:Gem::Requirement
|
122
129
|
requirements:
|
123
130
|
- - '>='
|
124
131
|
- !ruby/object:Gem::Version
|
125
132
|
version: '0'
|
126
|
-
- !ruby/object:Gem::Dependency
|
127
133
|
requirement: !ruby/object:Gem::Requirement
|
128
134
|
requirements:
|
129
135
|
- - '>='
|
130
136
|
- !ruby/object:Gem::Version
|
131
137
|
version: '0'
|
132
|
-
name: test-unit
|
133
138
|
prerelease: false
|
134
139
|
type: :development
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
name: shoulda-context
|
135
142
|
version_requirements: !ruby/object:Gem::Requirement
|
136
143
|
requirements:
|
137
144
|
- - '>='
|
138
145
|
- !ruby/object:Gem::Version
|
139
146
|
version: '0'
|
140
|
-
- !ruby/object:Gem::Dependency
|
141
147
|
requirement: !ruby/object:Gem::Requirement
|
142
148
|
requirements:
|
143
149
|
- - '>='
|
144
150
|
- !ruby/object:Gem::Version
|
145
151
|
version: '0'
|
146
|
-
name: shoulda-context
|
147
152
|
prerelease: false
|
148
153
|
type: :development
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: mocha
|
149
156
|
version_requirements: !ruby/object:Gem::Requirement
|
150
157
|
requirements:
|
151
158
|
- - '>='
|
152
159
|
- !ruby/object:Gem::Version
|
153
160
|
version: '0'
|
154
|
-
- !ruby/object:Gem::Dependency
|
155
161
|
requirement: !ruby/object:Gem::Requirement
|
156
162
|
requirements:
|
157
163
|
- - '>='
|
158
164
|
- !ruby/object:Gem::Version
|
159
165
|
version: '0'
|
160
|
-
name: mocha
|
161
166
|
prerelease: false
|
162
167
|
type: :development
|
168
|
+
- !ruby/object:Gem::Dependency
|
169
|
+
name: awesome_print
|
163
170
|
version_requirements: !ruby/object:Gem::Requirement
|
164
171
|
requirements:
|
165
172
|
- - '>='
|
166
173
|
- !ruby/object:Gem::Version
|
167
174
|
version: '0'
|
168
|
-
- !ruby/object:Gem::Dependency
|
169
175
|
requirement: !ruby/object:Gem::Requirement
|
170
176
|
requirements:
|
171
177
|
- - '>='
|
172
178
|
- !ruby/object:Gem::Version
|
173
179
|
version: '0'
|
174
|
-
name: awesome_print
|
175
180
|
prerelease: false
|
176
181
|
type: :development
|
177
|
-
version_requirements: !ruby/object:Gem::Requirement
|
178
|
-
requirements:
|
179
|
-
- - '>='
|
180
|
-
- !ruby/object:Gem::Version
|
181
|
-
version: '0'
|
182
182
|
description: |2
|
183
183
|
The rubber plugin enables relatively complex multi-instance deployments of RubyOnRails applications to
|
184
184
|
Amazon's Elastic Compute Cloud (EC2). Like capistrano, rubber is role based, so you can define a set
|