nagios_parser 1.2.1 → 1.2.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.
- data/.travis.yml +6 -0
- data/CHANGES.md +9 -6
- data/README.md +2 -0
- data/Rakefile +2 -0
- data/lib/nagios_parser/object/parser.rb +2 -1
- data/lib/nagios_parser/object/parser.y +2 -1
- data/lib/nagios_parser/version.rb +1 -1
- data/spec/github_issues_spec.rb +28 -0
- data/spec/nagios_parser/status/parser_spec.rb +10 -0
- metadata +9 -5
data/.travis.yml
ADDED
data/CHANGES.md
CHANGED
@@ -1,11 +1,14 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
nagios\_parser - ChangeLog
|
2
|
+
==========================
|
3
3
|
|
4
|
-
# 1.2.
|
4
|
+
# 1.2.2 (2011-10-22)
|
5
|
+
* Unbreak on Ruby 1.9.x.
|
6
|
+
|
7
|
+
# 1.2.1 (2011-06-22)
|
5
8
|
* Apply original diff from Mitsuru to strip comments.
|
6
9
|
This catches more inline comments.
|
7
10
|
|
8
|
-
# 1.2.0
|
11
|
+
# 1.2.0 (2011-06-20)
|
9
12
|
* Add NagiosParser::Resource parser to parse Nagios resource
|
10
13
|
macro files.
|
11
14
|
* Add NagiosParser::Config parser to parse the Nagios main
|
@@ -13,9 +16,9 @@ nagios_parser - ChangeLog
|
|
13
16
|
* Ignore inline comments starting with ';' in the object
|
14
17
|
configuration files.
|
15
18
|
|
16
|
-
# 1.1.0
|
19
|
+
# 1.1.0 (2011-01-09)
|
17
20
|
* Remove hardcoded status types to make the parser less strict.
|
18
21
|
* More Nagios 2.x/3.x status types. (mariussturm)
|
19
22
|
|
20
|
-
# 1.0.0
|
23
|
+
# 1.0.0 (2010-12-16)
|
21
24
|
* Initial release
|
data/README.md
CHANGED
data/Rakefile
CHANGED
@@ -32,6 +32,7 @@ def create_token(string)
|
|
32
32
|
when scanner.scan(/#[^\n]*/)
|
33
33
|
# ignore comments
|
34
34
|
when scanner.scan(/.*;[^\n]*/)
|
35
|
+
# ignore inline comments
|
35
36
|
r = scanner.matched.sub(/(.*);[^\n]*/, '\1')
|
36
37
|
scanner.string = r + scanner.rest
|
37
38
|
scanner.reset
|
@@ -51,7 +52,7 @@ def create_token(string)
|
|
51
52
|
result << [:VALUE, match.to_i]
|
52
53
|
when (inside and match = scanner.scan(/[^\n\}]+/))
|
53
54
|
# Make sure to ignore inline comments starting with ';'.
|
54
|
-
result << [:VALUE, match.
|
55
|
+
result << [:VALUE, match.gsub(/\s+$/, '')]
|
55
56
|
else
|
56
57
|
raise "Can't tokenize <#{scanner.peek(10)}>"
|
57
58
|
end
|
@@ -50,6 +50,7 @@ def create_token(string)
|
|
50
50
|
when scanner.scan(/#[^\n]*/)
|
51
51
|
# ignore comments
|
52
52
|
when scanner.scan(/.*;[^\n]*/)
|
53
|
+
# ignore inline comments
|
53
54
|
r = scanner.matched.sub(/(.*);[^\n]*/, '\1')
|
54
55
|
scanner.string = r + scanner.rest
|
55
56
|
scanner.reset
|
@@ -69,7 +70,7 @@ def create_token(string)
|
|
69
70
|
result << [:VALUE, match.to_i]
|
70
71
|
when (inside and match = scanner.scan(/[^\n\}]+/))
|
71
72
|
# Make sure to ignore inline comments starting with ';'.
|
72
|
-
result << [:VALUE, match.
|
73
|
+
result << [:VALUE, match.gsub(/\s+$/, '')]
|
73
74
|
else
|
74
75
|
raise "Can't tokenize <#{scanner.peek(10)}>"
|
75
76
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'nagios_parser/object/parser'
|
3
|
+
|
4
|
+
describe "Github issues" do
|
5
|
+
describe "#3" do
|
6
|
+
it "can parse the user provided object config" do
|
7
|
+
object = <<-__OBJ
|
8
|
+
define host{
|
9
|
+
use switch
|
10
|
+
host_name Foo-ibb
|
11
|
+
alias Foo iBootBar
|
12
|
+
address 10.3.1.20
|
13
|
+
hostgroups iboots,Foo
|
14
|
+
parents Foo-modem
|
15
|
+
}
|
16
|
+
__OBJ
|
17
|
+
|
18
|
+
out = NagiosParser::Object::Parser.parse(object)
|
19
|
+
host = out['host'].first
|
20
|
+
host['use'].should == 'switch'
|
21
|
+
host['host_name'].should == 'Foo-ibb'
|
22
|
+
host['alias'].should == 'Foo iBootBar'
|
23
|
+
host['address'].should == '10.3.1.20'
|
24
|
+
host['hostgroups'].should == 'iboots,Foo'
|
25
|
+
host['parents'].should == 'Foo-modem'
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -24,6 +24,11 @@ describe NagiosParser::Status::Parser do
|
|
24
24
|
}
|
25
25
|
info { version=3.2.0 }
|
26
26
|
|
27
|
+
servicestatus {
|
28
|
+
service_description=POP3S
|
29
|
+
plugin_output=POP OK - 0.062 second response time on port 995 [+OK Dovecot ready. <123.456@example.com>]
|
30
|
+
}
|
31
|
+
|
27
32
|
programstatus {
|
28
33
|
last_command_check=1291408262
|
29
34
|
global_service_event_handler=
|
@@ -43,6 +48,11 @@ describe NagiosParser::Status::Parser do
|
|
43
48
|
[:OPEN, nil],
|
44
49
|
[:KEY, 'version'], [:VALUE, '3.2.0'],
|
45
50
|
[:CLOSE, nil],
|
51
|
+
[:TYPE, 'servicestatus'],
|
52
|
+
[:OPEN, nil],
|
53
|
+
[:KEY, 'service_description'], [:VALUE, 'POP3S'],
|
54
|
+
[:KEY, 'plugin_output'], [:VALUE, 'POP OK - 0.062 second response time on port 995 [+OK Dovecot ready. <123.456@example.com>]'],
|
55
|
+
[:CLOSE, nil],
|
46
56
|
[:TYPE, 'programstatus'],
|
47
57
|
[:OPEN, nil],
|
48
58
|
[:KEY, 'last_command_check'], [:VALUE, 1291408262],
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nagios_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 1.2.
|
9
|
+
- 2
|
10
|
+
version: 1.2.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Bernd Ahlers
|
@@ -15,7 +15,8 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-10-22 00:00:00 +02:00
|
19
|
+
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
22
|
name: rake
|
@@ -70,6 +71,7 @@ extra_rdoc_files: []
|
|
70
71
|
|
71
72
|
files:
|
72
73
|
- .gitignore
|
74
|
+
- .travis.yml
|
73
75
|
- CHANGES.md
|
74
76
|
- Gemfile
|
75
77
|
- LICENSE
|
@@ -86,11 +88,13 @@ files:
|
|
86
88
|
- lib/nagios_parser/status/parser.y
|
87
89
|
- lib/nagios_parser/version.rb
|
88
90
|
- nagios_parser.gemspec
|
91
|
+
- spec/github_issues_spec.rb
|
89
92
|
- spec/nagios_parser/config/parser_spec.rb
|
90
93
|
- spec/nagios_parser/object/parser_spec.rb
|
91
94
|
- spec/nagios_parser/resource/parser_spec.rb
|
92
95
|
- spec/nagios_parser/status/parser_spec.rb
|
93
96
|
- spec/spec_helper.rb
|
97
|
+
has_rdoc: true
|
94
98
|
homepage: http://rubygems.org/gems/nagios_parser
|
95
99
|
licenses: []
|
96
100
|
|
@@ -120,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
124
|
requirements: []
|
121
125
|
|
122
126
|
rubyforge_project:
|
123
|
-
rubygems_version: 1.
|
127
|
+
rubygems_version: 1.5.2
|
124
128
|
signing_key:
|
125
129
|
specification_version: 3
|
126
130
|
summary: parser lib for parsing Nagios status and config files
|