sensu-extensions-snmp-trap 0.0.12 → 0.0.13
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.
- checksums.yaml +4 -4
- data/lib/sensu/extensions/snmp-trap.rb +59 -6
- data/lib/sensu/extensions/snmp-trap/snmp-patch.rb +4 -4
- 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: 5d5ef1ace4e6db46ada2a1af63d43ec120423aa0
|
4
|
+
data.tar.gz: 0e5192ef22a7c8c72d1552f4ab8ec1036459f161
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 12221123c60ed7e98bb028e53e6bc7e36e942894a28a01bd54cc8d8886d5ac8f5697a4abc7effa39b5759249f8a0839bf87a8ea4f3e1a4fab40df011a7b2af22
|
7
|
+
data.tar.gz: 3a706a9964258ea92cdeca593a8abe174086f11adf6c4010b39e557e71b4b2e63e0869b42decd7dd504dd7e9b2893e49ec11de622bc68f06fe3990e592aa0e5d
|
@@ -66,20 +66,72 @@ module Sensu
|
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
69
|
+
def determine_mib_preload(module_name)
|
70
|
+
preload = []
|
71
|
+
if @mib_map[module_name]
|
72
|
+
@mib_map[module_name][:imports].each do |import|
|
73
|
+
if @mib_map[import]
|
74
|
+
preload << @mib_map[import][:mib_file]
|
75
|
+
end
|
76
|
+
preload << determine_mib_preload(import)
|
77
|
+
end
|
78
|
+
else
|
79
|
+
@logger.fatal("snmp trap check extension unknown mib preload", :module_name => module_name)
|
80
|
+
end
|
81
|
+
preload.flatten
|
82
|
+
end
|
83
|
+
|
84
|
+
def create_mib_map!
|
85
|
+
@logger.debug("snmp trap check extension creating mib map", :mibs_dir => options[:mibs_dir])
|
86
|
+
@mib_map = {}
|
87
|
+
Dir.glob(File.join(options[:mibs_dir], "*")).each do |mib_file|
|
88
|
+
mib_contents = IO.read(mib_file)
|
89
|
+
module_name = mib_contents.scan(/([\w-]+)\s+DEFINITIONS\s+::=\s+BEGIN/).flatten.first
|
90
|
+
details = {
|
91
|
+
:mib_file => mib_file,
|
92
|
+
:imports => mib_contents.scan(/FROM\s+([\w-]+)/).flatten
|
93
|
+
}
|
94
|
+
if @mib_map.has_key?(module_name)
|
95
|
+
@logger.debug("snmp trap check extension overriding mib map entry", {
|
96
|
+
:module_name => module_name,
|
97
|
+
:details => details
|
98
|
+
})
|
99
|
+
end
|
100
|
+
@mib_map[module_name] = details
|
101
|
+
end
|
102
|
+
@mib_map.each_key do |module_name|
|
103
|
+
@mib_map[module_name][:preload] = determine_mib_preload(module_name)
|
104
|
+
end
|
105
|
+
puts @mib_map
|
106
|
+
@mib_map
|
107
|
+
end
|
108
|
+
|
69
109
|
def load_mibs!
|
70
110
|
@logger.debug("snmp trap check extension importing mibs", {
|
71
111
|
:mibs_dir => options[:mibs_dir],
|
72
112
|
:imported_dir => options[:imported_dir]
|
73
113
|
})
|
74
|
-
|
75
|
-
|
76
|
-
|
114
|
+
@mib_map.each do |module_name, details|
|
115
|
+
@logger.debug("snmp trap check extension importing mib", {
|
116
|
+
:module_name => module_name,
|
117
|
+
:details => details
|
118
|
+
})
|
77
119
|
begin
|
78
|
-
|
79
|
-
|
120
|
+
@logger.debug("snmp trap check extension mib dependencies", {
|
121
|
+
:module_name => module_name,
|
122
|
+
:details => details
|
123
|
+
})
|
124
|
+
unless details[:preload].empty?
|
125
|
+
arguments = "-p "
|
126
|
+
arguments << details[:preload].map { |preload| preload }.join(" -p ")
|
127
|
+
else
|
128
|
+
arguments = nil
|
129
|
+
end
|
130
|
+
SNMP::MIB.import_module(details[:mib_file], options[:imported_dir], arguments)
|
80
131
|
rescue StandardError, SyntaxError => error
|
81
132
|
@logger.debug("snmp trap check extension failed to import mib", {
|
82
|
-
:
|
133
|
+
:module_name => module_name,
|
134
|
+
:details => details,
|
83
135
|
:error => error
|
84
136
|
})
|
85
137
|
end
|
@@ -160,6 +212,7 @@ module Sensu
|
|
160
212
|
|
161
213
|
def start_trap_processor!
|
162
214
|
@processor = Thread.new do
|
215
|
+
create_mib_map!
|
163
216
|
load_mibs!
|
164
217
|
loop do
|
165
218
|
process_trap(@traps.pop)
|
@@ -13,13 +13,13 @@ module SNMP
|
|
13
13
|
@sensu_logger.warn("snmp trap check extension mib warning", :warning => message.downcase)
|
14
14
|
end
|
15
15
|
|
16
|
-
def import_module(module_file, mib_dir=DEFAULT_MIB_PATH,
|
16
|
+
def import_module(module_file, mib_dir=DEFAULT_MIB_PATH, raw_arguments=nil)
|
17
17
|
raise "smidump tool must be installed" unless import_supported?
|
18
18
|
FileUtils.makedirs mib_dir
|
19
|
-
# PATCH: add
|
20
|
-
|
19
|
+
# PATCH: add arguments support
|
20
|
+
arguments = raw_arguments ? " #{raw_arguments}" : ""
|
21
21
|
# PATCH: redirect STDERR to /dev/null
|
22
|
-
mib_hash = `smidump#{
|
22
|
+
mib_hash = `smidump#{arguments} -k -f python #{module_file} 2>/dev/null`
|
23
23
|
mib = eval_mib_data(mib_hash)
|
24
24
|
if mib
|
25
25
|
module_name = mib["moduleName"]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu-extensions-snmp-trap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sensu-Extensions and contributors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-11-
|
11
|
+
date: 2016-11-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sensu-extension
|