logstash-input-azuretopicthreadable 0.9.7 → 0.9.8

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: 1a437fd1ee21ad00b2e8247d0c67f77b101a1744
4
- data.tar.gz: 1b77407063b1026f83cb9835fee892a8d993bbb5
3
+ metadata.gz: 96ef88174ba7b964804e3b621e4e5b539d975c50
4
+ data.tar.gz: abf57a4361a44010378e1ce5c1394b55513ee334
5
5
  SHA512:
6
- metadata.gz: 80c99411492aef16752d31bd3c5a1abd2cd43a19ae8f0d4e34fb643a0c20d50b2d12fcebe860ae8e00d54bc52a40da1ce0a9e9f0a77c82b006991f345ae720eb
7
- data.tar.gz: 2794b69ff5277d9843c81344fbaac00598cf4bdf30f54009bdf6f0bf3b8c5c665067cd2107e1d9e72e1cef930eec9e3b7ddcec85cd9bf5a8a468928b1aba52c3
6
+ metadata.gz: 6c891ca43799d62e4e6454942a010efccdd7d09150f1e06167b6638de2705f10d991e0034994ac039c19a947ea922c79530b5822edc3ddbe8246026412309de4
7
+ data.tar.gz: 587745c2398b4b782140c3446c2f0058cfaf200c377d12cb15ece9c9ba306f83f6ac824dcba39934cce433d89e1cce33235b071f71b23404ae089a00edd44d0f
data/README.md CHANGED
@@ -16,6 +16,10 @@ __*namespace*__
16
16
 
17
17
  The Service Bus namespace.
18
18
 
19
+ __*access_key_name*__
20
+
21
+ Optional: The SAS policy name to the Service Bus resource. If undefined, plugin will assume ACS is used.
22
+
19
23
  __*access_key*__
20
24
 
21
25
  The access key to the Service Bus resource.
@@ -39,15 +43,16 @@ Specifies the number of threads to use to read the messages. The default value i
39
43
 
40
44
  __*thread_sleep_time*__
41
45
 
42
- Specifies the number of seconds each thread should sleep before starting another loop of processing. The default value is 1/50.
46
+ Specifies the number of seconds each thread should sleep before starting another loop of processing when topic is empty. The default value is 1/50.
43
47
 
44
48
  ### Examples
45
49
  ```
46
50
  input
47
51
  {
48
- azuretopic
52
+ azuretopicthreadable
49
53
  {
50
54
  namespace => "mysbns"
55
+ access_key_name => "mySASkeyname"
51
56
  access_key => "VGhpcyBpcyBhIGZha2Uga2V5Lg=="
52
57
  subscription => "mytopicsubscription"
53
58
  topic => "mytopic"
@@ -1,7 +1,6 @@
1
1
  # encoding: utf-8
2
2
  require "logstash/inputs/base"
3
3
  require "logstash/namespace"
4
-
5
4
  require "thread"
6
5
  require "azure"
7
6
 
@@ -11,33 +10,44 @@ class LogStash::Inputs::Azuretopicthreadable < LogStash::Inputs::Base
11
10
 
12
11
  config_name "azuretopicthreadable"
13
12
  milestone 1
14
-
13
+
15
14
  default :codec, "json" # default json codec
16
-
15
+
17
16
  config :namespace, :validate => :string
17
+ config :access_key_name, :validate => :string, :required => false
18
18
  config :access_key, :validate => :string
19
19
  config :subscription, :validate => :string
20
20
  config :topic, :validate => :string
21
21
  config :deliverycount, :validate => :number, :default => 10
22
22
  config :threads, :validate => :number, :default => 1
23
23
  config :thread_sleep_time, :validate => :number, :default => 1.0/50.0
24
-
24
+
25
25
  def initialize(*args)
26
26
  super(*args)
27
27
  end # def initialize
28
-
28
+
29
29
  public
30
30
  def register
31
31
  # Configure credentials
32
32
  Azure.configure do |config|
33
33
  config.sb_namespace = @namespace
34
34
  config.sb_access_key = @access_key
35
+ config.sb_sas_key_name = @access_key_name
36
+ config.sb_sas_key = @access_key
35
37
  end
36
38
  end # def register
37
-
39
+
38
40
  def process(output_queue, pid)
39
41
  # Get a new instance of a service
40
- azure_service_bus = Azure::ServiceBus::ServiceBusService.new
42
+ if @access_key_name
43
+ # SAS key used
44
+ signer = Azure::ServiceBus::Auth::SharedAccessSigner.new
45
+ sb_host = "https://#{Azure.sb_namespace}.servicebus.windows.net"
46
+ azure_service_bus = Azure::ServiceBus::ServiceBusService.new(sb_host, { signer: signer})
47
+ else
48
+ # ACS key
49
+ azure_service_bus = Azure::ServiceBus::ServiceBusService.new
50
+ end
41
51
  while !stop?
42
52
  begin
43
53
  # check if we have a message in the subscription
@@ -45,12 +55,14 @@ class LogStash::Inputs::Azuretopicthreadable < LogStash::Inputs::Base
45
55
  if message
46
56
  # decoding returns a yield
47
57
  codec.decode(message.body) do |event|
48
- decorate(event)
49
- output_queue << event
50
- end # codec.decode
51
- # delete the message after reading it
52
- azure_service_bus.delete_subscription_message(message)
53
- end
58
+ decorate(event)
59
+ output_queue << event
60
+ end
61
+ # delete the message after reading it
62
+ azure_service_bus.delete_subscription_message(message)
63
+ else
64
+ Stud.stoppable_sleep(@thread_sleep_time) { stop? } #topic is probably empty. sleep.
65
+ end
54
66
  rescue LogStash::ShutdownSignal => e
55
67
  raise e
56
68
  rescue => e
@@ -58,11 +70,11 @@ class LogStash::Inputs::Azuretopicthreadable < LogStash::Inputs::Base
58
70
  if message and message.delivery_count > @deliverycount
59
71
  azure_service_bus.delete_subscription_message(message)
60
72
  end
73
+ Stud.stoppable_sleep(@thread_sleep_time) { stop? }
61
74
  end
62
- sleep(@thread_sleep_time)
63
75
  end
64
76
  end # def process
65
-
77
+
66
78
  public
67
79
  def run(output_queue)
68
80
  threads = []
@@ -71,8 +83,8 @@ class LogStash::Inputs::Azuretopicthreadable < LogStash::Inputs::Base
71
83
  end
72
84
  threads.each { |thr| thr.join }
73
85
  end # def run
74
-
86
+
75
87
  public
76
88
  def teardown
77
89
  end # def teardown
78
- end # class LogStash::Inputs::Azuretopic
90
+ end # class LogStash::Inputs::Azuretopic
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-input-azuretopicthreadable'
3
- s.version = '0.9.7'
3
+ s.version = '0.9.8'
4
4
  s.licenses = ['Apache License (2.0)']
5
5
  s.summary = "This plugin reads messages from Azure Service Bus Topics."
6
6
  s.description = "This gem is a Logstash plugin. It reads messages from Azure Service Bus Topics using multiple threads."
metadata CHANGED
@@ -1,18 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-input-azuretopicthreadable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.7
4
+ version: 0.9.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Microsoft Corporation
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-08 00:00:00.000000000 Z
11
+ date: 2017-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: logstash-core-plugin-api
15
- version_requirements: !ruby/object:Gem::Requirement
14
+ requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
@@ -20,7 +19,10 @@ dependencies:
20
19
  - - "<="
21
20
  - !ruby/object:Gem::Version
22
21
  version: '2.99'
23
- requirement: !ruby/object:Gem::Requirement
22
+ name: logstash-core-plugin-api
23
+ prerelease: false
24
+ type: :runtime
25
+ version_requirements: !ruby/object:Gem::Requirement
24
26
  requirements:
25
27
  - - ">="
26
28
  - !ruby/object:Gem::Version
@@ -28,36 +30,34 @@ dependencies:
28
30
  - - "<="
29
31
  - !ruby/object:Gem::Version
30
32
  version: '2.99'
31
- prerelease: false
32
- type: :runtime
33
33
  - !ruby/object:Gem::Dependency
34
- name: azure
35
- version_requirements: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - "~>"
38
- - !ruby/object:Gem::Version
39
- version: 0.7.1
40
34
  requirement: !ruby/object:Gem::Requirement
41
35
  requirements:
42
36
  - - "~>"
43
37
  - !ruby/object:Gem::Version
44
38
  version: 0.7.1
39
+ name: azure
45
40
  prerelease: false
46
41
  type: :runtime
47
- - !ruby/object:Gem::Dependency
48
- name: logstash-devutils
49
42
  version_requirements: !ruby/object:Gem::Requirement
50
43
  requirements:
51
- - - ">="
44
+ - - "~>"
52
45
  - !ruby/object:Gem::Version
53
- version: '0'
46
+ version: 0.7.1
47
+ - !ruby/object:Gem::Dependency
54
48
  requirement: !ruby/object:Gem::Requirement
55
49
  requirements:
56
50
  - - ">="
57
51
  - !ruby/object:Gem::Version
58
52
  version: '0'
53
+ name: logstash-devutils
59
54
  prerelease: false
60
55
  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. It reads messages from Azure Service Bus Topics using multiple threads.
62
62
  email: azdiag@microsoft.com
63
63
  executables: []