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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d4a86ae39c4c054ff5a2ee091be683d011eca4b9
4
- data.tar.gz: 2eb0ad4e985ed83c0937a682955e4498d99140c6
3
+ metadata.gz: 21c5bfb07a7261cb92605b809544a8d9c502aa57
4
+ data.tar.gz: a697ababec4f8b944685774d919b989ef1d81a67
5
5
  SHA512:
6
- metadata.gz: ddf6ae11d0479fb544f4e9c093839503ab3ddd1d3f75057e207ab4612cfbe1002c33d354961b6fcddb32689f9c5a3dc2c327cc1ec10e9f85cfa04ddf28f4beb1
7
- data.tar.gz: 671bda85dea0936d593772f405ec5536fc841a2cb9fa217f85553ce3221ae3448dd0eb382f96ec66890b7281b14c74e85af30278f90254266ce4e29931464455
6
+ metadata.gz: 98b33cf60f9828de811891b51fe910be4c7cea0ae3b4b8b20e31a93d25780bc5616f1a61ec7359463c3af7b401d57b19e50242f5a9784e9674389f03677492d1
7
+ data.tar.gz: 23b7336f0ca80b50e72ce66fb3384b47264dfb7cedb98fbebefbd7f2fd5f403089011c7744b37b9f0e9dddd55ab189a599b3765df75d6ce129826856870ea61e
@@ -1,4 +1,6 @@
1
1
  language: ruby
2
+ sudo: false
3
+ cache: bundler
2
4
 
3
5
  gemfile:
4
6
  - Gemfile
@@ -42,6 +44,7 @@ matrix:
42
44
  allow_failures:
43
45
  - rvm: rbx-2
44
46
  - rvm: 1.8.7
47
+ - rvm: 1.9.2
45
48
  - rvm: jruby-18mode
46
49
  - rvm: jruby-head
47
50
  - rvm: ruby-head
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 dash. <4017979>
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
 
@@ -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
@@ -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 = (defined?(JRUBY_VERSION) ? IO : Open4).popen4(*cmd) do |pid, stdin, stdout, stderr|
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
 
@@ -1,3 +1,3 @@
1
1
  module Rubber
2
- VERSION = '2.15.0'.freeze
2
+ VERSION = '2.15.1'.freeze
3
3
  end
@@ -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: standard # type of volume, standard or io1
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 standard volumes.
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: standard
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 #{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
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 #{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
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 %>
@@ -21,6 +21,8 @@ http
21
21
  sendfile on;
22
22
  tcp_nopush on;
23
23
  tcp_nodelay off;
24
+ server_tokens off;
25
+ charset utf-8;
24
26
 
25
27
  gzip on;
26
28
  gzip_http_version 1.0;
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.0
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-10-24 00:00:00.000000000 Z
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.12'
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: '2.6'
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: '0'
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: '1.6'
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