logstash-output-sumologic 1.1.4 → 1.1.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,49 @@
1
+ # encoding: utf-8
2
+ require "socket"
3
+
4
+ class TestServer
5
+
6
+ PORT = 5678
7
+ CRLF = "\r\n"
8
+ RESPONSE_200 = "HTTP/1.1 200 OK#{CRLF}" +
9
+ "Content-Type: text/plain#{CRLF}" +
10
+ "Content-Length: 0#{CRLF}" +
11
+ "Connection: close#{CRLF}" +
12
+ "#{CRLF}"
13
+
14
+ RESPONSE_429 = "HTTP/1.1 429 Too Many Requests#{CRLF}" +
15
+ "Content-Type: text/plain#{CRLF}" +
16
+ "Retry-After: 3600#{CRLF}" +
17
+ "#{CRLF}"
18
+
19
+ attr_reader :queue
20
+ attr_writer :response
21
+
22
+ def initialize(response = RESPONSE_200)
23
+ @requests = Queue.new()
24
+ @response = response
25
+ @server = TCPServer.new PORT
26
+ end # def initialize
27
+
28
+ def start()
29
+ @thread = Thread.new {
30
+ while session = @server.accept
31
+ request = session.gets
32
+ @requests << request
33
+ session.print @response
34
+ session.close
35
+ end
36
+ }
37
+ @thread
38
+ end # def start
39
+
40
+ def stop()
41
+ @thread.kill()
42
+ @thread.join()
43
+ end # def stop
44
+
45
+ def drain()
46
+ @requests.size.times.map { @requests.deq() }
47
+ end
48
+
49
+ end # class
metadata CHANGED
@@ -1,83 +1,97 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-output-sumologic
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4
4
+ version: 1.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sumo Logic
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-24 00:00:00.000000000 Z
11
+ date: 2018-05-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
+ name: manticore
14
15
  requirement: !ruby/object:Gem::Requirement
15
16
  requirements:
16
- - - "~>"
17
+ - - ">="
17
18
  - !ruby/object:Gem::Version
18
- version: '2.0'
19
- name: logstash-core-plugin-api
19
+ version: 0.5.4
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: 1.0.0
23
+ type: :runtime
20
24
  prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 0.5.4
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: 1.0.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: logstash-core-plugin-api
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '1.60'
40
+ - - "<="
41
+ - !ruby/object:Gem::Version
42
+ version: '2.99'
21
43
  type: :runtime
44
+ prerelease: false
22
45
  version_requirements: !ruby/object:Gem::Requirement
23
46
  requirements:
24
- - - "~>"
47
+ - - ">="
25
48
  - !ruby/object:Gem::Version
26
- version: '2.0'
49
+ version: '1.60'
50
+ - - "<="
51
+ - !ruby/object:Gem::Version
52
+ version: '2.99'
27
53
  - !ruby/object:Gem::Dependency
54
+ name: logstash-codec-plain
28
55
  requirement: !ruby/object:Gem::Requirement
29
56
  requirements:
30
57
  - - ">="
31
58
  - !ruby/object:Gem::Version
32
59
  version: '0'
33
- name: logstash-codec-plain
34
- prerelease: false
35
60
  type: :runtime
61
+ prerelease: false
36
62
  version_requirements: !ruby/object:Gem::Requirement
37
63
  requirements:
38
64
  - - ">="
39
65
  - !ruby/object:Gem::Version
40
66
  version: '0'
41
67
  - !ruby/object:Gem::Dependency
68
+ name: logstash-mixin-http_client
42
69
  requirement: !ruby/object:Gem::Requirement
43
70
  requirements:
44
71
  - - ">="
45
72
  - !ruby/object:Gem::Version
46
- version: 6.0.0
47
- - - "<"
48
- - !ruby/object:Gem::Version
49
- version: 7.0.0
50
- name: logstash-mixin-http_client
51
- prerelease: false
73
+ version: '0'
52
74
  type: :runtime
75
+ prerelease: false
53
76
  version_requirements: !ruby/object:Gem::Requirement
54
77
  requirements:
55
78
  - - ">="
56
79
  - !ruby/object:Gem::Version
57
- version: 6.0.0
58
- - - "<"
59
- - !ruby/object:Gem::Version
60
- version: 7.0.0
80
+ version: '0'
61
81
  - !ruby/object:Gem::Dependency
82
+ name: logstash-devutils
62
83
  requirement: !ruby/object:Gem::Requirement
63
84
  requirements:
64
- - - "~>"
65
- - !ruby/object:Gem::Version
66
- version: '1.3'
67
85
  - - ">="
68
86
  - !ruby/object:Gem::Version
69
- version: 1.3.1
70
- name: logstash-devutils
71
- prerelease: false
87
+ version: '0'
72
88
  type: :development
89
+ prerelease: false
73
90
  version_requirements: !ruby/object:Gem::Requirement
74
91
  requirements:
75
- - - "~>"
76
- - !ruby/object:Gem::Version
77
- version: '1.3'
78
92
  - - ">="
79
93
  - !ruby/object:Gem::Version
80
- version: 1.3.1
94
+ version: '0'
81
95
  description: This gem is a Logstash output plugin to deliver the log or metrics to
82
96
  Sumo Logic cloud service. Go to https://github.com/SumoLogic/logstash-output-sumologic
83
97
  for getting help, reporting issues, etc.
@@ -87,22 +101,36 @@ extensions: []
87
101
  extra_rdoc_files: []
88
102
  files:
89
103
  - CHANGELOG.md
90
- - CONTRIBUTORS
91
104
  - DEVELOPER.md
92
105
  - Gemfile
93
106
  - LICENSE
94
107
  - README.md
95
108
  - lib/logstash/outputs/sumologic.rb
109
+ - lib/logstash/outputs/sumologic/common.rb
110
+ - lib/logstash/outputs/sumologic/compressor.rb
111
+ - lib/logstash/outputs/sumologic/header_builder.rb
112
+ - lib/logstash/outputs/sumologic/message_queue.rb
113
+ - lib/logstash/outputs/sumologic/monitor.rb
114
+ - lib/logstash/outputs/sumologic/payload_builder.rb
115
+ - lib/logstash/outputs/sumologic/piler.rb
116
+ - lib/logstash/outputs/sumologic/sender.rb
117
+ - lib/logstash/outputs/sumologic/statistics.rb
96
118
  - logstash-output-sumologic.gemspec
119
+ - spec/outputs/sumologic/compressor_spec.rb
120
+ - spec/outputs/sumologic/header_builder_spec.rb
121
+ - spec/outputs/sumologic/message_queue_spec.rb
122
+ - spec/outputs/sumologic/payload_builder_spec.rb
123
+ - spec/outputs/sumologic/piler_spec.rb
124
+ - spec/outputs/sumologic/sender_spec.rb
97
125
  - spec/outputs/sumologic_spec.rb
98
- - spec/spec_helper.rb
126
+ - spec/test_server.rb
99
127
  homepage: https://github.com/SumoLogic/logstash-output-sumologic
100
128
  licenses:
101
129
  - Apache-2.0
102
130
  metadata:
103
131
  logstash_plugin: 'true'
104
132
  logstash_group: output
105
- post_install_message:
133
+ post_install_message:
106
134
  rdoc_options: []
107
135
  require_paths:
108
136
  - lib
@@ -117,11 +145,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
117
145
  - !ruby/object:Gem::Version
118
146
  version: '0'
119
147
  requirements: []
120
- rubyforge_project:
121
- rubygems_version: 2.6.14.1
122
- signing_key:
148
+ rubyforge_project:
149
+ rubygems_version: 2.7.7
150
+ signing_key:
123
151
  specification_version: 4
124
152
  summary: Deliever the log to Sumo Logic cloud service.
125
153
  test_files:
154
+ - spec/outputs/sumologic/compressor_spec.rb
155
+ - spec/outputs/sumologic/header_builder_spec.rb
156
+ - spec/outputs/sumologic/message_queue_spec.rb
157
+ - spec/outputs/sumologic/payload_builder_spec.rb
158
+ - spec/outputs/sumologic/piler_spec.rb
159
+ - spec/outputs/sumologic/sender_spec.rb
126
160
  - spec/outputs/sumologic_spec.rb
127
- - spec/spec_helper.rb
161
+ - spec/test_server.rb
@@ -1,13 +0,0 @@
1
- The following is a list of people who have contributed ideas, code, bug
2
- reports, or in general have helped Sumo Logic plug-in along its way.
3
-
4
- Contributors:
5
- * Bin Yi (bin3377)
6
- * Brian Goleno (bgoleno)
7
- * Jacek Migdal (jakozaur)
8
- * Chris Dessonville (cddude229)
9
-
10
- Note: If you've sent us patches, bug reports, or otherwise contributed to
11
- Sumo Logic plug-in, and you aren't on the list above and want to be, please let us know
12
- and we'll make sure you're here. Contributions from folks like you are what make
13
- open source awesome.
@@ -1,61 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require "logstash/devutils/rspec/spec_helper"
4
- require "logstash/outputs/sumologic"
5
-
6
- class Server
7
-
8
- def initialize
9
- @queue = Queue.new
10
- @header = {}
11
- end
12
-
13
- def size
14
- @queue.length
15
- end
16
-
17
- def all
18
- @queue.size.times.map { @queue.pop }
19
- end
20
-
21
- def all_sorted
22
- all.sort { |x, y| y <=> x }
23
- end
24
-
25
- def pop
26
- if !@queue.empty?
27
- @queue.pop
28
- else
29
- puts "EMPTY"
30
- end
31
- end
32
-
33
- def header
34
- @header
35
- end
36
-
37
- def empty?
38
- @queue.empty?
39
- end
40
-
41
- def push(data, header)
42
- @header = header
43
- data.split("\n").each do |line|
44
- @queue << line
45
- end
46
- end
47
-
48
- end
49
-
50
- class LogStash::Outputs::SumoLogic
51
- attr_reader :server
52
-
53
- def connect
54
- @server = Server.new
55
- end
56
-
57
- def send_request(content)
58
- @server.push(content, get_headers())
59
- end
60
-
61
- end