right_support 2.5.1 → 2.5.2
Sign up to get free protection for your applications and to get access to all the features.
@@ -82,8 +82,14 @@ module RightSupport::Config
|
|
82
82
|
# (ArgumentError):: If configuration source can`t be loaded
|
83
83
|
def load(something)
|
84
84
|
return_value = nil
|
85
|
+
error_message = ''
|
85
86
|
@configuration_source = something
|
86
|
-
|
87
|
+
begin
|
88
|
+
return_value = YAMLConfig.read(something)
|
89
|
+
rescue Exception => e
|
90
|
+
error_message = "#{e}"
|
91
|
+
end
|
92
|
+
raise ArgumentError, "Can't coerce #{something.inspect} into YAML/Hash. #{error_message}" unless return_value
|
87
93
|
return_value
|
88
94
|
end
|
89
95
|
|
@@ -49,7 +49,7 @@ module RightSupport::Data
|
|
49
49
|
# === Return
|
50
50
|
# @return [TrueClass|FalseClass] true if clazz is hash-like, false otherwise
|
51
51
|
def self.hash_like?(clazz)
|
52
|
-
clazz.
|
52
|
+
clazz.public_method_defined?('has_key?')
|
53
53
|
end
|
54
54
|
|
55
55
|
# Gets a value from a (deep) hash using a path given as an array of keys.
|
@@ -127,8 +127,15 @@ module RightSupport::DB
|
|
127
127
|
@@config
|
128
128
|
end
|
129
129
|
|
130
|
+
def env_config
|
131
|
+
env = ENV['RACK_ENV']
|
132
|
+
raise MissingConfiguration, "CassandraModel config is missing a '#{ENV['RACK_ENV']}' section" \
|
133
|
+
unless !@@config.nil? && @@config.keys.include?(env) && @@config[env]
|
134
|
+
@@config[env]
|
135
|
+
end
|
136
|
+
|
130
137
|
def config=(value)
|
131
|
-
@@config = value
|
138
|
+
@@config = normalize_config(value) unless value.nil?
|
132
139
|
end
|
133
140
|
|
134
141
|
def logger=(l)
|
@@ -194,9 +201,7 @@ module RightSupport::DB
|
|
194
201
|
def conn()
|
195
202
|
@@connections ||= {}
|
196
203
|
|
197
|
-
|
198
|
-
config = @@config[ENV["RACK_ENV"]]
|
199
|
-
raise MissingConfiguration, "CassandraModel config is missing a '#{ENV['RACK_ENV']}' section" unless config
|
204
|
+
config = env_config
|
200
205
|
|
201
206
|
thrift_client_options = {:timeout => RightSupport::DB::CassandraModel::DEFAULT_TIMEOUT}
|
202
207
|
thrift_client_options.merge!({:protocol => Thrift::BinaryProtocolAccelerated})\
|
@@ -265,7 +270,7 @@ module RightSupport::DB
|
|
265
270
|
columns.merge!(chunk)
|
266
271
|
if chunk.size == opt[:count]
|
267
272
|
# Assume there are more chunks, use last key as start of next get
|
268
|
-
opt[:start] = chunk.keys.last
|
273
|
+
opt[:start] = chunk.keys.sort.last
|
269
274
|
else
|
270
275
|
# This must be the last chunk
|
271
276
|
break
|
@@ -400,7 +405,7 @@ module RightSupport::DB
|
|
400
405
|
end
|
401
406
|
if chunk.size == count
|
402
407
|
# Assume there are more chunks, use last key as start of next get
|
403
|
-
start = chunk.keys.last
|
408
|
+
start = chunk.keys.sort.last
|
404
409
|
else
|
405
410
|
# This must be the last chunk
|
406
411
|
break
|
@@ -493,8 +498,7 @@ module RightSupport::DB
|
|
493
498
|
# === Return
|
494
499
|
# true:: Always return true
|
495
500
|
def reconnect
|
496
|
-
config =
|
497
|
-
raise MissingConfiguration, "CassandraModel config is missing a '#{ENV['RACK_ENV']}' section" unless config
|
501
|
+
config = env_config
|
498
502
|
|
499
503
|
return false if keyspace.nil?
|
500
504
|
|
@@ -516,6 +520,33 @@ module RightSupport::DB
|
|
516
520
|
conn.ring
|
517
521
|
end
|
518
522
|
|
523
|
+
private
|
524
|
+
|
525
|
+
# Massage configuration hash into a standard form.
|
526
|
+
# @return the config hash, with contents normalized
|
527
|
+
def normalize_config(untrasted_config)
|
528
|
+
untrasted_config.each do |env, config|
|
529
|
+
raise MissingConfiguration, "CassandraModel config is broken, a '#{ENV['RACK_ENV']}' missing 'server' option" \
|
530
|
+
unless config.keys.include?('server')
|
531
|
+
server = config['server']
|
532
|
+
|
533
|
+
if server.is_a?(String)
|
534
|
+
# Strip surrounding brackets, in case Ops put a YAML array into an input value
|
535
|
+
if server.start_with?('[') && server.end_with?(']')
|
536
|
+
server = server[1..-2]
|
537
|
+
end
|
538
|
+
|
539
|
+
# Transform comma-separated host lists into an Array
|
540
|
+
if server =~ /,/
|
541
|
+
server = server.split(/\s*,\s*/)
|
542
|
+
end
|
543
|
+
end
|
544
|
+
|
545
|
+
config['server'] = server
|
546
|
+
|
547
|
+
config
|
548
|
+
end
|
549
|
+
end
|
519
550
|
end # self
|
520
551
|
|
521
552
|
attr_accessor :key, :attributes
|
data/right_support.gemspec
CHANGED
@@ -7,8 +7,8 @@ spec = Gem::Specification.new do |s|
|
|
7
7
|
s.required_ruby_version = Gem::Requirement.new(">= 1.8.7")
|
8
8
|
|
9
9
|
s.name = 'right_support'
|
10
|
-
s.version = '2.5.
|
11
|
-
s.date = '2012-09-
|
10
|
+
s.version = '2.5.2'
|
11
|
+
s.date = '2012-09-28'
|
12
12
|
|
13
13
|
s.authors = ['Tony Spataro', 'Sergey Sergyenko', 'Ryan Williamson', 'Lee Kirchhoff', 'Sergey Enin']
|
14
14
|
s.email = 'support@rightscale.com'
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: right_support
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 31
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 5
|
9
|
-
-
|
10
|
-
version: 2.5.
|
9
|
+
- 2
|
10
|
+
version: 2.5.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Tony Spataro
|
@@ -19,7 +19,7 @@ autorequire:
|
|
19
19
|
bindir: bin
|
20
20
|
cert_chain: []
|
21
21
|
|
22
|
-
date: 2012-09-
|
22
|
+
date: 2012-09-28 00:00:00 -07:00
|
23
23
|
default_executable:
|
24
24
|
dependencies: []
|
25
25
|
|