logstash-input-generator 0.1.3 → 0.1.4

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