embulk-input-marketo 0.5.1 → 0.5.2
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/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:
|