bricolage 5.18.0 → 5.18.1
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 +4 -4
- data/lib/bricolage/exception.rb +6 -0
- data/lib/bricolage/logger.rb +22 -1
- data/lib/bricolage/snsdatasource.rb +40 -0
- data/lib/bricolage/version.rb +1 -1
- data/test/home/Gemfile.lock +6 -6
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9d53e1ef12fa46e40f582c88a0c6e7160e9f5289
|
|
4
|
+
data.tar.gz: fdf237fc9cf155993e97e3fd49e056caf61caa1b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 63bd4a335142ce2ff1d0aef8cf96999367919afea579655556654e6ffd22aa09554f613b5212e3ef066fcd68add40f8c39ff5e1aa2a9cf6a90f6038123fba100
|
|
7
|
+
data.tar.gz: b2efecf9474c6ffc6d2809aa523cfd7a2df1ca4c303116eb5d9c540fe3c2b1f0ba9e45b6834313d6067b2506d734d362706592d80109ea50f94b3933b30ed107
|
data/lib/bricolage/exception.rb
CHANGED
|
@@ -30,6 +30,12 @@ module Bricolage
|
|
|
30
30
|
# Aquiring lock takes too long (e.g. VACUUM lock)
|
|
31
31
|
class LockTimeout < JobFailure; end
|
|
32
32
|
|
|
33
|
+
# S3 related exceptions
|
|
34
|
+
class S3Exception < JobFailureByException; end
|
|
35
|
+
|
|
36
|
+
# SNS related exceptions
|
|
37
|
+
class SNSException < JobFailureByException; end
|
|
38
|
+
|
|
33
39
|
# Job error.
|
|
34
40
|
# This exception should NOT be thrown in production environment.
|
|
35
41
|
# You must fix source code or configuration not to be get this exception.
|
data/lib/bricolage/logger.rb
CHANGED
|
@@ -2,7 +2,9 @@ require 'stringio'
|
|
|
2
2
|
require 'logger'
|
|
3
3
|
|
|
4
4
|
module Bricolage
|
|
5
|
+
|
|
5
6
|
class Logger < ::Logger
|
|
7
|
+
|
|
6
8
|
def Logger.intern_severity(sev)
|
|
7
9
|
if sev.kind_of?(Integer)
|
|
8
10
|
sev
|
|
@@ -63,5 +65,24 @@ module Bricolage
|
|
|
63
65
|
"%.2f secs" % seconds
|
|
64
66
|
end
|
|
65
67
|
end
|
|
68
|
+
|
|
66
69
|
end
|
|
67
|
-
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
class NullLogger
|
|
73
|
+
def debug(*args) end
|
|
74
|
+
def debug?() false end
|
|
75
|
+
def info(*args) end
|
|
76
|
+
def info?() false end
|
|
77
|
+
def warn(*args) end
|
|
78
|
+
def warn?() false end
|
|
79
|
+
def error(*args) end
|
|
80
|
+
def error?() false end
|
|
81
|
+
def exception(*args) end
|
|
82
|
+
def with_elapsed_time(*args) yield end
|
|
83
|
+
def elapsed_time(*args) yield end
|
|
84
|
+
def level() Logger::ERROR end
|
|
85
|
+
def level=(l) l end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
end # module Bricolage
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
require 'bricolage/datasource'
|
|
2
|
+
require 'aws-sdk'
|
|
3
|
+
|
|
4
|
+
module Bricolage
|
|
5
|
+
|
|
6
|
+
class SNSDataSource < DataSource
|
|
7
|
+
|
|
8
|
+
declare_type 'sns'
|
|
9
|
+
|
|
10
|
+
def initialize(region:, topic_arn:, access_key_id: nil, secret_access_key: nil)
|
|
11
|
+
@region = region
|
|
12
|
+
@topic_arn = topic_arn
|
|
13
|
+
@access_key_id = access_key_id
|
|
14
|
+
@secret_access_key = secret_access_key
|
|
15
|
+
@client = Aws::SNS::Client.new(region: region, access_key_id: access_key_id, secret_access_key: secret_access_key)
|
|
16
|
+
@topic = Aws::SNS::Topic.new(topic_arn, client: @client)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
attr_reader :region
|
|
20
|
+
attr_reader :client
|
|
21
|
+
attr_reader :topic
|
|
22
|
+
|
|
23
|
+
def publish(message)
|
|
24
|
+
@topic.publish({ message: message })
|
|
25
|
+
rescue Aws::SNS::Errors::InvalidParameter => ex
|
|
26
|
+
raise JobError, "bad SNS configuration (topic_arn=#{@topic_arn.inspect}): #{ex.message}"
|
|
27
|
+
rescue Aws::SNS::Errors::ServiceError => ex
|
|
28
|
+
raise SNSException.wrap(ex)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# IO compatible methods as a logger device
|
|
32
|
+
|
|
33
|
+
alias write publish
|
|
34
|
+
|
|
35
|
+
def close
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
end # class SNSDataSource
|
|
39
|
+
|
|
40
|
+
end # module Bricolage
|
data/lib/bricolage/version.rb
CHANGED
data/test/home/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: ../..
|
|
3
3
|
specs:
|
|
4
|
-
bricolage (5.18.
|
|
4
|
+
bricolage (5.18.1)
|
|
5
5
|
aws-sdk (~> 2)
|
|
6
6
|
mysql2
|
|
7
7
|
pg (~> 0.18.0)
|
|
@@ -11,12 +11,12 @@ PATH
|
|
|
11
11
|
GEM
|
|
12
12
|
remote: https://rubygems.org/
|
|
13
13
|
specs:
|
|
14
|
-
aws-sdk (2.6.
|
|
15
|
-
aws-sdk-resources (= 2.6.
|
|
16
|
-
aws-sdk-core (2.6.
|
|
14
|
+
aws-sdk (2.6.7)
|
|
15
|
+
aws-sdk-resources (= 2.6.7)
|
|
16
|
+
aws-sdk-core (2.6.7)
|
|
17
17
|
jmespath (~> 1.0)
|
|
18
|
-
aws-sdk-resources (2.6.
|
|
19
|
-
aws-sdk-core (= 2.6.
|
|
18
|
+
aws-sdk-resources (2.6.7)
|
|
19
|
+
aws-sdk-core (= 2.6.7)
|
|
20
20
|
coderay (1.1.0)
|
|
21
21
|
fluent-logger (0.5.1)
|
|
22
22
|
msgpack (>= 0.4.4, < 0.6.0, != 0.5.3, != 0.5.2, != 0.5.1, != 0.5.0)
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bricolage
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 5.18.
|
|
4
|
+
version: 5.18.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Minero Aoki
|
|
@@ -182,6 +182,7 @@ files:
|
|
|
182
182
|
- lib/bricolage/rubyjobclass.rb
|
|
183
183
|
- lib/bricolage/s3datasource.rb
|
|
184
184
|
- lib/bricolage/script.rb
|
|
185
|
+
- lib/bricolage/snsdatasource.rb
|
|
185
186
|
- lib/bricolage/sqlstatement.rb
|
|
186
187
|
- lib/bricolage/sqlutils.rb
|
|
187
188
|
- lib/bricolage/taskqueue.rb
|