dor-workflow-client 7.6.0 → 7.7.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 +4 -4
- data/.circleci/config.yml +1 -1
- data/Gemfile.lock +29 -26
- data/dor-workflow-client.gemspec +1 -1
- data/lib/dor/workflow/client/queues.rb +19 -0
- data/lib/dor/workflow/client/version.rb +1 -1
- data/lib/dor/workflow/client.rb +1 -2
- data/spec/dor/workflow/client_spec.rb +32 -0
- metadata +5 -11
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 12fc3722da54e3e3e25ef9bae87ac0fa5e492076fb88a532450fef9adebe5e52
|
|
4
|
+
data.tar.gz: 91113259c02396333c21190914fd79cdcfd66415dcf1b14e9859f2fe8e272084
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3521c9c4b2e0156f1ee8a559a7a61786ec441da04695da184be35a261349c895e8f11132a4687d1ca7db7b98993251ac1475cd95da12cfbbf2f2762ed3a447f7
|
|
7
|
+
data.tar.gz: ae4250842e3664aa3978f2ee405b8a217cd149aa5356b74c9a9b2dd0c164643505323271c07891b390f7358295ddc787fdfccc5beb7b361dff343a4573ffb748
|
data/.circleci/config.yml
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
dor-workflow-client (7.
|
|
5
|
-
activesupport (>=
|
|
4
|
+
dor-workflow-client (7.7.0)
|
|
5
|
+
activesupport (>= 7.0.0)
|
|
6
6
|
deprecation (>= 0.99.0)
|
|
7
7
|
faraday (~> 2.0)
|
|
8
8
|
faraday-retry (~> 2.0)
|
|
@@ -12,7 +12,7 @@ PATH
|
|
|
12
12
|
GEM
|
|
13
13
|
remote: https://rubygems.org/
|
|
14
14
|
specs:
|
|
15
|
-
activesupport (
|
|
15
|
+
activesupport (8.0.0)
|
|
16
16
|
base64
|
|
17
17
|
benchmark (>= 0.3)
|
|
18
18
|
bigdecimal
|
|
@@ -24,11 +24,12 @@ GEM
|
|
|
24
24
|
minitest (>= 5.1)
|
|
25
25
|
securerandom (>= 0.3)
|
|
26
26
|
tzinfo (~> 2.0, >= 2.0.5)
|
|
27
|
+
uri (>= 0.13.1)
|
|
27
28
|
addressable (2.8.7)
|
|
28
29
|
public_suffix (>= 2.0.2, < 7.0)
|
|
29
30
|
ast (2.4.2)
|
|
30
31
|
base64 (0.2.0)
|
|
31
|
-
benchmark (0.
|
|
32
|
+
benchmark (0.4.0)
|
|
32
33
|
bigdecimal (3.1.8)
|
|
33
34
|
byebug (11.1.3)
|
|
34
35
|
concurrent-ruby (1.3.4)
|
|
@@ -41,36 +42,36 @@ GEM
|
|
|
41
42
|
diff-lcs (1.5.1)
|
|
42
43
|
docile (1.4.1)
|
|
43
44
|
drb (2.2.1)
|
|
44
|
-
faraday (2.12.
|
|
45
|
-
faraday-net_http (>= 2.0, < 3.
|
|
45
|
+
faraday (2.12.2)
|
|
46
|
+
faraday-net_http (>= 2.0, < 3.5)
|
|
46
47
|
json
|
|
47
48
|
logger
|
|
48
|
-
faraday-net_http (3.
|
|
49
|
-
net-http
|
|
49
|
+
faraday-net_http (3.4.0)
|
|
50
|
+
net-http (>= 0.5.0)
|
|
50
51
|
faraday-retry (2.2.1)
|
|
51
52
|
faraday (~> 2.0)
|
|
52
|
-
hashdiff (1.1.
|
|
53
|
+
hashdiff (1.1.2)
|
|
53
54
|
i18n (1.14.6)
|
|
54
55
|
concurrent-ruby (~> 1.0)
|
|
55
|
-
json (2.
|
|
56
|
+
json (2.9.0)
|
|
56
57
|
language_server-protocol (3.17.0.3)
|
|
57
|
-
logger (1.6.
|
|
58
|
-
mini_portile2 (2.8.
|
|
59
|
-
minitest (5.25.
|
|
60
|
-
net-http (0.
|
|
58
|
+
logger (1.6.2)
|
|
59
|
+
mini_portile2 (2.8.8)
|
|
60
|
+
minitest (5.25.4)
|
|
61
|
+
net-http (0.6.0)
|
|
61
62
|
uri
|
|
62
|
-
nokogiri (1.
|
|
63
|
+
nokogiri (1.17.0)
|
|
63
64
|
mini_portile2 (~> 2.8.2)
|
|
64
65
|
racc (~> 1.4)
|
|
65
66
|
parallel (1.26.3)
|
|
66
|
-
parser (3.3.
|
|
67
|
+
parser (3.3.6.0)
|
|
67
68
|
ast (~> 2.4.1)
|
|
68
69
|
racc
|
|
69
70
|
public_suffix (6.0.1)
|
|
70
71
|
racc (1.8.1)
|
|
71
72
|
rainbow (3.1.1)
|
|
72
73
|
rake (13.2.1)
|
|
73
|
-
regexp_parser (2.9.
|
|
74
|
+
regexp_parser (2.9.3)
|
|
74
75
|
rexml (3.3.9)
|
|
75
76
|
rspec (3.13.0)
|
|
76
77
|
rspec-core (~> 3.13.0)
|
|
@@ -84,20 +85,20 @@ GEM
|
|
|
84
85
|
rspec-mocks (3.13.2)
|
|
85
86
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
86
87
|
rspec-support (~> 3.13.0)
|
|
87
|
-
rspec-support (3.13.
|
|
88
|
+
rspec-support (3.13.2)
|
|
88
89
|
rspec_junit_formatter (0.6.0)
|
|
89
90
|
rspec-core (>= 2, < 4, != 2.12.0)
|
|
90
|
-
rubocop (1.
|
|
91
|
+
rubocop (1.69.1)
|
|
91
92
|
json (~> 2.3)
|
|
92
93
|
language_server-protocol (>= 3.17.0)
|
|
93
94
|
parallel (~> 1.10)
|
|
94
95
|
parser (>= 3.3.0.2)
|
|
95
96
|
rainbow (>= 2.2.2, < 4.0)
|
|
96
|
-
regexp_parser (>= 2.
|
|
97
|
-
rubocop-ast (>= 1.
|
|
97
|
+
regexp_parser (>= 2.9.3, < 3.0)
|
|
98
|
+
rubocop-ast (>= 1.36.2, < 2.0)
|
|
98
99
|
ruby-progressbar (~> 1.7)
|
|
99
|
-
unicode-display_width (>= 2.4.0, <
|
|
100
|
-
rubocop-ast (1.
|
|
100
|
+
unicode-display_width (>= 2.4.0, < 4.0)
|
|
101
|
+
rubocop-ast (1.36.2)
|
|
101
102
|
parser (>= 3.3.1.0)
|
|
102
103
|
rubocop-capybara (2.21.0)
|
|
103
104
|
rubocop (~> 1.41)
|
|
@@ -113,7 +114,7 @@ GEM
|
|
|
113
114
|
rubocop-rspec_rails (2.29.1)
|
|
114
115
|
rubocop (~> 1.61)
|
|
115
116
|
ruby-progressbar (1.13.0)
|
|
116
|
-
securerandom (0.
|
|
117
|
+
securerandom (0.4.0)
|
|
117
118
|
simplecov (0.22.0)
|
|
118
119
|
docile (~> 1.1)
|
|
119
120
|
simplecov-html (~> 0.11)
|
|
@@ -122,8 +123,10 @@ GEM
|
|
|
122
123
|
simplecov_json_formatter (0.1.4)
|
|
123
124
|
tzinfo (2.0.6)
|
|
124
125
|
concurrent-ruby (~> 1.0)
|
|
125
|
-
unicode-display_width (
|
|
126
|
-
|
|
126
|
+
unicode-display_width (3.1.2)
|
|
127
|
+
unicode-emoji (~> 4.0, >= 4.0.4)
|
|
128
|
+
unicode-emoji (4.0.4)
|
|
129
|
+
uri (1.0.2)
|
|
127
130
|
webmock (3.24.0)
|
|
128
131
|
addressable (>= 2.8.0)
|
|
129
132
|
crack (>= 0.3.2)
|
data/dor-workflow-client.gemspec
CHANGED
|
@@ -17,7 +17,7 @@ Gem::Specification.new do |gem|
|
|
|
17
17
|
gem.require_paths = ['lib']
|
|
18
18
|
gem.required_ruby_version = '>= 3.0'
|
|
19
19
|
|
|
20
|
-
gem.add_dependency 'activesupport', '>=
|
|
20
|
+
gem.add_dependency 'activesupport', '>= 7.0.0'
|
|
21
21
|
gem.add_dependency 'deprecation', '>= 0.99.0'
|
|
22
22
|
gem.add_dependency 'faraday', '~> 2.0'
|
|
23
23
|
gem.add_dependency 'faraday-retry', '~> 2.0'
|
|
@@ -80,6 +80,25 @@ module Dor
|
|
|
80
80
|
Nokogiri::XML(resp).xpath('//object[@id]').map { |n| n[:id] }
|
|
81
81
|
end
|
|
82
82
|
|
|
83
|
+
# Returns a list of druids from the workflow service that meet the criteria
|
|
84
|
+
# of the passed in error param
|
|
85
|
+
#
|
|
86
|
+
# @see `#objects_for_workstep`
|
|
87
|
+
#
|
|
88
|
+
# @param [String] error name of the error step
|
|
89
|
+
# @param [Hash] options
|
|
90
|
+
# @param options [String] :default_workflow workflow to query for if not using the qualified format
|
|
91
|
+
# @option options [Integer] :limit maximum number of druids to return (nil for no limit)
|
|
92
|
+
# @return [Array<String>] Array of druids
|
|
93
|
+
def objects_erroring_at_workstep(error, options = {})
|
|
94
|
+
uri_string = "workflow_queue?error=#{error}"
|
|
95
|
+
uri_string += "&limit=#{options[:limit].to_i}" if options[:limit]&.to_i&.positive?
|
|
96
|
+
|
|
97
|
+
resp = requestor.request uri_string
|
|
98
|
+
|
|
99
|
+
Nokogiri::XML(resp).xpath('//object[@id]').map { |n| n[:id] }
|
|
100
|
+
end
|
|
101
|
+
|
|
83
102
|
private
|
|
84
103
|
|
|
85
104
|
attr_reader :requestor
|
data/lib/dor/workflow/client.rb
CHANGED
|
@@ -46,8 +46,7 @@ module Dor
|
|
|
46
46
|
|
|
47
47
|
delegate :lifecycle, :active_lifecycle, :milestones, to: :lifecycle_routes
|
|
48
48
|
|
|
49
|
-
delegate :lane_ids, :objects_for_workstep,
|
|
50
|
-
to: :queues
|
|
49
|
+
delegate :lane_ids, :objects_for_workstep, :objects_erroring_at_workstep, to: :queues
|
|
51
50
|
|
|
52
51
|
def queues
|
|
53
52
|
@queues ||= Queues.new(requestor: requestor)
|
|
@@ -391,6 +391,38 @@ RSpec.describe Dor::Workflow::Client do
|
|
|
391
391
|
end
|
|
392
392
|
end
|
|
393
393
|
|
|
394
|
+
describe '#objects_erroring_at_workstep' do
|
|
395
|
+
before do
|
|
396
|
+
@workflow = 'googleScannedBookWF'
|
|
397
|
+
@error = 'process-content'
|
|
398
|
+
end
|
|
399
|
+
|
|
400
|
+
let(:stubs) do
|
|
401
|
+
Faraday::Adapter::Test::Stubs.new do |stub|
|
|
402
|
+
stub.get("workflow_queue?error=#{@workflow}:#{@error}") do |_env|
|
|
403
|
+
[200, {}, '<objects count="1"><object id="druid:ab123de4567"/><object id="druid:ab123de9012"/></objects>']
|
|
404
|
+
end
|
|
405
|
+
end
|
|
406
|
+
end
|
|
407
|
+
|
|
408
|
+
context 'with a query using qualified workflow name for error' do
|
|
409
|
+
before do
|
|
410
|
+
@qualified_error = "#{@workflow}:#{@error}"
|
|
411
|
+
end
|
|
412
|
+
|
|
413
|
+
context 'with URI string creation' do
|
|
414
|
+
before do
|
|
415
|
+
@xml = %(<objects count="1"><object id="druid:ab123de4567"/></objects>)
|
|
416
|
+
end
|
|
417
|
+
|
|
418
|
+
it 'with lane ID' do
|
|
419
|
+
allow(mock_http_connection).to receive(:get).with("workflow_queue?error=#{@qualified_error}").and_return(double(Faraday::Response, body: @xml))
|
|
420
|
+
expect(client.objects_erroring_at_workstep(@qualified_error)).to eq(['druid:ab123de4567'])
|
|
421
|
+
end
|
|
422
|
+
end
|
|
423
|
+
end
|
|
424
|
+
end
|
|
425
|
+
|
|
394
426
|
context 'when empty workflow queue' do
|
|
395
427
|
before do
|
|
396
428
|
@workflow = 'googleScannedBookWF'
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dor-workflow-client
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 7.
|
|
4
|
+
version: 7.7.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Willy Mene
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2024-10
|
|
12
|
+
date: 2024-12-10 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: activesupport
|
|
@@ -17,20 +17,14 @@ dependencies:
|
|
|
17
17
|
requirements:
|
|
18
18
|
- - ">="
|
|
19
19
|
- !ruby/object:Gem::Version
|
|
20
|
-
version:
|
|
21
|
-
- - "<"
|
|
22
|
-
- !ruby/object:Gem::Version
|
|
23
|
-
version: '8'
|
|
20
|
+
version: 7.0.0
|
|
24
21
|
type: :runtime
|
|
25
22
|
prerelease: false
|
|
26
23
|
version_requirements: !ruby/object:Gem::Requirement
|
|
27
24
|
requirements:
|
|
28
25
|
- - ">="
|
|
29
26
|
- !ruby/object:Gem::Version
|
|
30
|
-
version:
|
|
31
|
-
- - "<"
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
-
version: '8'
|
|
27
|
+
version: 7.0.0
|
|
34
28
|
- !ruby/object:Gem::Dependency
|
|
35
29
|
name: deprecation
|
|
36
30
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -167,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
167
161
|
- !ruby/object:Gem::Version
|
|
168
162
|
version: '0'
|
|
169
163
|
requirements: []
|
|
170
|
-
rubygems_version: 3.5.
|
|
164
|
+
rubygems_version: 3.5.22
|
|
171
165
|
signing_key:
|
|
172
166
|
specification_version: 4
|
|
173
167
|
summary: Provides convenience methods to work with the DOR Workflow Service
|