fluent-plugin-azure-queue 0.0.8.pre → 0.0.11.pre

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: 7dec8e5dd6a0f5973f5741702060efb40cc04b22
4
- data.tar.gz: 0b1fb55a244ccc5a8a1ad390d09f1950eaf3e22c
3
+ metadata.gz: 37078952b1ed7c05bf93e680880cefb7972f7bcd
4
+ data.tar.gz: 92a27fe6426bdcb45af5376ee63c071fc786021c
5
5
  SHA512:
6
- metadata.gz: d4cf9f3f62e6213c4aeb421741bcde86fc4ecffef9a0b0b3efa0c0002390cb58e398c8187d698bab9b9f0babd01c531ea5a0273877cfbad7bbdb74cf505e4555
7
- data.tar.gz: 6092c42d2fba01796c75085c1692e4f94696f37ba7314fdf38273d3cc309d6187fcf4562b44a46df7203f7b9f3dc865e0bb304248f0fa39d3bc9c568eb378e98
6
+ metadata.gz: 8b35295865bc0d3703a843cfb49d0c751ad2186dda249861b108c1af36d65381d8d97e671923ea9bdbe47b215a0886411f8d71ea484b898f661029623bc5d63b
7
+ data.tar.gz: 08cc210e8ae481c643b9614ffa71087a8f0867b2d00b40d40d877b1d8a8f727cfb058c2385badb75734ec25e93d0dc6d2f14b9f0779e9af76474f68e80c128d6
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.8.pre
1
+ 0.0.11.pre
@@ -16,7 +16,8 @@ Gem::Specification.new do |gem|
16
16
  gem.require_paths = ['lib']
17
17
 
18
18
  gem.add_dependency "fluentd", [">= 0.12.2", "< 0.14"]
19
- gem.add_dependency "azure-storage", [">= 0.12.3.preview", "< 0.13"]
19
+ gem.add_dependency "azure-storage-blob", [">= 1.0.1", "< 1.1.0"]
20
+ gem.add_dependency "azure-storage-queue", [">= 1.0.1", "< 1.1.0"]
20
21
  gem.add_dependency "nokogiri"
21
22
  gem.add_dependency "concurrent-ruby"
22
23
  gem.add_dependency "avro", ">= 1.8"
@@ -1,5 +1,7 @@
1
1
  require 'fluent/input'
2
- require 'azure/storage'
2
+ require 'azure/storage/common'
3
+ require "azure/storage/blob"
4
+ require "azure/storage/queue"
3
5
  require "avro"
4
6
 
5
7
  module Fluent
@@ -34,9 +36,11 @@ module Fluent
34
36
  if @lease_duration > 60 || @lease_duration < 15
35
37
  raise Fluent::ConfigError, "fluent-plugin-azure-queue: 'lease_duration' parameter must be between 15 and 60: #{@lease_duration}"
36
38
  end
37
- @azure_client = Azure::Storage::Client.create(
39
+ azure_client = Azure::Storage::Common::Client.create(
38
40
  :storage_account_name => @storage_account_name,
39
41
  :storage_access_key => @storage_access_key)
42
+ @blob_client = Azure::Storage::Blob::BlobService.new(client: azure_client)
43
+ @queue_client = Azure::Storage::Queue::QueueService.new(client: azure_client)
40
44
  @running = true
41
45
  @containers = container_names.split(',').map { |c| c.strip }
42
46
 
@@ -73,7 +77,7 @@ module Fluent
73
77
  def ingest_from_blob_list
74
78
  @containers.each do |container_name|
75
79
  begin
76
- blobs = @azure_client.blob_client.list_blobs(container_name)
80
+ blobs = @blob_client.list_blobs(container_name)
77
81
  blobs = blobs.select { |b| b.properties[:lease_status] == "unlocked" }
78
82
  log.info("Found #{blobs.count} unlocked blobs", container_name: container_name)
79
83
  # Blobs come back with oldest first
@@ -89,11 +93,11 @@ module Fluent
89
93
 
90
94
  def ingest_from_queue
91
95
  begin
92
- blob_id_messages = @azure_client.queue_client.list_messages(@queue_name, @queue_lease_time, { number_of_messages: 32 })
96
+ blob_id_messages = @queue_client.list_messages(@queue_name, @queue_lease_time, { number_of_messages: 32 })
93
97
  blob_id_messages.each do |blob_id_message|
94
98
  blob_id = JSON.parse(Base64.decode64(blob_id_message.message_text))
95
99
  ingest_blob(blob_id["Container"], blob_id["Name"])
96
- @azure_client.queue_client.delete_message(@queue_name, blob_id_message.id, blob_id_message.pop_receipt)
100
+ @queue_client.delete_message(@queue_name, blob_id_message.id, blob_id_message.pop_receipt)
97
101
  end
98
102
  rescue => e
99
103
  log.warn(error: e)
@@ -103,13 +107,13 @@ module Fluent
103
107
 
104
108
  def ingest_blob(container_name, blob_name)
105
109
  begin
106
- lease_id = @azure_client.blob_client.acquire_blob_lease(container_name, blob_name, duration: @lease_duration)
110
+ lease_id = @blob_client.acquire_blob_lease(container_name, blob_name, duration: @lease_duration)
107
111
  log.info("Blob Leased", blob_name: blob_name)
108
- blob, blob_contents = @azure_client.blob_client.get_blob(container_name, blob_name)
112
+ blob, blob_contents = @blob_client.get_blob(container_name, blob_name)
109
113
  emit_blob_messages(blob_contents)
110
114
  log.trace("Done Ingest blob", blob_name: blob_name)
111
115
  begin
112
- delete_blob(container_name, blob, lease_id)
116
+ @blob_client.delete_blob(container_name, blob_name, lease_id: lease_id)
113
117
  log.debug("Blob deleted", blob_name: blob_name)
114
118
  rescue Exception => e
115
119
  log.warn("Records emmitted but blob not deleted", container_name: container_name, blob_name: blob_name, error: e)
@@ -149,12 +153,5 @@ module Fluent
149
153
  end
150
154
  router.emit_stream(@tag, event_stream)
151
155
  end
152
-
153
- def delete_blob(container_name, blob, lease_id)
154
- # Hack because 'delete_blob' doesn't support lease_id yet
155
- Azure::Storage::Service::StorageService.register_request_callback { |headers| headers["x-ms-lease-id"] = lease_id }
156
- @azure_client.blob_client.delete_blob(container_name, blob.name)
157
- Azure::Storage::Service::StorageService.register_request_callback { |headers| headers }
158
- end
159
156
  end
160
157
  end
@@ -1,5 +1,5 @@
1
1
  require 'fluent/input'
2
- require 'azure/storage'
2
+ require 'azure/storage/queue'
3
3
  require 'concurrent'
4
4
 
5
5
  module Fluent
@@ -27,9 +27,9 @@ module Fluent
27
27
 
28
28
  def start
29
29
  super
30
- @queue_client = Azure::Storage::Client.create(
30
+ @queue_client = Azure::Storage::Queue::QueueService.create(
31
31
  :storage_account_name => @storage_account_name,
32
- :storage_access_key => @storage_access_key).queue_client
32
+ :storage_access_key => @storage_access_key)
33
33
  log.debug("Succeeded to creating azure queue client")
34
34
  @running = true
35
35
 
@@ -50,8 +50,9 @@ class AzureEventHubCaptureInputTest < Test::Unit::TestCase
50
50
  def setup_mocks(driver)
51
51
  blob_client = flexmock("blob_client")
52
52
  queue_client = flexmock("queue_client")
53
- client = flexmock("client", :blob_client => blob_client, :queue_client => queue_client)
54
- flexmock(Azure::Storage::Client, :create => client)
53
+ flexmock(Azure::Storage::Common::Client, :create => nil)
54
+ flexmock(Azure::Storage::Queue::QueueService, :new => queue_client)
55
+ flexmock(Azure::Storage::Blob::BlobService, :new => blob_client)
55
56
  [blob_client, queue_client]
56
57
  end
57
58
 
@@ -71,8 +72,8 @@ class AzureEventHubCaptureInputTest < Test::Unit::TestCase
71
72
  blob_client, queue_client = setup_mocks(d)
72
73
  blob_client.should_receive(:list_blobs).with(d.instance.container_names).and_return(blobs).once
73
74
  plugin = flexmock(d.instance)
74
- plugin.should_receive(:ingest_blob).with(d.instance.container_names, blobs[0]).once()
75
- plugin.should_receive(:ingest_blob).with(d.instance.container_names, blobs[1]).once()
75
+ plugin.should_receive(:ingest_blob).with(d.instance.container_names, blobs[0].name).once()
76
+ plugin.should_receive(:ingest_blob).with(d.instance.container_names, blobs[1].name).once()
76
77
  d.run do
77
78
  sleep 1
78
79
  end
@@ -121,11 +122,11 @@ class AzureEventHubCaptureInputTest < Test::Unit::TestCase
121
122
  blob_client.should_receive(:acquire_blob_lease).with(d.instance.container_names, blob.name, duration: d.instance.lease_duration).and_return(lease_id).once
122
123
  updated_blob = Struct::Blob.new("test1", lease_status: "locked")
123
124
  blob_contents = flexmock("blob_contents")
124
- blob_client.should_receive(:get_blob).with(d.instance.container_names, blob.name).and_return([updated_blob, blob_contents]).once
125
+ blob_client.should_receive(:get_blob).with(d.instance.container_names, blob.name).and_return([updated_blob, blob_contents]).once
125
126
  plugin.should_receive(:emit_blob_messages).with(blob_contents).once
126
- plugin.should_receive(:delete_blob).with(d.instance.container_names, updated_blob, lease_id).once
127
+ blob_client.should_receive(:delete_blob).with(d.instance.container_names, updated_blob.name, lease_id: lease_id).once
127
128
  d.run do
128
- plugin.send(:ingest_blob, d.instance.container_names, blob)
129
+ plugin.send(:ingest_blob, d.instance.container_names, blob.name)
129
130
  end
130
131
  end
131
132
 
@@ -41,8 +41,7 @@ class AzureQueueInputTest < Test::Unit::TestCase
41
41
  driver.instance.queue_name,
42
42
  driver.instance.lease_time,
43
43
  { number_of_messages: 1}).and_return(messages).once
44
- client = flexmock("client", :queue_client => queue_client)
45
- flexmock(Azure::Storage::Client, :create => client)
44
+ flexmock(Azure::Storage::Queue::QueueService, :create => queue_client)
46
45
  queue_client
47
46
  end
48
47
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-azure-queue
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8.pre
4
+ version: 0.0.11.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Bonebrake
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-19 00:00:00.000000000 Z
11
+ date: 2018-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd
@@ -31,25 +31,45 @@ dependencies:
31
31
  - !ruby/object:Gem::Version
32
32
  version: '0.14'
33
33
  - !ruby/object:Gem::Dependency
34
- name: azure-storage
34
+ name: azure-storage-blob
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 0.12.3.preview
39
+ version: 1.0.1
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
- version: '0.13'
42
+ version: 1.1.0
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 0.12.3.preview
49
+ version: 1.0.1
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
- version: '0.13'
52
+ version: 1.1.0
53
+ - !ruby/object:Gem::Dependency
54
+ name: azure-storage-queue
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: 1.0.1
60
+ - - "<"
61
+ - !ruby/object:Gem::Version
62
+ version: 1.1.0
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: 1.0.1
70
+ - - "<"
71
+ - !ruby/object:Gem::Version
72
+ version: 1.1.0
53
73
  - !ruby/object:Gem::Dependency
54
74
  name: nokogiri
55
75
  requirement: !ruby/object:Gem::Requirement
@@ -172,7 +192,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
172
192
  version: 1.3.1
173
193
  requirements: []
174
194
  rubyforge_project:
175
- rubygems_version: 2.0.14.1
195
+ rubygems_version: 2.6.14
176
196
  signing_key:
177
197
  specification_version: 4
178
198
  summary: Fluent input plugin for azure queue input