logstash-input-generator 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e40475a4b1cad1f47c7a0cc1a7ee63f4433db0ad
4
- data.tar.gz: 8256f1cb4949e7894f8d352f0e6dbd1c2548418e
3
+ metadata.gz: cb4ddc5e92fa5212d4e9b92a5c9c4a1caa47cd9a
4
+ data.tar.gz: 9bdb0a4c64b683c349ebe2321df11b2b4fa234cc
5
5
  SHA512:
6
- metadata.gz: 92d34d54a5f7df68430c75a66acfb4d4dfdf527bda8462cd5f05ad3f64d474bdb2674d33c2fe7d60f65f477e5e0512fe02769900821fe96a0341eedc5c225a1a
7
- data.tar.gz: 3cc76aa3b1df563019c9a7aeba108ee49fe94db3a87272da4e19db7b0b983bf8ab284edf36b317d5587aa5ad50dd9e8bef545ad9bcaaef916ecb582e3a152a5d
6
+ metadata.gz: f8bb1dbdeaf0824ce5f71a52724415acb3236f17581d392c0b3b828bc485f99bdf21a89354553a34cc9315a95ee0ab629c767264eb1b85a9ab94d0d1debc1d36
7
+ data.tar.gz: afa1ce20c66ae9a8f3a99604b93876c81b43e4c372176977dc5ecd0a64e854242a53f0c574bed856e371457d516cf270a1954fa3c0899f8d9604de1085252df1
@@ -49,7 +49,7 @@ class LogStash::Inputs::Generator < LogStash::Inputs::Threadable
49
49
  public
50
50
  def register
51
51
  @host = Socket.gethostname
52
- @count = @count.first if @count.is_a?(Array)
52
+ @count = Array(@count).first
53
53
  end # def register
54
54
 
55
55
  def run(queue)
@@ -85,10 +85,12 @@ class LogStash::Inputs::Generator < LogStash::Inputs::Threadable
85
85
 
86
86
  public
87
87
  def teardown
88
- @codec.flush do |event|
89
- decorate(event)
90
- event["host"] = @host
91
- queue << event
88
+ if @codec.respond_to?(:flush)
89
+ @codec.flush do |event|
90
+ decorate(event)
91
+ event["host"] = @host
92
+ queue << event
93
+ end
92
94
  end
93
95
  finished
94
96
  end # def teardown
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
 
3
3
  s.name = 'logstash-input-generator'
4
- s.version = '0.1.3'
4
+ s.version = '0.1.4'
5
5
  s.licenses = ['Apache License (2.0)']
6
6
  s.summary = "Generate random log events."
7
7
  s.description = "This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not a stand-alone program"
@@ -1,86 +1,54 @@
1
1
  require "logstash/devutils/rspec/spec_helper"
2
+ require "logstash/inputs/generator"
2
3
 
3
4
  describe "inputs/generator" do
4
-
5
5
 
6
- context "performance", :performance => true do
7
- event_count = 100000 + rand(50000)
8
-
9
- config <<-CONFIG
6
+ it "should generate configured message" do
7
+ conf = <<-CONFIG
10
8
  input {
11
9
  generator {
12
- type => "blah"
13
- count => #{event_count}
10
+ count => 2
11
+ message => "foo"
14
12
  }
15
13
  }
16
14
  CONFIG
17
15
 
18
- input do |pipeline, queue|
19
- start = Time.now
20
- Thread.new { pipeline.run }
21
- event_count.times do |i|
22
- event = queue.pop
23
- insist { event["sequence"] } == i
24
- end
25
- duration = Time.now - start
26
- puts "inputs/generator rate: #{"%02.0f/sec" % (event_count / duration)}, elapsed: #{duration}s"
27
- pipeline.shutdown
28
- end # input
16
+ events = input(conf) do |pipeline, queue|
17
+ 2.times.map{queue.pop}
18
+ end
19
+
20
+ insist { events[0]["sequence"] } == 0
21
+ insist { events[0]["message"] } == "foo"
22
+
23
+ insist { events[1]["sequence"] } == 1
24
+ insist { events[1]["message"] } == "foo"
29
25
  end
30
26
 
31
- context "generate configured message" do
32
- config <<-CONFIG
27
+ it "should generate message from stdin" do
28
+ conf = <<-CONFIG
33
29
  input {
34
30
  generator {
35
31
  count => 2
36
- message => "foo"
32
+ message => "stdin"
37
33
  }
38
34
  }
39
35
  CONFIG
40
36
 
41
- input do |pipeline, queue|
42
- Thread.new { pipeline.run }
43
- event = queue.pop
44
- insist { event["sequence"] } == 0
45
- insist { event["message"] } == "foo"
37
+ saved_stdin = $stdin
38
+ stdin_mock = StringIO.new
39
+ $stdin = stdin_mock
40
+ stdin_mock.should_receive(:readline).once.and_return("bar")
46
41
 
47
- event = queue.pop
48
- insist { event["sequence"] } == 1
49
- insist { event["message"] } == "foo"
50
-
51
- insist { queue.size } == 0
52
- pipeline.shutdown
53
- end # input
54
-
55
- context "generate message from stdin" do
56
- config <<-CONFIG
57
- input {
58
- generator {
59
- count => 2
60
- message => "stdin"
61
- }
62
- }
63
- CONFIG
64
-
65
- input do |pipeline, queue|
66
- saved_stdin = $stdin
67
- stdin_mock = StringIO.new
68
- $stdin = stdin_mock
69
- stdin_mock.should_receive(:readline).once.and_return("bar")
42
+ events = input(conf) do |pipeline, queue|
43
+ 2.times.map{queue.pop}
44
+ end
70
45
 
71
- Thread.new { pipeline.run }
72
- event = queue.pop
73
- insist { event["sequence"] } == 0
74
- insist { event["message"] } == "bar"
46
+ insist { events[0]["sequence"] } == 0
47
+ insist { events[0]["message"] } == "bar"
75
48
 
76
- event = queue.pop
77
- insist { event["sequence"] } == 1
78
- insist { event["message"] } == "bar"
49
+ insist { events[1]["sequence"] } == 1
50
+ insist { events[1]["message"] } == "bar"
79
51
 
80
- insist { queue.size } == 0
81
- pipeline.shutdown
82
- $stdin = saved_stdin
83
- end # input
84
- end
52
+ $stdin = saved_stdin
85
53
  end
86
54
  end
metadata CHANGED
@@ -1,17 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-input-generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elasticsearch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-26 00:00:00.000000000 Z
11
+ date: 2015-04-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- requirement: !ruby/object:Gem::Requirement
14
+ name: logstash-core
15
+ version_requirements: !ruby/object:Gem::Requirement
15
16
  requirements:
16
17
  - - '>='
17
18
  - !ruby/object:Gem::Version
@@ -19,10 +20,7 @@ dependencies:
19
20
  - - <
20
21
  - !ruby/object:Gem::Version
21
22
  version: 2.0.0
22
- name: logstash-core
23
- prerelease: false
24
- type: :runtime
25
- version_requirements: !ruby/object:Gem::Requirement
23
+ requirement: !ruby/object:Gem::Requirement
26
24
  requirements:
27
25
  - - '>='
28
26
  - !ruby/object:Gem::Version
@@ -30,34 +28,36 @@ dependencies:
30
28
  - - <
31
29
  - !ruby/object:Gem::Version
32
30
  version: 2.0.0
31
+ prerelease: false
32
+ type: :runtime
33
33
  - !ruby/object:Gem::Dependency
34
+ name: logstash-codec-plain
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
34
40
  requirement: !ruby/object:Gem::Requirement
35
41
  requirements:
36
42
  - - '>='
37
43
  - !ruby/object:Gem::Version
38
44
  version: '0'
39
- name: logstash-codec-plain
40
45
  prerelease: false
41
46
  type: :runtime
47
+ - !ruby/object:Gem::Dependency
48
+ name: logstash-devutils
42
49
  version_requirements: !ruby/object:Gem::Requirement
43
50
  requirements:
44
51
  - - '>='
45
52
  - !ruby/object:Gem::Version
46
53
  version: '0'
47
- - !ruby/object:Gem::Dependency
48
54
  requirement: !ruby/object:Gem::Requirement
49
55
  requirements:
50
56
  - - '>='
51
57
  - !ruby/object:Gem::Version
52
58
  version: '0'
53
- name: logstash-devutils
54
59
  prerelease: false
55
60
  type: :development
56
- version_requirements: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - '>='
59
- - !ruby/object:Gem::Version
60
- version: '0'
61
61
  description: This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not a stand-alone program
62
62
  email: info@elasticsearch.com
63
63
  executables: []
@@ -95,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
95
  version: '0'
96
96
  requirements: []
97
97
  rubyforge_project:
98
- rubygems_version: 2.4.5
98
+ rubygems_version: 2.1.9
99
99
  signing_key:
100
100
  specification_version: 4
101
101
  summary: Generate random log events.