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 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