livestatus 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/config.ru CHANGED
@@ -1,2 +1,3 @@
1
1
  require 'livestatus/api'
2
+ $0 = "livestatusd"
2
3
  run Livestatus::API
@@ -17,13 +17,20 @@ module Livestatus
17
17
  headers = parse_headers(request.env)
18
18
 
19
19
  halt 400, 'no query specified' unless headers.include?(:query)
20
- method, model = headers.delete(:query).split
20
+ method, query = headers.delete(:query).split
21
21
 
22
22
  halt 400, 'invalid method' unless ['GET', 'COMMAND'].include?(method)
23
23
  method = method.downcase.to_sym
24
24
 
25
25
  c = Livestatus::Connection.new(:uri => 'unix:///var/nagios/rw/live')
26
- Yajl::Encoder.encode(c.handler.send(method, model, headers))
26
+
27
+ case method
28
+ when :get
29
+ Yajl::Encoder.encode(c.get(query, headers))
30
+ when :command
31
+ c.command(query)
32
+ Yajl::Encoder.encode(c.command(query))
33
+ end
27
34
  end
28
35
  end
29
36
  end
@@ -31,16 +31,22 @@ module Livestatus
31
31
  headers = headers.map { |k,v| "#{k.to_s.camelize}: #{v}" }.join("\n")
32
32
  headers += "\n" unless headers.empty?
33
33
 
34
- @socket.write("#{method.to_s.upcase} #{query}\n#{headers}\n")
34
+ case method
35
+ when :get
36
+ @socket.write("#{method.to_s.upcase} #{query}\n#{headers}\n")
35
37
 
36
- res = @socket.read(16)
37
- status, length = res[0..2].to_i, res[4..14].chomp.to_i
38
+ res = @socket.read(16)
39
+ status, length = res[0..2].to_i, res[4..14].chomp.to_i
38
40
 
39
- unless status == 200
40
- raise HandlerException, "livestatus query failed with status #{status}"
41
- end
41
+ unless status == 200
42
+ raise HandlerException, "livestatus query failed with status #{status}"
43
+ end
42
44
 
43
- Yajl::Parser.new.parse(@socket.read(length))
45
+ Yajl::Parser.new.parse(@socket.read(length))
46
+ when :command
47
+ @socket.write("#{method.to_s.upcase} #{query}\n\n")
48
+ nil
49
+ end
44
50
  end
45
51
 
46
52
  private
@@ -1,3 +1,3 @@
1
1
  module Livestatus
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
metadata CHANGED
@@ -1,8 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: livestatus
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 21
4
5
  prerelease:
5
- version: 0.2.0
6
+ segments:
7
+ - 0
8
+ - 2
9
+ - 1
10
+ version: 0.2.1
6
11
  platform: ruby
7
12
  authors:
8
13
  - "Benedikt B\xC3\xB6hm"
@@ -10,8 +15,7 @@ autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
17
 
13
- date: 2011-11-23 00:00:00 +01:00
14
- default_executable:
18
+ date: 2011-11-23 00:00:00 Z
15
19
  dependencies:
16
20
  - !ruby/object:Gem::Dependency
17
21
  name: activesupport
@@ -21,6 +25,9 @@ dependencies:
21
25
  requirements:
22
26
  - - ">="
23
27
  - !ruby/object:Gem::Version
28
+ hash: 3
29
+ segments:
30
+ - 0
24
31
  version: "0"
25
32
  type: :runtime
26
33
  version_requirements: *id001
@@ -32,6 +39,9 @@ dependencies:
32
39
  requirements:
33
40
  - - ">="
34
41
  - !ruby/object:Gem::Version
42
+ hash: 3
43
+ segments:
44
+ - 0
35
45
  version: "0"
36
46
  type: :runtime
37
47
  version_requirements: *id002
@@ -43,6 +53,9 @@ dependencies:
43
53
  requirements:
44
54
  - - ">="
45
55
  - !ruby/object:Gem::Version
56
+ hash: 3
57
+ segments:
58
+ - 0
46
59
  version: "0"
47
60
  type: :runtime
48
61
  version_requirements: *id003
@@ -54,6 +67,9 @@ dependencies:
54
67
  requirements:
55
68
  - - ">="
56
69
  - !ruby/object:Gem::Version
70
+ hash: 3
71
+ segments:
72
+ - 0
57
73
  version: "0"
58
74
  type: :runtime
59
75
  version_requirements: *id004
@@ -96,7 +112,6 @@ files:
96
112
  - lib/livestatus/models/timeperiod.rb
97
113
  - lib/livestatus/version.rb
98
114
  - livestatus.gemspec
99
- has_rdoc: true
100
115
  homepage: https://github.com/zenops/livestatus
101
116
  licenses: []
102
117
 
@@ -110,17 +125,23 @@ required_ruby_version: !ruby/object:Gem::Requirement
110
125
  requirements:
111
126
  - - ">="
112
127
  - !ruby/object:Gem::Version
128
+ hash: 3
129
+ segments:
130
+ - 0
113
131
  version: "0"
114
132
  required_rubygems_version: !ruby/object:Gem::Requirement
115
133
  none: false
116
134
  requirements:
117
135
  - - ">="
118
136
  - !ruby/object:Gem::Version
137
+ hash: 3
138
+ segments:
139
+ - 0
119
140
  version: "0"
120
141
  requirements: []
121
142
 
122
143
  rubyforge_project:
123
- rubygems_version: 1.6.2
144
+ rubygems_version: 1.8.10
124
145
  signing_key:
125
146
  specification_version: 3
126
147
  summary: Livestatus is a simple Ruby library to control Nagios via MK Livestatus.