riemann-client 0.2.3 → 0.2.4
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/riemann/client.rb +5 -6
- data/lib/riemann/client/tcp.rb +8 -10
- data/lib/riemann/client/udp.rb +12 -45
- data/lib/riemann/message.rb +4 -5
- data/lib/riemann/version.rb +1 -1
- metadata +21 -13
- checksums.yaml +0 -7
data/lib/riemann/client.rb
CHANGED
@@ -70,18 +70,17 @@ class Riemann::Client
|
|
70
70
|
(response.states || [])
|
71
71
|
end
|
72
72
|
|
73
|
+
def connect
|
74
|
+
# NOTE: connections are made automatically on send
|
75
|
+
warn "Riemann client#connect is deprecated"
|
76
|
+
end
|
77
|
+
|
73
78
|
# Close both UDP and TCP sockets.
|
74
79
|
def close
|
75
80
|
@udp.close
|
76
81
|
@tcp.close
|
77
82
|
end
|
78
83
|
|
79
|
-
# Connect both UDP and TCP sockets.
|
80
|
-
def connect
|
81
|
-
udp.connect
|
82
|
-
tcp.connect
|
83
|
-
end
|
84
|
-
|
85
84
|
def connected?
|
86
85
|
tcp.connected? and udp.connected?
|
87
86
|
end
|
data/lib/riemann/client/tcp.rb
CHANGED
@@ -28,9 +28,7 @@ module Riemann
|
|
28
28
|
close
|
29
29
|
end
|
30
30
|
|
31
|
-
|
32
|
-
return @socket
|
33
|
-
end
|
31
|
+
return @socket if connected?
|
34
32
|
|
35
33
|
@socket = self.class.socket_factory.call(@options)
|
36
34
|
@pid = Process.pid
|
@@ -41,15 +39,15 @@ module Riemann
|
|
41
39
|
|
42
40
|
def close
|
43
41
|
@locket.synchronize do
|
44
|
-
|
45
|
-
@socket.close
|
46
|
-
end
|
42
|
+
@socket.close if connected?
|
47
43
|
@socket = nil
|
48
44
|
end
|
49
45
|
end
|
50
46
|
|
51
47
|
def connected?
|
52
|
-
|
48
|
+
@locket.synchronize do
|
49
|
+
!@socket.nil? && !@socket.closed?
|
50
|
+
end
|
53
51
|
end
|
54
52
|
|
55
53
|
# Read a message from a stream
|
@@ -63,12 +61,12 @@ module Riemann
|
|
63
61
|
puts "Message was #{str.inspect}"
|
64
62
|
raise
|
65
63
|
end
|
66
|
-
|
64
|
+
|
67
65
|
unless message.ok
|
68
66
|
puts "Failed"
|
69
67
|
raise ServerError, message.error
|
70
68
|
end
|
71
|
-
|
69
|
+
|
72
70
|
message
|
73
71
|
else
|
74
72
|
raise InvalidResponse, "unexpected EOF"
|
@@ -87,7 +85,7 @@ module Riemann
|
|
87
85
|
# Yields a connection in the block.
|
88
86
|
def with_connection
|
89
87
|
tries = 0
|
90
|
-
|
88
|
+
|
91
89
|
@locket.synchronize do
|
92
90
|
begin
|
93
91
|
tries += 1
|
data/lib/riemann/client/udp.rb
CHANGED
@@ -3,27 +3,26 @@ module Riemann
|
|
3
3
|
class UDP < Client
|
4
4
|
MAX_SIZE = 16384
|
5
5
|
|
6
|
-
attr_accessor :host, :port, :
|
6
|
+
attr_accessor :host, :port, :max_size
|
7
7
|
|
8
8
|
def initialize(opts = {})
|
9
|
-
@host
|
10
|
-
@port
|
9
|
+
@host = opts[:host] || HOST
|
10
|
+
@port = opts[:port] || PORT
|
11
11
|
@max_size = opts[:max_size] || MAX_SIZE
|
12
|
-
@locket = Mutex.new
|
13
12
|
end
|
14
13
|
|
15
|
-
def
|
14
|
+
def socket
|
15
|
+
return @socket if connected?
|
16
16
|
@socket = UDPSocket.new
|
17
17
|
end
|
18
18
|
|
19
19
|
def close
|
20
|
-
@
|
21
|
-
|
22
|
-
end
|
20
|
+
@socket.close if connected?
|
21
|
+
@socket = nil
|
23
22
|
end
|
24
23
|
|
25
24
|
def connected?
|
26
|
-
|
25
|
+
@socket && !@socket.closed?
|
27
26
|
end
|
28
27
|
|
29
28
|
# Read a message from a stream
|
@@ -36,42 +35,10 @@ module Riemann
|
|
36
35
|
end
|
37
36
|
|
38
37
|
def send_maybe_recv(message)
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
end
|
44
|
-
|
45
|
-
s.send(x, 0, @host, @port)
|
46
|
-
nil
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
# Yields a connection in the block.
|
51
|
-
def with_connection
|
52
|
-
tries = 0
|
53
|
-
|
54
|
-
@locket.synchronize do
|
55
|
-
begin
|
56
|
-
tries += 1
|
57
|
-
yield(@socket || connect)
|
58
|
-
rescue IOError => e
|
59
|
-
raise if tries > 3
|
60
|
-
connect and retry
|
61
|
-
rescue Errno::EPIPE => e
|
62
|
-
raise if tries > 3
|
63
|
-
connect and retry
|
64
|
-
rescue Errno::ECONNREFUSED => e
|
65
|
-
raise if tries > 3
|
66
|
-
connect and retry
|
67
|
-
rescue Errno::ECONNRESET => e
|
68
|
-
raise if tries > 3
|
69
|
-
connect and retry
|
70
|
-
rescue InvalidResponse => e
|
71
|
-
raise if tries > 3
|
72
|
-
connect and retry
|
73
|
-
end
|
74
|
-
end
|
38
|
+
encoded_string = message.encode.to_s
|
39
|
+
raise TooBig unless encoded_string.length < @max_size
|
40
|
+
socket.send(encoded_string, 0, @host, @port)
|
41
|
+
nil
|
75
42
|
end
|
76
43
|
end
|
77
44
|
end
|
data/lib/riemann/message.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Riemann
|
2
2
|
class Message
|
3
3
|
include Beefcake::Message
|
4
|
-
|
4
|
+
|
5
5
|
optional :ok, :bool, 2
|
6
6
|
optional :error, :string, 3
|
7
7
|
repeated :states, State, 4
|
@@ -9,9 +9,8 @@ module Riemann
|
|
9
9
|
repeated :events, Event, 6
|
10
10
|
|
11
11
|
def encode_with_length
|
12
|
-
|
13
|
-
|
14
|
-
"#{[encoded.length].pack('N')}#{encoded}"
|
12
|
+
encoded_string = encode.to_s
|
13
|
+
[encoded_string.length].pack('N') << encoded_string
|
15
14
|
end
|
16
|
-
end
|
15
|
+
end
|
17
16
|
end
|
data/lib/riemann/version.rb
CHANGED
metadata
CHANGED
@@ -1,55 +1,62 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: riemann-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Kyle Kingsbury
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2015-02-03 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: beefcake
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
|
-
- - '>='
|
19
|
+
- - ! '>='
|
18
20
|
- !ruby/object:Gem::Version
|
19
21
|
version: 0.3.5
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
|
-
- - '>='
|
27
|
+
- - ! '>='
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: 0.3.5
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: trollop
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
|
-
- - '>='
|
35
|
+
- - ! '>='
|
32
36
|
- !ruby/object:Gem::Version
|
33
37
|
version: 1.16.2
|
34
38
|
type: :runtime
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
|
-
- - '>='
|
43
|
+
- - ! '>='
|
39
44
|
- !ruby/object:Gem::Version
|
40
45
|
version: 1.16.2
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
47
|
name: mtrc
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
44
50
|
requirements:
|
45
|
-
- - '>='
|
51
|
+
- - ! '>='
|
46
52
|
- !ruby/object:Gem::Version
|
47
53
|
version: 0.0.4
|
48
54
|
type: :runtime
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
51
58
|
requirements:
|
52
|
-
- - '>='
|
59
|
+
- - ! '>='
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: 0.0.4
|
55
62
|
description:
|
@@ -75,25 +82,26 @@ files:
|
|
75
82
|
- README.markdown
|
76
83
|
homepage: https://github.com/aphyr/riemann-ruby-client
|
77
84
|
licenses: []
|
78
|
-
metadata: {}
|
79
85
|
post_install_message:
|
80
86
|
rdoc_options: []
|
81
87
|
require_paths:
|
82
88
|
- lib
|
83
89
|
required_ruby_version: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
84
91
|
requirements:
|
85
|
-
- - '>='
|
92
|
+
- - ! '>='
|
86
93
|
- !ruby/object:Gem::Version
|
87
94
|
version: 1.8.7
|
88
95
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
|
+
none: false
|
89
97
|
requirements:
|
90
|
-
- - '>='
|
98
|
+
- - ! '>='
|
91
99
|
- !ruby/object:Gem::Version
|
92
100
|
version: '0'
|
93
101
|
requirements: []
|
94
102
|
rubyforge_project: riemann-client
|
95
|
-
rubygems_version:
|
103
|
+
rubygems_version: 1.8.25
|
96
104
|
signing_key:
|
97
|
-
specification_version:
|
105
|
+
specification_version: 3
|
98
106
|
summary: Client for the distributed event system Riemann.
|
99
107
|
test_files: []
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 971fad804164c0db71b3e689d9b866ad89a20e41
|
4
|
-
data.tar.gz: 1e7f35daae4ab58fa8018225959da905bfd5f77b
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 904df6b31de7feda767274d2a776040287d2b3849280257abd5b167171adf990812b5deabfdde8a48a220b329564476c93a844bb195a11655736578784c84a3c
|
7
|
-
data.tar.gz: 3ccaa03c50e24502eee6e9e440279a1d5989b776f70ad04536654e3c887c3f14fb841502593fb84d3dbd9256749a7babb6870d4a7f4f9eb1c259f23f39b5e14f
|