logstash-input-blueliv 0.2.0 → 1.0.0

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: 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: []