alephant-publisher-queue 1.4.1 → 2.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: 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: