fluent-plugin-snmp 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MGYwZThlYWJhZTFhNmVhZmUzNmE0OGRhM2NmNzRkZDM2ZjNhZDc2Mg==
5
- data.tar.gz: !binary |-
6
- N2E3MTk1YTJjZWY1MzBkYmY1NTFlNDE0MGM0MTIzNzE2ZDg5MGRmOQ==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- YzFmMTM3ZTc4MGU1YWE1ZWM0MmYyYWIyZGZhYmYwMTAxOGFlOTJkZDg2ZmQ0
10
- NWU5ODUxZDgyYzJlZDkzZjM3ZGRkZWVkMjA0M2E5NzNmZDJlZGEwOTgxNmEy
11
- MGIyNDQyOThkOWU4YTYzNmYyZjAwMGIxOTQ0ZTI2YjU1NjkwZWY=
12
- data.tar.gz: !binary |-
13
- Njg0MmY1MDE1ODcwNmRkZWQ3OTFkYTg4MDIxYmJhNjkxNDhlYTE2ODUwYzE0
14
- ZDliN2E3NTBiNmM5N2ZmNWFkNDcwN2Q3NmY1NDA0NDM0NzZiNWY5ZDBiZDhh
15
- MzVhN2ZiNzU4ZTk1ZDA5NDQyMzNhZDJjYWMxYjJiMWQ4NjljNGE=
2
+ SHA1:
3
+ metadata.gz: fbf4f6aea588052f179cb8bb809937efe48a5eb1
4
+ data.tar.gz: 90280ffe549a38dd122c9488e41472ef5783fb26
5
+ SHA512:
6
+ metadata.gz: 75e4fc90bc40575af0f2b55e1fa8797f0bc92dac8cf83ae9e0363da75f919e954cdf4625d49324f820f13f8be9faf59bf6a49ffccaa5edab51c56291eee4f7b7
7
+ data.tar.gz: bf4a4889d90481063def2e6b365490eedd55457133224a541d7fc3e6b6ed2c00e46ce785a845944a738166bf315fc15859cba8865dd597715d543e074a66fd94
data/Gemfile CHANGED
@@ -2,4 +2,3 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in fluent-plugin-snmp.gemspec
4
4
  gemspec
5
- gem 'mocha'
data/README.md CHANGED
@@ -1,16 +1,24 @@
1
- # Fluent::Plugin::Snmp
1
+ # Fluent::Plugin::Snmp, a plugin for [Fluentd](http://fluentd.org)
2
2
 
3
3
  Fluentd snmp input plugin
4
4
 
5
- ## Installation
5
+ ## Installation possibilities
6
6
 
7
- Add this line to your application's Gemfile:
7
+ - With your application's Gemfile:
8
8
 
9
- gem 'fluent-plugin-snmp'
9
+ `gem 'fluent-plugin-snmp'`
10
10
 
11
- Or install it yourself as:
11
+ - Install it yourself as:
12
12
 
13
- $ gem install fluent-plugin-snmp
13
+ `$ gem install fluent-plugin-snmp`
14
+
15
+ - Intall with td-agent:
16
+
17
+ `$ td-agent-gem install fluent-plugin-snmp`
18
+
19
+ - If you are using vanilla Fluentd:
20
+
21
+ `$ fluent-gem install fluent-plugin-snmp`
14
22
 
15
23
  ## Usage
16
24
 
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |gem|
5
5
  gem.name = "fluent-plugin-snmp"
6
- gem.version = "0.0.8"
6
+ gem.version = "0.0.9"
7
7
  gem.authors = ["hiro-su"]
8
8
  gem.email = ["h-sugimoto@iij.ad.jp"]
9
9
  gem.description = %q{Input plugin to snmp}
@@ -14,10 +14,11 @@ Gem::Specification.new do |gem|
14
14
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
15
15
  gem.require_paths = ["lib"]
16
16
 
17
- gem.add_development_dependency "fluentd"
18
- gem.add_development_dependency "snmp"
19
- gem.add_development_dependency "polling"
20
- gem.add_runtime_dependency "fluentd"
21
- gem.add_runtime_dependency "snmp"
22
- gem.add_runtime_dependency "polling"
17
+ gem.add_runtime_dependency "fluentd", ">= 0.10.58"
18
+ gem.add_runtime_dependency "snmp", "~> 1.2.0"
19
+ gem.add_runtime_dependency "polling", "0.1.5"
20
+
21
+ gem.add_development_dependency "bundler", "~> 1.12"
22
+ gem.add_development_dependency "rake", "~> 10.0"
23
+ gem.add_development_dependency "mocha", "~> 1.1.0"
23
24
  end
@@ -1,3 +1,4 @@
1
+ require 'fluent/input'
1
2
  require 'snmp' # http://snmplib.rubyforge.org/doc/index.html
2
3
  require 'polling'
3
4
 
@@ -13,7 +14,6 @@ module Fluent
13
14
  config_param :polling_time, :string, :default => nil
14
15
  config_param :polling_offset, :time, :default => 0
15
16
  config_param :polling_type, :string, :default => "run" #or async_run
16
- config_param :host_name, :string, :default => nil
17
17
  config_param :method_type, :string, :default => "walk" #or get
18
18
  config_param :out_executor, :string, :default => nil
19
19
 
@@ -99,23 +99,16 @@ module Fluent
99
99
  :nodes => @nodes,
100
100
  :conf => conf
101
101
  }
102
- Fluent::SnmpInput.new.out_exec(manager, opts)
102
+ out_exec(manager, opts)
103
103
  end
104
104
  end
105
105
  end
106
106
 
107
- def starter
108
- @starter = Thread.new do
109
- yield
110
- end
111
- end
112
-
113
107
  def start
114
- starter do
115
- @manager = SNMP::Manager.new(@snmp_init_params)
116
- @thread = Thread.new(&method(:run))
117
- @end_flag = false
118
- end
108
+ super
109
+ @manager = SNMP::Manager.new(@snmp_init_params)
110
+ @thread = Thread.new(&method(:run))
111
+ @end_flag = false
119
112
  end
120
113
 
121
114
  def run
@@ -140,10 +133,6 @@ module Fluent
140
133
  @thread.join
141
134
  @thread = nil
142
135
  end
143
- if @starter
144
- @starter.join
145
- @starter = nil
146
- end
147
136
  if @manager
148
137
  @manager.close
149
138
  end
@@ -184,7 +173,7 @@ module Fluent
184
173
  else
185
174
  nodes.each{|param| record[param] = check_type(vb.__send__(param))}
186
175
  end
187
- Engine.emit(@tag, time, record)
176
+ router.emit(@tag, time, record)
188
177
  return {:time => time, :record => record} if test
189
178
  end
190
179
  end
@@ -202,7 +191,7 @@ module Fluent
202
191
  else
203
192
  nodes.each{|param| record[param] = check_type(vb.__send__(param))}
204
193
  end
205
- Engine.emit(@tag, time, record)
194
+ router.emit(@tag, time, record)
206
195
  return {:time => time, :record => record} if test
207
196
  end
208
197
  rescue => ex
@@ -213,6 +202,8 @@ module Fluent
213
202
  def check_type(value)
214
203
  if value =~ /^\d+(\.\d+)?$/
215
204
  return value.to_f
205
+ elsif SNMP::Integer === value
206
+ return value.to_i
216
207
  else
217
208
  return value.to_s
218
209
  end
@@ -8,7 +8,7 @@ module Fluent
8
8
  row.each do |vb|
9
9
  record["name"] = vb.name.to_s
10
10
  record["value"] = vb.value.to_s
11
- Engine.emit opts[:tag], time, record
11
+ router.emit opts[:tag], time, record
12
12
  end
13
13
  end
14
14
  end
@@ -1,5 +1,5 @@
1
1
  <source>
2
- type snmp
2
+ @type snmp
3
3
  tag snmp.server1
4
4
  nodes name, value
5
5
  host localhost
@@ -11,7 +11,7 @@
11
11
  </source>
12
12
 
13
13
  <source>
14
- type snmp
14
+ @type snmp
15
15
  tag snmp.server2
16
16
  host localhost
17
17
  community public
@@ -22,5 +22,5 @@
22
22
  </source>
23
23
 
24
24
  <match snmp.server*>
25
- type stdout
25
+ @type stdout
26
26
  </match>
@@ -6,7 +6,7 @@ class SnmpInputTest < Test::Unit::TestCase
6
6
 
7
7
  def setup
8
8
  Fluent::Test.setup
9
- @obj = Fluent::SnmpInput.new
9
+ #@obj = Fluent::SnmpInput.new
10
10
  end
11
11
 
12
12
  CONFIG = %[
@@ -16,11 +16,8 @@ class SnmpInputTest < Test::Unit::TestCase
16
16
  polling_time 0,10,20,30,40,50
17
17
  polling_offset 0
18
18
  host localhost
19
- host_name test_host
20
19
  community public
21
20
  mib_modules HOST-RESOURCES-MIB, IF-MIB
22
- retry 0
23
- retry_interval 2
24
21
  timeout 3s
25
22
  method_type walk
26
23
  out_executor sample/out_exec.rb.sample
@@ -40,19 +37,16 @@ class SnmpInputTest < Test::Unit::TestCase
40
37
  assert_equal ["0","10","20","30","40","50"], d.instance.polling_time
41
38
  assert_equal 0, d.instance.polling_offset
42
39
  assert_equal "walk", d.instance.method_type
43
- assert_equal 2, d.instance.retry_interval
44
40
  assert_equal "sample/out_exec.rb.sample", d.instance.out_executor
45
41
 
46
42
  # SNMP Lib Params
47
43
  assert_equal "localhost", d.instance.host
48
- assert_equal "test_host", d.instance.host_name
49
44
  assert_nil d.instance.port
50
45
  assert_nil d.instance.trap_port
51
46
  assert_equal "public", d.instance.community
52
47
  assert_nil d.instance.write_community
53
48
  assert_equal :SNMPv2c, d.instance.version
54
49
  assert_equal 3, d.instance.timeout
55
- assert_equal 0, d.instance.retry
56
50
  assert_nil d.instance.transport
57
51
  assert_nil d.instance.max_recv_bytes
58
52
  assert_nil d.instance.mib_dir
@@ -61,18 +55,22 @@ class SnmpInputTest < Test::Unit::TestCase
61
55
  end
62
56
 
63
57
  def test_check_type
64
- assert_equal "test", @obj.__send__(:check_type,"test")
65
- assert_equal "utrh0", @obj.__send__(:check_type,"utrh0")
66
- assert_equal "sensorValue_degC", @obj.__send__(:check_type,"sensorValue_degC")
67
- assert_equal "sensorValue_%RH", @obj.__send__(:check_type,"sensorValue_%RH")
68
- assert_equal 12.00, @obj.__send__(:check_type,"12")
69
- assert_equal 12.34, @obj.__send__(:check_type,"12.34")
70
- assert_equal String, @obj.__send__(:check_type,"test").class
71
- assert_equal String, @obj.__send__(:check_type,"utrh0").class
72
- assert_equal String, @obj.__send__(:check_type,"sensorValue_degC").class
73
- assert_equal String, @obj.__send__(:check_type,"sensorValue_%RH").class
74
- assert_equal Float, @obj.__send__(:check_type,"12").class
75
- assert_equal Float, @obj.__send__(:check_type,"12.34").class
58
+ d = create_driver
59
+
60
+ assert_equal "test", d.instance.__send__(:check_type, "test")
61
+ assert_equal "utrh0", d.instance.__send__(:check_type, "utrh0")
62
+ assert_equal "sensorValue_degC", d.instance.__send__(:check_type, "sensorValue_degC")
63
+ assert_equal "sensorValue_%RH", d.instance.__send__(:check_type, "sensorValue_%RH")
64
+ assert_equal 12.00, d.instance.__send__(:check_type, "12")
65
+ assert_equal 12.34, d.instance.__send__(:check_type, "12.34")
66
+ assert_equal 12, d.instance.__send__(:check_type, SNMP::Integer.new("12"))
67
+ assert_equal String, d.instance.__send__(:check_type, "test").class
68
+ assert_equal String, d.instance.__send__(:check_type, "utrh0").class
69
+ assert_equal String, d.instance.__send__(:check_type, "sensorValue_degC").class
70
+ assert_equal String, d.instance.__send__(:check_type, "sensorValue_%RH").class
71
+ assert_equal Float, d.instance.__send__(:check_type, "12").class
72
+ assert_equal Float, d.instance.__send__(:check_type, "12.34").class
73
+ assert_equal Fixnum, d.instance.__send__(:check_type, SNMP::Integer.new("12")).class
76
74
  end
77
75
 
78
76
  def test_snmp_walk
@@ -93,15 +91,14 @@ class SnmpInputTest < Test::Unit::TestCase
93
91
  Time.stubs(:now).returns(Time.parse "2012/12/31 23:59:50")
94
92
  manager = SNMP::Manager.new(snmp_init_params)
95
93
 
96
- data = @obj.__send__(:snmp_walk, manager, mib, nodes, true)
94
+ data = d.instance.__send__(:snmp_walk, manager, mib, nodes, true)
97
95
  record = data[:record]
98
96
 
99
97
  assert_equal 1356965990, data[:time]
100
- assert_equal "HOST-RESOURCES-MIB::hrStorageIndex.31", record["name"]
101
- assert_equal "31", record["value"]
98
+ assert_equal "HOST-RESOURCES-MIB::hrStorageIndex.1", record["name"]
99
+ assert_equal 1, record["value"]
102
100
  end
103
101
 
104
-
105
102
  def test_snmp_get
106
103
  d = create_driver %[
107
104
  tag snmp.server1
@@ -128,12 +125,12 @@ class SnmpInputTest < Test::Unit::TestCase
128
125
  Time.stubs(:now).returns(Time.parse "2012/12/31 23:59:50")
129
126
  manager = SNMP::Manager.new(snmp_init_params)
130
127
 
131
- data = @obj.__send__(:snmp_get, manager, mib, nodes, true)
128
+ data = d.instance.__send__(:snmp_get, manager, mib, nodes, true)
132
129
  record = data[:record]
133
130
 
134
131
  assert_equal 1356965990, data[:time]
135
132
  assert_equal "HOST-RESOURCES-MIB::hrStorageIndex.31", record["name"]
136
- assert_equal "31", record["value"]
133
+ assert_equal 31, record["value"]
137
134
  end
138
135
 
139
136
  def test_exec_snmp
@@ -157,7 +154,7 @@ class SnmpInputTest < Test::Unit::TestCase
157
154
  :test => true
158
155
  }
159
156
 
160
- exec = @obj.__send__(:exec_snmp, opts)
161
- assert_equal 0, exec
157
+ exec = d.instance.__send__(:exec_snmp, opts)
158
+ assert_equal nil, exec
162
159
  end
163
160
  end
metadata CHANGED
@@ -1,99 +1,99 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-snmp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - hiro-su
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-04-12 00:00:00.000000000 Z
11
+ date: 2016-08-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :development
19
+ version: 0.10.58
20
+ type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 0.10.58
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: snmp
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
33
+ version: 1.2.0
34
+ type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: 1.2.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: polling
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
47
+ version: 0.1.5
48
+ type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: 0.1.5
55
55
  - !ruby/object:Gem::Dependency
56
- name: fluentd
56
+ name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ! '>='
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :runtime
61
+ version: '1.12'
62
+ type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ! '>='
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '1.12'
69
69
  - !ruby/object:Gem::Dependency
70
- name: snmp
70
+ name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ! '>='
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :runtime
75
+ version: '10.0'
76
+ type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ! '>='
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: '10.0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: polling
84
+ name: mocha
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ! '>='
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :runtime
89
+ version: 1.1.0
90
+ type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ! '>='
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: 1.1.0
97
97
  description: Input plugin to snmp
98
98
  email:
99
99
  - h-sugimoto@iij.ad.jp
@@ -101,7 +101,7 @@ executables: []
101
101
  extensions: []
102
102
  extra_rdoc_files: []
103
103
  files:
104
- - .gitignore
104
+ - ".gitignore"
105
105
  - Gemfile
106
106
  - LICENSE.txt
107
107
  - README.md
@@ -121,17 +121,17 @@ require_paths:
121
121
  - lib
122
122
  required_ruby_version: !ruby/object:Gem::Requirement
123
123
  requirements:
124
- - - ! '>='
124
+ - - ">="
125
125
  - !ruby/object:Gem::Version
126
126
  version: '0'
127
127
  required_rubygems_version: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ! '>='
129
+ - - ">="
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
132
  requirements: []
133
133
  rubyforge_project:
134
- rubygems_version: 2.0.3
134
+ rubygems_version: 2.6.6
135
135
  signing_key:
136
136
  specification_version: 4
137
137
  summary: Input plugin to snmp