rubber 2.15.0 → 2.15.1
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.
- 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
|