right_support 2.9.1 → 2.9.2
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 +4 -4
- data/Gemfile.lock +4 -1
- data/VERSION +1 -1
- data/lib/right_support/log/system_logger.rb +38 -14
- data/right_support.gemspec +3 -3
- data/spec/log/system_logger_spec.rb +27 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e2215ed9e7706511edfcd6ea56abf45486749d9d
|
4
|
+
data.tar.gz: 15fac74e4fcb14b20b32f4de9a6087388bf3310b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0bae6ef9d208192d1a73104c5f1178895ea3b27b09cbc09f84f017d2849c0f66a8b2c81959c52a3d7f0988575b77be9cd2065b2a3ab4d770852da45c9229de29
|
7
|
+
data.tar.gz: 4de8efb3cfd6d0c76c16875749fb681a3909c6ee6f6bf5fb1d3f7399c02039bdccfa547ea2460cbf824bc26ba6a99be51288ac609c7e2177e5ffa37590a70eea
|
data/Gemfile.lock
CHANGED
@@ -93,7 +93,7 @@ GEM
|
|
93
93
|
right_git (1.0.1)
|
94
94
|
right_support (>= 2.8.10)
|
95
95
|
right_http_connection (1.5.0)
|
96
|
-
right_support (2.
|
96
|
+
right_support (2.9.1)
|
97
97
|
rspec (2.13.0)
|
98
98
|
rspec-core (~> 2.13.0)
|
99
99
|
rspec-expectations (~> 2.13.0)
|
@@ -148,3 +148,6 @@ DEPENDENCIES
|
|
148
148
|
simple_uuid (~> 0.2)
|
149
149
|
uuid (~> 2.3)
|
150
150
|
uuidtools (~> 2.0)
|
151
|
+
|
152
|
+
BUNDLED WITH
|
153
|
+
1.10.6
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.9.
|
1
|
+
2.9.2
|
@@ -137,25 +137,26 @@ module RightSupport::Log
|
|
137
137
|
end
|
138
138
|
end
|
139
139
|
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
require ::File.expand_path('../syslog/remote', __FILE__)
|
145
|
-
syslogger = ::RightSupport::Log::Syslog::Remote.new(
|
146
|
-
@options[:connection],
|
147
|
-
program_name,
|
148
|
-
facility,
|
149
|
-
:error_handler => @options[:error_handler])
|
150
|
-
syslogger.connect
|
151
|
-
@@syslog = syslogger
|
152
|
-
end
|
140
|
+
# connect
|
141
|
+
@@program_name = program_name
|
142
|
+
@@facility = facility
|
143
|
+
establish_connection
|
153
144
|
end
|
154
|
-
@@program_name = program_name
|
155
145
|
end
|
156
146
|
@@syslog.info("Connected to syslog: #{@options[:connection].inspect}")
|
157
147
|
end
|
158
148
|
|
149
|
+
# Reconnects using the established connection details. This is useful to
|
150
|
+
# ensure the rainbows child processes show their own PID, etc.
|
151
|
+
#
|
152
|
+
# @return [TrueClass] always true
|
153
|
+
def reconnect
|
154
|
+
@@mutex.synchronize do
|
155
|
+
establish_connection
|
156
|
+
end
|
157
|
+
true
|
158
|
+
end
|
159
|
+
|
159
160
|
# Log a message if the given severity is high enough. This is the generic
|
160
161
|
# logging method. Users will be more inclined to use #debug, #info, #warn,
|
161
162
|
# #error, and #fatal.
|
@@ -217,6 +218,29 @@ module RightSupport::Log
|
|
217
218
|
|
218
219
|
private
|
219
220
|
|
221
|
+
# (re)establishes connection and sets the class constant for logger.
|
222
|
+
def establish_connection
|
223
|
+
case @options[:connection]
|
224
|
+
when :local
|
225
|
+
if @@syslog
|
226
|
+
@@syslog.reopen(@@program_name, nil, @@facility)
|
227
|
+
else
|
228
|
+
@@syslog = ::Syslog.open(@@program_name, nil, @@facility)
|
229
|
+
end
|
230
|
+
else
|
231
|
+
require ::File.expand_path('../syslog/remote', __FILE__)
|
232
|
+
syslogger = ::RightSupport::Log::Syslog::Remote.new(
|
233
|
+
@options[:connection],
|
234
|
+
@@program_name,
|
235
|
+
@@facility,
|
236
|
+
:error_handler => @options[:error_handler])
|
237
|
+
syslogger.connect
|
238
|
+
@@syslog.close if @@syslog
|
239
|
+
@@syslog = syslogger
|
240
|
+
end
|
241
|
+
true
|
242
|
+
end
|
243
|
+
|
220
244
|
# Call the syslog function to emit a syslog entry.
|
221
245
|
#
|
222
246
|
# === Parameters
|
data/right_support.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: right_support 2.9.
|
5
|
+
# stub: right_support 2.9.2 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "right_support"
|
9
|
-
s.version = "2.9.
|
9
|
+
s.version = "2.9.2"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Tony Spataro", "Sergey Sergyenko", "Ryan Williamson", "Lee Kirchhoff", "Alexey Karpik", "Scott Messier"]
|
14
|
-
s.date = "2015-09
|
14
|
+
s.date = "2015-10-09"
|
15
15
|
s.description = "A toolkit of useful, reusable foundation code created by RightScale."
|
16
16
|
s.email = "support@rightscale.com"
|
17
17
|
s.extra_rdoc_files = [
|
@@ -139,6 +139,33 @@ describe 'RightSupport::Log::SystemLogger' do
|
|
139
139
|
# example: "<134> Sep 23 13:45:42 ubuntu spec[3891]: Connected to syslog: \"tcp://localhost:2345\"\n"
|
140
140
|
regex = /^<134> \w+ \d+ \d+:\d+:\d+ .+ spec\[\d+\]: Connected to syslog: \"tcp:\/\/localhost:2345\"$/
|
141
141
|
data.chomp.should match(regex)
|
142
|
+
|
143
|
+
# attempt to reconnect to closed server.
|
144
|
+
server.close
|
145
|
+
server = nil
|
146
|
+
data = nil
|
147
|
+
::Thread.start do
|
148
|
+
sleep 1 # should cause 1-2 reconnect error(s) to appear in STDERR
|
149
|
+
server = ::TCPServer.new(2345)
|
150
|
+
client = server.accept
|
151
|
+
data = client.readline
|
152
|
+
client.close
|
153
|
+
server.close
|
154
|
+
server = nil
|
155
|
+
end
|
156
|
+
|
157
|
+
# explicitly reconnect and send with delayed server restart. reconnection
|
158
|
+
# happens automagically (only for remote) but explicit reconnection will
|
159
|
+
# reestablish the PID, etc., which is useful for forking.
|
160
|
+
logger.reconnect
|
161
|
+
logger.debug("Hello syslog")
|
162
|
+
stop_time = ::Time.now + 3
|
163
|
+
while data.nil?
|
164
|
+
sleep(0.1)
|
165
|
+
fail 'Did not receive expected data' if ::Time.now >= stop_time
|
166
|
+
end
|
167
|
+
regex = /^<135> \w+ \d+ \d+:\d+:\d+ .+ spec\[\d+\]: Hello syslog$/
|
168
|
+
data.chomp.should match(regex)
|
142
169
|
end
|
143
170
|
end
|
144
171
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: right_support
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.9.
|
4
|
+
version: 2.9.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tony Spataro
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2015-09
|
16
|
+
date: 2015-10-09 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: rake
|