right_support 1.3.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -119,7 +119,7 @@ module RightSupport::DB
119
119
  DEFAULT_TIMEOUT = 10
120
120
 
121
121
  # Default maximum number of rows to retrieve in one chunk
122
- DEFAULT_COUNT = 1000
122
+ DEFAULT_COUNT = 100
123
123
 
124
124
  # Wrappers for Cassandra client
125
125
  class << self
@@ -223,7 +223,6 @@ module RightSupport::DB
223
223
  do_op(:get, column_family, k, opt)
224
224
  else
225
225
  opt = opt.clone
226
- opt[:start] ||= ""
227
226
  opt[:count] = DEFAULT_COUNT
228
227
  columns = Cassandra::OrderedHash.new
229
228
  while true
@@ -31,7 +31,8 @@ module RightSupport::Net::Balancing
31
31
  DEFAULT_YELLOW_STATES = 4
32
32
  DEFAULT_RESET_TIME = 300
33
33
 
34
- def initialize(endpoints, yellow_states=nil, reset_time=nil, on_health_change=nil)
34
+ def initialize(policy, endpoints, yellow_states=nil, reset_time=nil, on_health_change=nil)
35
+ @policy = policy
35
36
  @endpoints = Hash.new
36
37
  @yellow_states = yellow_states || DEFAULT_YELLOW_STATES
37
38
  @reset_time = reset_time || DEFAULT_RESET_TIME
@@ -60,6 +61,7 @@ module RightSupport::Net::Balancing
60
61
  def update_state(endpoint, change, t1)
61
62
  @endpoints[endpoint][:timestamp] = t1
62
63
  n_level = @endpoints[endpoint][:n_level] += change
64
+ logger.info("RequestBalancer: Health of endpoint '#{endpoint}' #{change < 0 ? 'improved' : 'worsened'} to '#{state_color(n_level)}'")
63
65
  if @on_health_change &&
64
66
  (n_level < @min_n_level ||
65
67
  (n_level > @min_n_level && n_level == @endpoints.map { |(k, v)| v[:n_level] }.min))
@@ -88,6 +90,10 @@ module RightSupport::Net::Balancing
88
90
  endpoints.each { |ep| @endpoints[ep] = {:n_level => @min_n_level, :timestamp => 0} }
89
91
  end
90
92
 
93
+ # Return the logger that our surrounding policy uses
94
+ def logger
95
+ @policy.logger
96
+ end
91
97
  end
92
98
  # has several levels (@yellow_states) to determine the health of the endpoint. The
93
99
  # balancer works by avoiding "red" endpoints and retrying them after awhile. Here is a
@@ -110,6 +116,7 @@ module RightSupport::Net::Balancing
110
116
  # transitions from red to yellow, and so on.
111
117
 
112
118
  class HealthCheck
119
+ include RightSupport::Log::Mixin
113
120
 
114
121
  def initialize(options = {})
115
122
  @options = options
@@ -122,7 +129,7 @@ module RightSupport::Net::Balancing
122
129
  @health_check = @options.delete(:health_check)
123
130
  @counter = rand(0xffff) % endpoints.size
124
131
  @last_size = endpoints.size
125
- @stack = EndpointsStack.new(endpoints, @options[:yellow_states], @options[:reset_time], @options[:on_health_change])
132
+ @stack = EndpointsStack.new(self, endpoints, @options[:yellow_states], @options[:reset_time], @options[:on_health_change])
126
133
  end
127
134
  end
128
135
 
@@ -65,6 +65,7 @@ module RightSupport::Validation
65
65
  alg = pem_key?(key_material)
66
66
  return false unless alg
67
67
  key = alg.new(key_material, passphrase || 'dummy passphrase, should never work')
68
+ key.to_der #make sure it's valid in addition to being well formed
68
69
  return key.private?
69
70
  rescue ::OpenSSL::PKey::PKeyError, NotImplementedError
70
71
  return false
@@ -82,6 +83,7 @@ module RightSupport::Validation
82
83
  alg = pem_key?(key_material)
83
84
  return false unless alg
84
85
  key = alg.new(key_material)
86
+ key.to_der #make sure it's valid in addition to being well formed
85
87
  return key.public?
86
88
  rescue ::OpenSSL::PKey::PKeyError, NotImplementedError
87
89
  return false
@@ -60,7 +60,8 @@ if_require_succeeds('net/ssh') do
60
60
  # If the key is well-formed and valid, return true. Otherwise, return false.
61
61
  def ssh_public_key?(key_material)
62
62
  return false if key_material.nil? || key_material.empty?
63
- ::Net::SSH::KeyFactory.load_data_public_key(key_material)
63
+ key = ::Net::SSH::KeyFactory.load_data_public_key(key_material)
64
+ key.to_der #make sure it's valid in addition to being well formed
64
65
  return true
65
66
  rescue ::Net::SSH::Exception, ::OpenSSL::PKey::PKeyError, NotImplementedError
66
67
  return false
@@ -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 = '1.3.0'
11
- s.date = '2012-03-06'
10
+ s.version = '1.3.1'
11
+ s.date = '2012-03-14'
12
12
 
13
13
  s.authors = ['Tony Spataro', 'Sergey Sergyenko', 'Ryan Williamson', 'Lee Kirchhoff']
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: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 3
9
- - 0
10
- version: 1.3.0
9
+ - 1
10
+ version: 1.3.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Tony Spataro
@@ -18,7 +18,7 @@ autorequire:
18
18
  bindir: bin
19
19
  cert_chain: []
20
20
 
21
- date: 2012-03-06 00:00:00 -08:00
21
+ date: 2012-03-14 00:00:00 -07:00
22
22
  default_executable:
23
23
  dependencies: []
24
24