embulk-input-marketo 0.5.1 → 0.5.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/embulk-input-marketo.gemspec +2 -2
- data/lib/embulk/input/marketo/base.rb +1 -1
- data/lib/embulk/input/marketo_api/soap/activity_log.rb +1 -2
- data/lib/embulk/input/marketo_api/soap/base.rb +2 -1
- data/lib/embulk/input/marketo_api/soap/lead.rb +2 -2
- data/test/embulk/input/marketo/test_activity_log.rb +31 -0
- data/test/embulk/input/marketo_api/soap/test_base.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de07e24ca3f14e364b3f15895ed56a96f09852a4
|
4
|
+
data.tar.gz: 87f22e2378c027eed276168c6b46ace5aebb262d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ba3f66db79035db3ae0c6a32f55c6e2e9ce003db9dd5c858eab4b65c1c7897e8e79f36af128729e3452a2c5c1b178391bbd9d3e05e8e13941fe33175d5bf1d9c
|
7
|
+
data.tar.gz: c4a34c34dc46d20767a79e0ac3832d4dd5cc4cc57b15cc936e0cb3dd9840ffa08fcbf5ae1bbc1275a3511e7b78b75106d34526a8b454b52070ad215b21ca3b06
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
## 0.5.2 - 2016-04-27
|
2
|
+
* [enhancement] Make debug easier [#54](https://github.com/treasure-data/embulk-input-marketo/pull/54)
|
3
|
+
* [fixed] Recognize empty string as nil value [#53](https://github.com/treasure-data/embulk-input-marketo/pull/53)
|
4
|
+
|
1
5
|
## 0.5.1 - 2016-04-06
|
2
6
|
|
3
7
|
* [maintenance] Relax dependency version
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "embulk-input-marketo"
|
3
|
-
spec.version = "0.5.
|
3
|
+
spec.version = "0.5.2"
|
4
4
|
spec.authors = ["uu59", "yoshihara"]
|
5
5
|
spec.summary = "Marketo input plugin for Embulk"
|
6
6
|
spec.description = "Loads records from Marketo."
|
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
|
|
14
14
|
|
15
15
|
spec.add_dependency 'savon', ['~> 2.11.1']
|
16
16
|
spec.add_dependency 'httpclient'
|
17
|
-
spec.add_dependency 'perfect_retry', ["~> 0.
|
17
|
+
spec.add_dependency 'perfect_retry', ["~> 0.5"]
|
18
18
|
spec.add_development_dependency 'embulk', [">= 0.6.13", "< 1.0"]
|
19
19
|
spec.add_development_dependency 'bundler', ['~> 1.0']
|
20
20
|
spec.add_development_dependency 'rake', ['>= 10.0']
|
@@ -51,14 +51,13 @@ module Embulk
|
|
51
51
|
}
|
52
52
|
request[:start_position][:offset] = options[:offset] if options[:offset]
|
53
53
|
|
54
|
-
Embulk.logger.info "Fetching from '#{from}' to '#{to}'..."
|
55
54
|
fetch(request, options, &block)
|
56
55
|
end
|
57
56
|
|
58
57
|
def fetch(request, options={}, &block)
|
59
58
|
response = savon_call(:get_lead_changes, {message: request}, options)
|
60
59
|
remaining = response.xpath('//remainingCount').text.to_i
|
61
|
-
Embulk.logger.info "Remaining records: #{
|
60
|
+
Embulk.logger.info "Remaining #{remaining} records for this range: from '#{request[:start_position][:oldest_created_at]}' to '#{request[:start_position][:latest_created_at]}'."
|
62
61
|
|
63
62
|
activities = response.xpath('//leadChangeRecord')
|
64
63
|
|
@@ -29,7 +29,7 @@ module Embulk
|
|
29
29
|
# NOTE: Do not memoize this to use always fresh signature (avoid 20016 error)
|
30
30
|
# ref. https://jira.talendforge.org/secure/attachmentzip/unzip/167201/49761%5B1%5D/Marketo%20Enterprise%20API%202%200.pdf (41 page)
|
31
31
|
Savon.client(
|
32
|
-
log:
|
32
|
+
log: false,
|
33
33
|
logger: Embulk.logger,
|
34
34
|
wsdl: wsdl,
|
35
35
|
soap_header: headers,
|
@@ -50,6 +50,7 @@ module Embulk
|
|
50
50
|
config.rescues = [StandardError, Timeout::Error]
|
51
51
|
config.logger = Embulk.logger
|
52
52
|
config.log_level = nil
|
53
|
+
config.raise_original_error = true
|
53
54
|
end
|
54
55
|
end
|
55
56
|
|
@@ -47,11 +47,11 @@ module Embulk
|
|
47
47
|
def fetch(request = {}, retry_options, &block)
|
48
48
|
start = Time.now
|
49
49
|
response = savon_call(:get_multiple_leads, {message: request}, retry_options)
|
50
|
-
Embulk.logger.
|
50
|
+
Embulk.logger.debug "Fetched in #{Time.now - start} seconds"
|
51
51
|
|
52
52
|
records = response.xpath('//leadRecordList/leadRecord')
|
53
53
|
remaining = response.xpath('//remainingCount').text.to_i
|
54
|
-
Embulk.logger.
|
54
|
+
Embulk.logger.debug "Fetched records in the range: #{records.size}"
|
55
55
|
Embulk.logger.info "Remaining records in the range: #{remaining}"
|
56
56
|
|
57
57
|
records.each do |lead|
|
@@ -171,6 +171,37 @@ module Embulk
|
|
171
171
|
end
|
172
172
|
end
|
173
173
|
|
174
|
+
class FormatRecordTest < self
|
175
|
+
def setup
|
176
|
+
@page_builder = Object.new
|
177
|
+
plugin_task = task.dup
|
178
|
+
plugin_task[:columns] = [
|
179
|
+
{"name" => "time", "type" => :timestamp, "format" => "%Y-%m-%d %H:%M:%S"}
|
180
|
+
]
|
181
|
+
@plugin = ActivityLog.new(plugin_task, nil, nil, @page_builder)
|
182
|
+
end
|
183
|
+
|
184
|
+
data do
|
185
|
+
[
|
186
|
+
["valid timestamp", [Time.parse("2000-01-01 00:00:00"), "2000-01-01 00:00:00"]],
|
187
|
+
["nil", [nil, nil]],
|
188
|
+
["empty", [nil, ""]],
|
189
|
+
]
|
190
|
+
end
|
191
|
+
def test_valid_timestamp(data)
|
192
|
+
expected, actual = data
|
193
|
+
record = { "time" => actual }
|
194
|
+
assert_equal [expected], @plugin.format_record(record)
|
195
|
+
end
|
196
|
+
|
197
|
+
def test_invalid_timestamp
|
198
|
+
record = { "time" => "123" }
|
199
|
+
assert_raise(Embulk::ConfigError) do
|
200
|
+
@plugin.format_record(record)
|
201
|
+
end
|
202
|
+
end
|
203
|
+
end
|
204
|
+
|
174
205
|
class RunTest < self
|
175
206
|
def setup_soap
|
176
207
|
@soap = MarketoApi::Soap::ActivityLog.new(settings[:endpoint], settings[:wsdl], settings[:user_id], settings[:encryption_key])
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embulk-input-marketo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- uu59
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-04-
|
12
|
+
date: 2016-04-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,7 +44,7 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '0.
|
47
|
+
version: '0.5'
|
48
48
|
name: perfect_retry
|
49
49
|
prerelease: false
|
50
50
|
type: :runtime
|
@@ -52,7 +52,7 @@ dependencies:
|
|
52
52
|
requirements:
|
53
53
|
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: '0.
|
55
|
+
version: '0.5'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|