fluent-plugin-snmp 0.0.8 → 0.0.9

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