logstash-input-blueliv 0.2.0 → 1.0.0

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: 619bba88fd2fbfccd22b94d218ad26b6b967393e
4
- data.tar.gz: dc4e01515eacb241eb72b4d9ca79340e02c8d3f7
3
+ metadata.gz: b09d14b8d68852d80f77673edc11b61f7a258069
4
+ data.tar.gz: b02e35ce0e731ed93d6f5f0c1cfd0ab331d02b0c
5
5
  SHA512:
6
- metadata.gz: 2f586e735ed6b7a93ed9e93d519fc7eb2b5183e5793128fa3db446aadf49a68cc2183b4fd5fa3a9a414bd1e910b3a8c78ed94febd3a60f3ed3d0b4bb446e9fa1
7
- data.tar.gz: 6021fb5582fd0e0fa4ce5ba8f8e9fb5d3b8105fa65676dfe9af6ee52d165e21f0432da3c5baa7941f75210f76b10739033a279df3b388da7655b746d427e9908
6
+ metadata.gz: c121a96e0d0ad99afe5680e78f0546b3ccf0b810bf41c2157c225e3f27b439be377dbc95dd0e55749e9e416d7fde2476f1e5543518077e8a7fb912d5afc0a17f
7
+ data.tar.gz: c5930953179f85ea3c8e1056239094536779f25f7e6f98f34e9b64f146636e152bf6bbac96ada0425f574534b9338f8b1cd33fd591a293221b058b2e6e36ac53
@@ -11,17 +11,16 @@ require "securerandom"
11
11
  USER_AGENT = "Logstash v0.1.2"
12
12
  API_CLIENT = "6ee37a93-d064-464b-b4c1-c37e9656273f"
13
13
 
14
- ONE_DAY_IN_SECONDS = 86400
15
-
16
14
  RESOURCES = {
17
15
  :crimeservers => {
18
16
  :items => "crimeServers",
19
17
  :endpoint => "/v1/crimeserver",
20
18
  :feeds => {
21
- :all => {
22
- 900 => "/last",
23
- 3600 => "/recent",
24
- ONE_DAY_IN_SECONDS => "/online"
19
+ :last => {
20
+ 900 => "/last"
21
+ },
22
+ :recent => {
23
+ 3600 => "/recent"
25
24
  },
26
25
  :test => {
27
26
  900 => "/test"
@@ -53,10 +52,9 @@ RESOURCES = {
53
52
 
54
53
  DEFAULT_CONFIG = {
55
54
  "crimeservers" => {
56
- "active" => false,
55
+ "active" => true,
57
56
  "feed_type" => "test",
58
- "interval" => 900,
59
- "initialize" => true
57
+ "interval" => 900
60
58
  },
61
59
  "botips" => {
62
60
  "active" => false,
@@ -96,19 +94,8 @@ class LogStash::Inputs::Blueliv < LogStash::Inputs::Base
96
94
  threads = []
97
95
  @feeds.each do |name, conf|
98
96
  if feeds[name]["active"]
99
- if feeds[name]["initialize"]
100
- if not db_updated?(DateTime.now)
101
- threads << Thread.new do
102
- url, interval = get_url(name, @feeds[name]["feed_type"], ONE_DAY_IN_SECONDS)
103
- get_feed(queue, name, url) { write_last_update_db(DateTime.now) }
104
- url, interval = get_url(name, @feeds[name]["feed_type"], @feeds[name]["interval"])
105
- get_feed_each(queue, name, url, interval) { write_last_update_db(DateTime.now) }
106
- end
107
- end
108
- else
109
- url, interval = get_url(name, @feeds[name]["feed_type"], @feeds[name]["interval"])
110
- threads << Thread.new(get_feed_each(queue, name, url, interval))
111
- end
97
+ url, interval = get_url(name, @feeds[name]["feed_type"], @feeds[name]["interval"])
98
+ threads << Thread.new(get_feed_each(queue, name, url, interval))
112
99
  end
113
100
  end
114
101
 
@@ -172,6 +159,7 @@ class LogStash::Inputs::Blueliv < LogStash::Inputs::Base
172
159
  end
173
160
 
174
161
  def get_feed(queue, name, url, &block)
162
+ @logger.info("Start getting #{url} feed")
175
163
  loop do
176
164
  begin
177
165
  response = client.get("#{url}?key=#{API_CLIENT}", :Authorization => @auth, :timeout => @timeout,
@@ -182,17 +170,20 @@ class LogStash::Inputs::Blueliv < LogStash::Inputs::Base
182
170
  it["location"] = [it["longitude"].to_f, it["latitude"].to_f]
183
171
  collection = RESOURCES[name.to_sym][:items].downcase
184
172
  it["@collection"] = collection
185
- it["_id"] = SecureRandom.base64(32) unless it.has_key?("_id")
173
+ it["document_id"] = if it.has_key?("_id") then it["_id"] else SecureRandom.base64(32) end
174
+ it.delete("_id") if it.has_key?("_id")
175
+ @logger.info("#{it}")
186
176
  evt = LogStash::Event.new(it)
187
177
  decorate(evt)
188
178
  queue << evt
189
179
  end
180
+ @logger.info("End getting data from #{url}")
190
181
  block.call if block
191
182
  break
192
183
  rescue RestClient::Exception => e
193
184
  case e.http_code
194
185
  when 401, 403
195
- @logger.info("You do not have access to this resource! Please contact #{@contact}")
186
+ @logger.info("You do not have access to this resource #{url}! Please contact #{@contact}")
196
187
  break
197
188
  when 404
198
189
  @logger.info("Resource #{url} not found")
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "logstash-input-blueliv"
3
- s.version = "0.2.0"
3
+ s.version = "1.0.0"
4
4
  s.licenses = ["Apache License (2.0)"]
5
5
  s.summary = "This plugin allows users to access Blueliv Crime Servers and Bot IPs feeds."
6
6
  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 logstash-input-blueliv. This gem is not a stand-alone program"
metadata CHANGED
@@ -1,71 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-input-blueliv
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Blueliv
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-11 00:00:00.000000000 Z
11
+ date: 2016-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
+ name: logstash-core
15
+ version_requirements: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: 1.4.0
14
20
  requirement: !ruby/object:Gem::Requirement
15
21
  requirements:
16
22
  - - '>='
17
23
  - !ruby/object:Gem::Version
18
24
  version: 1.4.0
19
- name: logstash-core
20
25
  prerelease: false
21
26
  type: :runtime
27
+ - !ruby/object:Gem::Dependency
28
+ name: logstash-codec-plain
22
29
  version_requirements: !ruby/object:Gem::Requirement
23
30
  requirements:
24
31
  - - '>='
25
32
  - !ruby/object:Gem::Version
26
- version: 1.4.0
27
- - !ruby/object:Gem::Dependency
33
+ version: '0'
28
34
  requirement: !ruby/object:Gem::Requirement
29
35
  requirements:
30
36
  - - '>='
31
37
  - !ruby/object:Gem::Version
32
38
  version: '0'
33
- name: logstash-codec-plain
34
39
  prerelease: false
35
40
  type: :runtime
41
+ - !ruby/object:Gem::Dependency
42
+ name: rest-client
36
43
  version_requirements: !ruby/object:Gem::Requirement
37
44
  requirements:
38
- - - '>='
45
+ - - ~>
39
46
  - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
47
+ version: 1.8.0
42
48
  requirement: !ruby/object:Gem::Requirement
43
49
  requirements:
44
50
  - - ~>
45
51
  - !ruby/object:Gem::Version
46
52
  version: 1.8.0
47
- name: rest-client
48
53
  prerelease: false
49
54
  type: :runtime
55
+ - !ruby/object:Gem::Dependency
56
+ name: logstash-devutils
50
57
  version_requirements: !ruby/object:Gem::Requirement
51
58
  requirements:
52
- - - ~>
59
+ - - '>='
53
60
  - !ruby/object:Gem::Version
54
- version: 1.8.0
55
- - !ruby/object:Gem::Dependency
61
+ version: '0'
56
62
  requirement: !ruby/object:Gem::Requirement
57
63
  requirements:
58
64
  - - '>='
59
65
  - !ruby/object:Gem::Version
60
66
  version: '0'
61
- name: logstash-devutils
62
67
  prerelease: false
63
68
  type: :development
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - '>='
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
69
  description: This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install logstash-input-blueliv. This gem is not a stand-alone program
70
70
  email: community@blueliv.com
71
71
  executables: []