livestatus 0.2.0 → 0.2.1

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.
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.