kinetic-ruby 0.6.2 → 0.6.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +12 -1
- data/lib/kinetic_logger.rb +16 -4
- data/lib/kinetic_proto.rb +3 -3
- data/lib/kinetic_server.rb +17 -14
- data/lib/version.rb +1 -1
- data/lib/version.rb.erb +1 -1
- 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: bf1c12357e8d889c3e7076c8215fe84bd29a8973
|
4
|
+
data.tar.gz: 8eb7356990856bfe9a2fd5126c4048a0625d020b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 48a55ccafce38cf772b7950e8ec2e77576063c946e280b8bbd79240f5db4b7c7503c3194ecfb1474625b045e2b94f7e1bed0cc0cb7c325f19a76cff9ff8393f7
|
7
|
+
data.tar.gz: 35b9d71bf84a1ac45f20f04bd865efadcf3e5bb669f7ed46cea940e9e7699281e90cc8d7fc635da04aede050a5536242c68ab0e9941218174b42ed6e7fb16e6e
|
data/Rakefile
CHANGED
@@ -10,7 +10,11 @@ CLEAN.include ['*.gem', '*.log']
|
|
10
10
|
namespace :test do
|
11
11
|
desc "Test Kinetic Ruby server"
|
12
12
|
task :server => 'kinetic:server:start' do
|
13
|
-
|
13
|
+
|
14
|
+
report("Validating server can accept a client connection", true)
|
15
|
+
|
16
|
+
report "Kinetic Ruby server launched!"
|
17
|
+
|
14
18
|
client = Thread.new do
|
15
19
|
addr = $kinetic_server.host + ':' + $kinetic_server.port.to_s
|
16
20
|
report "Connecting test client to #{addr}\n"
|
@@ -19,9 +23,16 @@ namespace :test do
|
|
19
23
|
report "Connected to server!"
|
20
24
|
client.close
|
21
25
|
end
|
26
|
+
|
27
|
+
report "Terminating client connection..."
|
22
28
|
client.join 5.0
|
29
|
+
|
30
|
+
report "Initiating server shutdown..."
|
23
31
|
$kinetic_server.shutdown unless $kinetic_server.nil?
|
24
32
|
$kinetic_server = nil
|
33
|
+
|
34
|
+
report "Shutdown complete!"
|
35
|
+
|
25
36
|
report "Kinetic Ruby server test successful!"
|
26
37
|
end
|
27
38
|
end
|
data/lib/kinetic_logger.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'date'
|
2
|
+
|
1
3
|
module KineticRuby
|
2
4
|
|
3
5
|
class Logger
|
@@ -9,10 +11,11 @@ module KineticRuby
|
|
9
11
|
LOG_LEVEL_VERBOSE = 3,
|
10
12
|
]
|
11
13
|
|
12
|
-
def initialize(log_level=LOG_LEVEL_INFO, stream=$stdout)
|
14
|
+
def initialize(log_level=LOG_LEVEL_INFO, stream=$stdout, enable_timestamp=true)
|
13
15
|
set_level log_level
|
14
16
|
@stream = stream
|
15
17
|
@prefix = ''
|
18
|
+
@timestamp_enabled = enable_timestamp
|
16
19
|
end
|
17
20
|
|
18
21
|
def level=(log_level)
|
@@ -23,6 +26,14 @@ module KineticRuby
|
|
23
26
|
@level.dup
|
24
27
|
end
|
25
28
|
|
29
|
+
def enable_timestamp(enable=true)
|
30
|
+
@timestamp_enabled = enable
|
31
|
+
end
|
32
|
+
|
33
|
+
def timestamp_enabled
|
34
|
+
@timestamp_enabled
|
35
|
+
end
|
36
|
+
|
26
37
|
def prefix=(msg)
|
27
38
|
@prefix = msg if msg
|
28
39
|
end
|
@@ -66,9 +77,10 @@ module KineticRuby
|
|
66
77
|
end
|
67
78
|
|
68
79
|
def log_message(msg, banner)
|
69
|
-
|
70
|
-
|
71
|
-
@stream.puts msg
|
80
|
+
now = '[' + DateTime.now.to_s + '] '
|
81
|
+
timestamp = @timestamp_enabled ? now : '[N/A]'
|
82
|
+
@stream.puts(timestamp + @prefix + msg) if (msg)
|
83
|
+
@stream.puts(timestamp + @prefix + ('-'*40)) if (banner && msg)
|
72
84
|
@stream.flush
|
73
85
|
end
|
74
86
|
|
data/lib/kinetic_proto.rb
CHANGED
@@ -23,7 +23,7 @@ module KineticRuby
|
|
23
23
|
logger.prefix = logger.prefix + add_prefix
|
24
24
|
logger.log 'message:'
|
25
25
|
logger.prefix = logger.prefix + ' '
|
26
|
-
self.to_yaml(msg).each_line{|line| logger.log(line) }
|
26
|
+
self.to_yaml(msg).each_line{|line| logger.log(line.rstrip) }
|
27
27
|
logger.prefix = orig_prefix
|
28
28
|
logger.log
|
29
29
|
end
|
@@ -75,14 +75,14 @@ module KineticRuby
|
|
75
75
|
@logger.log_verbose " #{pb.hmac}"
|
76
76
|
|
77
77
|
@logger.log ' command:'
|
78
|
-
pb.command.to_yaml.each_line{|l| @logger.log(" #{l}")}
|
78
|
+
pb.command.to_yaml.each_line{|l| @logger.log(" #{l.rstrip}")}
|
79
79
|
@logger.log ' encoded:'
|
80
80
|
@logger.log ' Length: ' + encoded.length.to_s + ' bytes'
|
81
81
|
|
82
82
|
@logger.log_verbose " Raw:"
|
83
83
|
@logger.log_verbose " #{encoded.inspect}"
|
84
84
|
@logger.log_verbose " Content:"
|
85
|
-
encoded.to_yaml.each_line{|line| @logger.log_verbose " #{line}"}
|
85
|
+
encoded.to_yaml.each_line{|line| @logger.log_verbose " #{line.rstrip}"}
|
86
86
|
|
87
87
|
@logger.log
|
88
88
|
|
data/lib/kinetic_server.rb
CHANGED
@@ -190,7 +190,7 @@ module KineticRuby
|
|
190
190
|
request = ''
|
191
191
|
pdu = nil
|
192
192
|
connected = true
|
193
|
-
raw_proto =
|
193
|
+
raw_proto = []
|
194
194
|
|
195
195
|
# Process requests while client available
|
196
196
|
while connected && (data = client.receive)
|
@@ -213,39 +213,42 @@ module KineticRuby
|
|
213
213
|
else
|
214
214
|
@logger.log "Waiting on remainder of PDU..."
|
215
215
|
end
|
216
|
-
end
|
217
216
|
|
218
|
-
#
|
219
|
-
|
217
|
+
# Otherwise, handle custom test requests
|
218
|
+
elsif pdu.nil?
|
219
|
+
@logger.logv "Checking for custom request: '#{request}'"
|
220
|
+
|
221
|
+
# Handle raw protobuf.. for tests
|
222
|
+
if !raw_proto.empty? || request.match(/^\n/)
|
220
223
|
@logger.log "Appears to be a standalone protobuf incoming..."
|
221
|
-
pdu = nil
|
222
224
|
raw_proto ||= []
|
223
225
|
raw_proto += request.bytes
|
224
226
|
@logger.log " protobuf: (#{raw_proto.length} bytes)"
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
request_match = request.match(/^read\((\d+)\)/)
|
230
|
-
if request_match
|
227
|
+
request = ''
|
228
|
+
|
229
|
+
# Handle request for read(num_bytes), and respond with num_bytes of dummy data
|
230
|
+
elsif request_match = request.match(/^read\((\d+)\)/)
|
231
231
|
len = request_match[1].to_i
|
232
232
|
response = 'G'*len
|
233
233
|
@logger.log "Responding to 'read(#{len})' w/ '#{response}'"
|
234
234
|
client.send response
|
235
235
|
request = ''
|
236
|
-
|
236
|
+
|
237
|
+
# Handle request for readProto(), and respond with canned Kinetic protobuf
|
237
238
|
elsif request =~ /^readProto()/
|
238
239
|
response = Proto.new(@logger).test_encode
|
239
240
|
@logger.log "Responding to 'read(#{len})' w/ dummy protobuf (#{response.length} bytes)"
|
240
241
|
client.send response
|
241
242
|
request = ''
|
242
|
-
|
243
|
+
|
244
|
+
# Report not enough data yet to make a call...
|
243
245
|
elsif request.match(/^read/) && data.length < 7
|
244
246
|
@logger.log "no command match for request: '#{request}' (...yet)";
|
247
|
+
|
248
|
+
# Otherwise, report unknown request received!
|
245
249
|
else
|
246
250
|
@logger.log "Unknown request! Aborting..."
|
247
251
|
request = ''
|
248
|
-
pdu = nil
|
249
252
|
connected = false
|
250
253
|
end
|
251
254
|
end
|
data/lib/version.rb
CHANGED
data/lib/version.rb.erb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kinetic-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Greg Williams
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-08-
|
11
|
+
date: 2014-08-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|