rubber 2.6.2 → 2.6.3

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: f897442ad924496abcf7f3beeabfb592b0b5c7e9
4
- data.tar.gz: e62e8386658cc1a20a8f32e0efa7113813b0166b
3
+ metadata.gz: ea9c4664c7c0e3bda464394ec4629938c17d3def
4
+ data.tar.gz: 80eb42ae9aa0625382878b683fc4ec6d1f708236
5
5
  SHA512:
6
- metadata.gz: d0dc0cd057ce461ee16d32d12c970c756cc9dd343e4f8e2861e08a1657131cba3777fe4449edcb964a5862caa8c445eca7f4e772bed94e3251290c9324fed2d2
7
- data.tar.gz: 377e5688e2c403a57aee8c29de42057a679d31771f192bea842e46dd5f0d13f69439a29e478da8daacbd97ed45aaf6027fdb22e5ed85984e1fc64fd8f9a2b9dd
6
+ metadata.gz: 38f7bb115c0a64ead7ba2a959bdd5c79ce92ae2239546fbd287b08a8eaf18d6bbac483e4d6ce720b0e065731bb4892df37ee49254b25bfd13f9b775787358e21
7
+ data.tar.gz: 0115c2d6b31efd08592c940265926080231d42d9284efb45e19f57cf09dcf7d8eaa6155f9b222c69c8c47b9e8acc833a1897ca2955cedbacda414784b9f872d9
data/CHANGELOG CHANGED
@@ -1,3 +1,17 @@
1
+ 2.6.3 (11/19/2013)
2
+
3
+ Improvements:
4
+ ============
5
+
6
+ [core] Drastically improved the speed of repeated configuration lookups.
7
+ [core] Fixed a potential issue uploading backups to S3 if the bucket name contains the '.' character. <7ea9f39>
8
+
9
+ Bug Fixes:
10
+ =========
11
+
12
+ [core] Fixed creating EBS volumes (issue #417). <a7d47c5>
13
+
14
+
1
15
  2.6.2 (11/07/2013)
2
16
 
3
17
  Improvements:
@@ -19,7 +33,7 @@ Bug Fixes:
19
33
  =========
20
34
 
21
35
  [base] Fixed unknown method 'known_roles' when running create_staging. <44167c4>
22
- [core] Fixed ip_address deprecation for digital ocean.
36
+ [core] Fixed ip_address deprecation for digital ocean. <62d2e90>
23
37
  [core] Fixed a thread safety issue in Capistrano via a monkey-patch. <f3f9086>
24
38
 
25
39
 
@@ -1,6 +1,9 @@
1
1
  $:.unshift(File.dirname(__FILE__))
2
2
 
3
+ require 'monitor'
4
+
3
5
  module Rubber
6
+ extend MonitorMixin
4
7
 
5
8
  def self.initialize(project_root, project_env)
6
9
  return if defined?(RUBBER_ROOT) && defined?(RUBBER_ENV)
@@ -50,11 +53,23 @@ module Rubber
50
53
  end
51
54
 
52
55
  def self.config
53
- Rubber::Configuration.rubber_env
56
+ unless @config
57
+ synchronize do
58
+ @config ||= Rubber::Configuration.rubber_env
59
+ end
60
+ end
61
+
62
+ @config
54
63
  end
55
64
 
56
65
  def self.instances
57
- Rubber::Configuration.rubber_instances
66
+ unless @instances
67
+ synchronize do
68
+ @instances ||= Rubber::Configuration.rubber_instances
69
+ end
70
+ end
71
+
72
+ @instances
58
73
  end
59
74
 
60
75
  def self.cloud(capistrano = nil)
@@ -16,7 +16,8 @@ module Rubber
16
16
  storage_credentials = {
17
17
  :provider => 'AWS',
18
18
  :aws_access_key_id => env.access_key,
19
- :aws_secret_access_key => env.secret_access_key
19
+ :aws_secret_access_key => env.secret_access_key,
20
+ :path_style => true
20
21
  }
21
22
 
22
23
  @table_store = ::Fog::AWS::SimpleDB.new(compute_credentials)
@@ -16,7 +16,8 @@ module Rubber
16
16
  storage_credentials = {
17
17
  :provider => 'AWS',
18
18
  :aws_access_key_id => env.cloud_providers.aws.access_key,
19
- :aws_secret_access_key => env.cloud_providers.aws.secret_access_key
19
+ :aws_secret_access_key => env.cloud_providers.aws.secret_access_key,
20
+ :path_style => true
20
21
  }
21
22
 
22
23
  storage_credentials[:region] = env.cloud_providers.aws.region
@@ -11,7 +11,8 @@ module Rubber
11
11
  storage_credentials = {
12
12
  :provider => 'AWS',
13
13
  :aws_access_key_id => env.cloud_providers.aws.access_key,
14
- :aws_secret_access_key => env.cloud_providers.aws.secret_access_key
14
+ :aws_secret_access_key => env.cloud_providers.aws.secret_access_key,
15
+ :path_style => true
15
16
  }
16
17
  storage_credentials[:region] = env.cloud_providers.aws.region
17
18
 
@@ -16,7 +16,8 @@ module Rubber
16
16
  storage_credentials = {
17
17
  :provider => 'AWS',
18
18
  :aws_access_key_id => env.cloud_providers.aws.access_key,
19
- :aws_secret_access_key => env.cloud_providers.aws.secret_access_key
19
+ :aws_secret_access_key => env.cloud_providers.aws.secret_access_key,
20
+ :path_style => true
20
21
  }
21
22
 
22
23
  storage_credentials[:region] = env.cloud_providers.aws.region
@@ -21,7 +21,7 @@ module Rubber
21
21
  raise "This convenience method needs Rubber.env to be set" unless Rubber.env
22
22
  cfg = Rubber::Configuration.get_configuration(Rubber.env)
23
23
  host = cfg.environment.current_host
24
- roles = cfg.instance[host].role_names rescue nil
24
+ roles = cfg.instance[host] ? cfg.instance[host].role_names : nil
25
25
  cfg.environment.bind(roles, host)
26
26
  end
27
27
 
@@ -1,6 +1,7 @@
1
1
  require 'yaml'
2
2
  require 'socket'
3
3
  require 'delegate'
4
+ require 'monitor'
4
5
  require 'rubber/encryption'
5
6
 
6
7
 
@@ -120,30 +121,40 @@ module Rubber
120
121
  else
121
122
  value = new
122
123
  end
123
- return value
124
+
125
+ value
124
126
  end
125
127
 
126
128
  class HashValueProxy < Hash
127
- attr_reader :global
129
+ include MonitorMixin
130
+
131
+ attr_reader :global, :cache
128
132
 
129
133
  def initialize(global, receiver)
130
134
  @global = global
135
+ @cache = {}
131
136
  super()
132
137
  replace(receiver)
133
138
  end
134
139
 
135
140
  def rubber_instances
136
- @rubber_instances ||= Rubber::Configuration::rubber_instances
141
+ Rubber.instances
137
142
  end
138
-
143
+
139
144
  def known_roles
140
145
  Rubber::Configuration.get_configuration(Rubber.env).environment.known_roles
141
146
  end
142
147
 
143
148
  def [](name)
144
- value = super(name)
145
- value = global[name] if global && !value
146
- return expand(value)
149
+ unless cache.has_key?(name)
150
+ synchronize do
151
+ value = super(name)
152
+ value = global[name] if global && !value
153
+ cache[name] = expand(value)
154
+ end
155
+ end
156
+
157
+ cache[name]
147
158
  end
148
159
 
149
160
  def each
@@ -159,17 +170,18 @@ module Rubber
159
170
  end
160
171
 
161
172
  def method_missing(method_id)
162
- key = method_id.id2name
163
- return self[key]
173
+ self[method_id.id2name]
164
174
  end
165
175
 
166
176
  def expand_string(val)
167
177
  while val =~ /\#\{[^\}]+\}/
168
178
  val = eval('%Q{' + val + '}', binding, __FILE__)
169
179
  end
180
+
170
181
  val = true if val =="true"
171
182
  val = false if val == "false"
172
- return val
183
+
184
+ val
173
185
  end
174
186
 
175
187
  def expand(value)
@@ -183,7 +195,8 @@ module Rubber
183
195
  else
184
196
  value
185
197
  end
186
- return val
198
+
199
+ val
187
200
  end
188
201
 
189
202
  end
@@ -211,23 +224,26 @@ module Rubber
211
224
  role_overrides = global.delete("roles") || {}
212
225
  env_overrides = global.delete("environments") || {}
213
226
  host_overrides = global.delete("hosts") || {}
227
+
214
228
  Array(roles).each do |role|
215
229
  Array(role_overrides[role]).each do |k, v|
216
230
  global[k] = Environment.combine(global[k], v)
217
231
  end
218
232
  end
233
+
219
234
  Array(env_overrides[env]).each do |k, v|
220
235
  global[k] = Environment.combine(global[k], v)
221
236
  end
237
+
222
238
  Array(host_overrides[host]).each do |k, v|
223
239
  global[k] = Environment.combine(global[k], v)
224
240
  end
225
- return global
241
+
242
+ global
226
243
  end
227
244
 
228
245
  def method_missing(method_id)
229
- key = method_id.id2name
230
- return self[key]
246
+ self[method_id.id2name]
231
247
  end
232
248
 
233
249
  end
@@ -224,7 +224,7 @@ module Rubber
224
224
  end
225
225
 
226
226
  def rubber_instances()
227
- Rubber::Configuration.rubber_instances
227
+ Rubber.instances
228
228
  end
229
229
 
230
230
  end
@@ -132,7 +132,7 @@ namespace :rubber do
132
132
  fi
133
133
  mv /etc/fstab /etc/fstab.bak
134
134
  cat /etc/fstab.bak | grep -v '#{vol_spec['mount']}' > /etc/fstab
135
- if [ #{rubber_env.cloud_provider == 'aws'} && `lsb_release -r -s | sed 's/[.].*//'` -gt "10" ]; then
135
+ if [[ #{rubber_env.cloud_provider == 'aws'} && `lsb_release -r -s | sed 's/[.].*//'` -gt "10" ]]; then
136
136
  device=`echo #{vol_spec['device']} | sed 's/sd/xvd/'`
137
137
  else
138
138
  device='#{vol_spec['device']}'
@@ -1,3 +1,3 @@
1
1
  module Rubber
2
- VERSION = "2.6.2"
2
+ VERSION = "2.6.3"
3
3
  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.6.2
4
+ version: 2.6.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Conway
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-11-08 00:00:00.000000000 Z
12
+ date: 2013-11-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: capistrano