rubber 2.6.2 → 2.6.3

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