alephant-publisher-queue 1.4.1 → 2.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: 8fb76d30bb12bb07081c42eb0eeddccb132f7161
4
- data.tar.gz: 9cbc18dd80a2355102c869809dbbdc1ac6f6e0e4
3
+ metadata.gz: 43275970bcb48206ee6a00c7f7889a00579fc983
4
+ data.tar.gz: 48081162062dda40382d065ca4b2e11fb15decf6
5
5
  SHA512:
6
- metadata.gz: 77f1130b17759000092c0c650a8bfe9d6eb6132577d3e4c4c5e071d6e218eb95c9273f785bff1bd3db2988413ee10235a45875adfd8b0a4f318577c2b4ebaad2
7
- data.tar.gz: 67d9550e9fce5bb4c11dabc23d5b194fb6a8b6623febf9a8845ee25a7bc8bc3391417bde6c446f9b0c2f2f2998b60c378925f833b6d0a31422bb016c185c7b14
6
+ metadata.gz: 3cc53d959cc6c21cc85bbd8f9acf6bd5c2eb74cab2915919a37d69ed0563cfbf3df6fea8db032803b7645dcf12d77c67d7090992d6f6518e2b11a2d49739b4f1
7
+ data.tar.gz: 07050f7c856a0d1db3bca8396b9fc5bcf832c067c80f41f6c7d67f0f5169334d31ddb65ba0295d3f172233cdf5df6f0d10069ccb6c4a525fdd4d6f677c8c5d00
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in alephant-publishing.gemspec
4
4
  gemspec
data/Guardfile CHANGED
@@ -1,6 +1,6 @@
1
- guard 'rspec' do
1
+ guard "rspec" do
2
2
  watch(%r{^spec/.+_spec\.rb$})
3
3
  watch(%r{^lib/.+\.rb$})
4
4
  watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
5
- watch('spec/spec_helper.rb') { "spec" }
5
+ watch("spec/spec_helper.rb") { "spec" }
6
6
  end
data/Rakefile CHANGED
@@ -1,9 +1,9 @@
1
- $:.unshift File.join(File.dirname(__FILE__), 'lib')
1
+ $:.unshift File.join(File.dirname(__FILE__), "lib")
2
2
 
3
- require 'rspec/core/rake_task'
4
- require 'bundler/gem_tasks'
5
- require 'alephant/publisher/queue'
3
+ require "rspec/core/rake_task"
4
+ require "bundler/gem_tasks"
5
+ require "alephant/publisher/queue"
6
6
 
7
- require 'rake/rspec'
7
+ require "rake/rspec"
8
8
 
9
9
  task :default => :spec
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
2
+ lib = File.expand_path("../lib", __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'alephant/publisher/queue/version'
4
+ require "alephant/publisher/queue/version"
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "alephant-publisher-queue"
@@ -28,13 +28,13 @@ Gem::Specification.new do |spec|
28
28
  spec.add_development_dependency "pry-nav"
29
29
  spec.add_development_dependency 'rake-rspec'
30
30
 
31
- spec.add_runtime_dependency 'rake'
32
- spec.add_runtime_dependency 'aws-sdk', '~> 1.0'
33
- spec.add_runtime_dependency 'crimp'
34
- spec.add_runtime_dependency 'alephant-support'
35
- spec.add_runtime_dependency 'alephant-sequencer'
36
- spec.add_runtime_dependency 'alephant-cache'
37
- spec.add_runtime_dependency 'alephant-logger', "1.2.0"
38
- spec.add_runtime_dependency 'alephant-lookup'
39
- spec.add_runtime_dependency 'alephant-renderer'
31
+ spec.add_runtime_dependency "rake"
32
+ spec.add_runtime_dependency "aws-sdk", "~> 1.0"
33
+ spec.add_runtime_dependency "crimp"
34
+ spec.add_runtime_dependency "alephant-support"
35
+ spec.add_runtime_dependency "alephant-sequencer"
36
+ spec.add_runtime_dependency "alephant-cache"
37
+ spec.add_runtime_dependency "alephant-logger", "~> 3.0.2"
38
+ spec.add_runtime_dependency "alephant-lookup"
39
+ spec.add_runtime_dependency "alephant-renderer"
40
40
  end
@@ -1,7 +1,8 @@
1
- require 'aws-sdk'
2
- require 'yaml'
1
+ require "aws-sdk"
2
+ require "yaml"
3
+ require "alephant/logger"
3
4
 
4
- config_file = 'config/aws.yaml'
5
+ config_file = "config/aws.yaml"
5
6
 
6
7
  AWS.eager_autoload!
7
8
 
@@ -1,5 +1,5 @@
1
- require 'aws-sdk'
2
- require 'alephant/logger'
1
+ require "aws-sdk"
2
+ require "alephant/logger"
3
3
 
4
4
  module Alephant
5
5
  module Publisher
@@ -52,7 +52,13 @@ module Alephant
52
52
  instance.merge! opts
53
53
  rescue Exception => e
54
54
  logger.metric "QueueOptionsInvalidKeySpecified"
55
- logger.error "Publisher::Queue::Options#validate: '#{e.message}'"
55
+ logger.error(
56
+ "event" => "QueueOptionsKeyInvalid",
57
+ "class" => e.class,
58
+ "message" => e.message,
59
+ "backtrace" => e.backtrace.join.to_s,
60
+ "method" => "#{self.class}#validate"
61
+ )
56
62
  puts e.message
57
63
  end
58
64
  end
@@ -1,5 +1,5 @@
1
- require 'alephant/publisher/queue/writer'
2
- require 'alephant/publisher/queue/processor/base'
1
+ require "alephant/publisher/queue/writer"
2
+ require "alephant/publisher/queue/processor/base"
3
3
 
4
4
  module Alephant
5
5
  module Publisher
@@ -39,8 +39,13 @@ module Alephant
39
39
  end
40
40
 
41
41
  def store(message)
42
- logger.info log_message(message)
43
- store_item message
42
+ store_item(message).tap do
43
+ logger.info(
44
+ "event" => "MessageStored",
45
+ "messageBody" => body_for(message),
46
+ "method" => "#{self.class}#store"
47
+ )
48
+ end
44
49
  end
45
50
 
46
51
  def store_item(message)
@@ -62,14 +67,8 @@ module Alephant
62
67
  ]
63
68
  end
64
69
 
65
- def log_message(m)
66
- log_message_parts(m.id).tap do |parts|
67
- parts << "(#{encoded_body m.body})" if log_message_body
68
- end.join(" ")
69
- end
70
-
71
- def encoded_body(message)
72
- JSON.generate message.split("\n")
70
+ def body_for(message)
71
+ log_message_body ? message.body : "No message body available"
73
72
  end
74
73
 
75
74
  def date_key
@@ -1,5 +1,5 @@
1
- require 'aws-sdk'
2
- require 'alephant/logger'
1
+ require "aws-sdk"
2
+ require "alephant/logger"
3
3
 
4
4
  module Alephant
5
5
  module Publisher
@@ -19,7 +19,13 @@ module Alephant
19
19
  @timeout = timeout
20
20
  @wait_time = wait_time
21
21
 
22
- logger.debug("Queue#initialize: reading from #{queue.url}")
22
+ logger.info(
23
+ "event" => "QueueConfigured",
24
+ "queueUrl" => queue.url,
25
+ "archiver" => archiver,
26
+ "timeout" => timeout,
27
+ "method" => "#{self.class}#initialize"
28
+ )
23
29
  end
24
30
 
25
31
  def message
@@ -30,7 +36,11 @@ module Alephant
30
36
 
31
37
  def process(m)
32
38
  logger.metric "MessagesReceived"
33
- logger.info("Queue#message: received #{m.id}")
39
+ logger.info(
40
+ "event" => "QueueMessageReceived",
41
+ "messageId" => m.id,
42
+ "method" => "#{self.class}#process"
43
+ )
34
44
  archive m
35
45
  end
36
46
 
@@ -38,7 +48,13 @@ module Alephant
38
48
  archiver.see(m) unless archiver.nil?
39
49
  rescue StandardError => e
40
50
  logger.metric "ArchiveFailed"
41
- logger.warn("Queue#archive: archive failed (#{e.message})");
51
+ logger.error(
52
+ "event" => "MessageArchiveFailed",
53
+ "class" => e.class,
54
+ "message" => e.message,
55
+ "backtrace" => e.backtrace.join.to_s,
56
+ "method" => "#{self.class}#archive"
57
+ )
42
58
  end
43
59
 
44
60
  def receive
@@ -1,7 +1,7 @@
1
1
  module Alephant
2
2
  module Publisher
3
3
  module Queue
4
- VERSION = "1.4.1"
4
+ VERSION = "2.0.0"
5
5
  end
6
6
  end
7
7
  end
@@ -1,11 +1,11 @@
1
- require 'crimp'
1
+ require "crimp"
2
2
 
3
- require 'alephant/cache'
4
- require 'alephant/lookup'
5
- require 'alephant/logger'
6
- require 'alephant/sequencer'
7
- require 'alephant/support/parser'
8
- require 'alephant/renderer'
3
+ require "alephant/cache"
4
+ require "alephant/lookup"
5
+ require "alephant/logger"
6
+ require "alephant/sequencer"
7
+ require "alephant/support/parser"
8
+ require "alephant/renderer"
9
9
 
10
10
  module Alephant
11
11
  module Publisher
@@ -45,16 +45,42 @@ module Alephant
45
45
  end
46
46
 
47
47
  def write(id, view)
48
- logger.info "Publisher::Queue::Writer#writes: id '#{id}', view '#{view}'"
49
48
  seq_for(id).validate(message) do
50
49
  store(id, view, location_for(id), :msg_id => message.id)
50
+ end.tap do
51
+ logger.info(
52
+ "event" => "MessageWritten",
53
+ "id" => id,
54
+ "view" => view,
55
+ "method" => "#{self.class}#write"
56
+ )
51
57
  end
52
58
  end
53
59
 
54
60
  def store(id, view, location, storage_opts = {})
55
- logger.info "Publisher::Queue::Writer#store: location '#{location}', message.id '#{message.id}'"
56
- cache.put(location, view.render, view.content_type, storage_opts)
57
- lookup.write(id, options, seq_id, location)
61
+ render = view.render
62
+ cache.put(location, render, view.content_type, storage_opts).tap do
63
+ logger.info(
64
+ "event" => "MessageStored",
65
+ "location" => location,
66
+ "view" => view,
67
+ "render" => render.force_encoding("utf-8"),
68
+ "contentType" => view.content_type,
69
+ "storageOptions" => storage_opts,
70
+ "messageId" => message.id,
71
+ "method" => "#{self.class}#store"
72
+ )
73
+ end
74
+ lookup.write(id, options, seq_id, location).tap do
75
+ logger.info(
76
+ "event" => "LookupLocationUpdated",
77
+ "id" => id,
78
+ "options" => options,
79
+ "sequenceId" => seq_id,
80
+ "location" => location,
81
+ "method" => "#{self.class}#write"
82
+ )
83
+ end
58
84
  end
59
85
 
60
86
  def location_for(id)
@@ -66,7 +92,7 @@ module Alephant
66
92
  end
67
93
 
68
94
  def batch?
69
- !batch.nil?.tap { |b| logger.info "Publisher::Queue::Writer#batch?: #{b}" }
95
+ !batch.nil?
70
96
  end
71
97
 
72
98
  def seq_for(id)
@@ -74,7 +100,7 @@ module Alephant
74
100
  config[:sequencer_table_name],
75
101
  seq_key_from(id),
76
102
  config[:sequence_id_path],
77
- config[:keep_all_messages] == 'true'
103
+ config[:keep_all_messages] == "true"
78
104
  )
79
105
  end
80
106
 
@@ -1,12 +1,12 @@
1
- require_relative 'env'
1
+ require_relative "env"
2
2
 
3
- require 'alephant/publisher/queue/version'
4
- require 'alephant/publisher/queue/options'
5
- require 'alephant/publisher/queue/sqs_helper/queue'
6
- require 'alephant/publisher/queue/sqs_helper/archiver'
7
- require 'alephant/logger'
8
- require 'alephant/publisher/queue/processor'
9
- require 'json'
3
+ require "alephant/publisher/queue/version"
4
+ require "alephant/publisher/queue/options"
5
+ require "alephant/publisher/queue/sqs_helper/queue"
6
+ require "alephant/publisher/queue/sqs_helper/archiver"
7
+ require "alephant/logger"
8
+ require "alephant/publisher/queue/processor"
9
+ require "json"
10
10
 
11
11
  module Alephant
12
12
  module Publisher
@@ -68,8 +68,13 @@ module Alephant
68
68
  end
69
69
 
70
70
  def sqs_queue_options
71
- logger.info "Publisher::Queue::Publisher#sqs_queue_options: AWS Account ID '#{opts.queue[:aws_account_id]}'"
72
- opts.queue[:aws_account_id].nil? ? {} : { :queue_owner_aws_account_id => opts.queue[:aws_account_id] }
71
+ (opts.queue[:aws_account_id].nil? ? {} : { :queue_owner_aws_account_id => opts.queue[:aws_account_id] }).tap do |ops|
72
+ logger.info(
73
+ "event" => "SQSQueueOptionsConfigured",
74
+ "options" => ops,
75
+ "method" => "#{self.class}#sqs_queue_options"
76
+ )
77
+ end
73
78
  end
74
79
 
75
80
  def aws_queue
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alephant-publisher-queue
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - BBC News
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-02 00:00:00.000000000 Z
11
+ date: 2015-07-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -223,17 +223,17 @@ dependencies:
223
223
  - !ruby/object:Gem::Dependency
224
224
  requirement: !ruby/object:Gem::Requirement
225
225
  requirements:
226
- - - '='
226
+ - - ~>
227
227
  - !ruby/object:Gem::Version
228
- version: 1.2.0
228
+ version: 3.0.2
229
229
  name: alephant-logger
230
230
  prerelease: false
231
231
  type: :runtime
232
232
  version_requirements: !ruby/object:Gem::Requirement
233
233
  requirements:
234
- - - '='
234
+ - - ~>
235
235
  - !ruby/object:Gem::Version
236
- version: 1.2.0
236
+ version: 3.0.2
237
237
  - !ruby/object:Gem::Dependency
238
238
  requirement: !ruby/object:Gem::Requirement
239
239
  requirements: