dor-workflow-client 7.6.1 → 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 +24 -22
- 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 +3 -3
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,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
dor-workflow-client (7.
|
|
4
|
+
dor-workflow-client (7.7.0)
|
|
5
5
|
activesupport (>= 7.0.0)
|
|
6
6
|
deprecation (>= 0.99.0)
|
|
7
7
|
faraday (~> 2.0)
|
|
@@ -42,25 +42,25 @@ GEM
|
|
|
42
42
|
diff-lcs (1.5.1)
|
|
43
43
|
docile (1.4.1)
|
|
44
44
|
drb (2.2.1)
|
|
45
|
-
faraday (2.12.
|
|
46
|
-
faraday-net_http (>= 2.0, < 3.
|
|
45
|
+
faraday (2.12.2)
|
|
46
|
+
faraday-net_http (>= 2.0, < 3.5)
|
|
47
47
|
json
|
|
48
48
|
logger
|
|
49
|
-
faraday-net_http (3.
|
|
50
|
-
net-http
|
|
49
|
+
faraday-net_http (3.4.0)
|
|
50
|
+
net-http (>= 0.5.0)
|
|
51
51
|
faraday-retry (2.2.1)
|
|
52
52
|
faraday (~> 2.0)
|
|
53
|
-
hashdiff (1.1.
|
|
53
|
+
hashdiff (1.1.2)
|
|
54
54
|
i18n (1.14.6)
|
|
55
55
|
concurrent-ruby (~> 1.0)
|
|
56
|
-
json (2.
|
|
56
|
+
json (2.9.0)
|
|
57
57
|
language_server-protocol (3.17.0.3)
|
|
58
|
-
logger (1.6.
|
|
59
|
-
mini_portile2 (2.8.
|
|
60
|
-
minitest (5.25.
|
|
61
|
-
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)
|
|
62
62
|
uri
|
|
63
|
-
nokogiri (1.
|
|
63
|
+
nokogiri (1.17.0)
|
|
64
64
|
mini_portile2 (~> 2.8.2)
|
|
65
65
|
racc (~> 1.4)
|
|
66
66
|
parallel (1.26.3)
|
|
@@ -71,7 +71,7 @@ GEM
|
|
|
71
71
|
racc (1.8.1)
|
|
72
72
|
rainbow (3.1.1)
|
|
73
73
|
rake (13.2.1)
|
|
74
|
-
regexp_parser (2.9.
|
|
74
|
+
regexp_parser (2.9.3)
|
|
75
75
|
rexml (3.3.9)
|
|
76
76
|
rspec (3.13.0)
|
|
77
77
|
rspec-core (~> 3.13.0)
|
|
@@ -85,20 +85,20 @@ GEM
|
|
|
85
85
|
rspec-mocks (3.13.2)
|
|
86
86
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
87
87
|
rspec-support (~> 3.13.0)
|
|
88
|
-
rspec-support (3.13.
|
|
88
|
+
rspec-support (3.13.2)
|
|
89
89
|
rspec_junit_formatter (0.6.0)
|
|
90
90
|
rspec-core (>= 2, < 4, != 2.12.0)
|
|
91
|
-
rubocop (1.
|
|
91
|
+
rubocop (1.69.1)
|
|
92
92
|
json (~> 2.3)
|
|
93
93
|
language_server-protocol (>= 3.17.0)
|
|
94
94
|
parallel (~> 1.10)
|
|
95
95
|
parser (>= 3.3.0.2)
|
|
96
96
|
rainbow (>= 2.2.2, < 4.0)
|
|
97
|
-
regexp_parser (>= 2.
|
|
98
|
-
rubocop-ast (>= 1.
|
|
97
|
+
regexp_parser (>= 2.9.3, < 3.0)
|
|
98
|
+
rubocop-ast (>= 1.36.2, < 2.0)
|
|
99
99
|
ruby-progressbar (~> 1.7)
|
|
100
|
-
unicode-display_width (>= 2.4.0, <
|
|
101
|
-
rubocop-ast (1.
|
|
100
|
+
unicode-display_width (>= 2.4.0, < 4.0)
|
|
101
|
+
rubocop-ast (1.36.2)
|
|
102
102
|
parser (>= 3.3.1.0)
|
|
103
103
|
rubocop-capybara (2.21.0)
|
|
104
104
|
rubocop (~> 1.41)
|
|
@@ -114,7 +114,7 @@ GEM
|
|
|
114
114
|
rubocop-rspec_rails (2.29.1)
|
|
115
115
|
rubocop (~> 1.61)
|
|
116
116
|
ruby-progressbar (1.13.0)
|
|
117
|
-
securerandom (0.
|
|
117
|
+
securerandom (0.4.0)
|
|
118
118
|
simplecov (0.22.0)
|
|
119
119
|
docile (~> 1.1)
|
|
120
120
|
simplecov-html (~> 0.11)
|
|
@@ -123,8 +123,10 @@ GEM
|
|
|
123
123
|
simplecov_json_formatter (0.1.4)
|
|
124
124
|
tzinfo (2.0.6)
|
|
125
125
|
concurrent-ruby (~> 1.0)
|
|
126
|
-
unicode-display_width (
|
|
127
|
-
|
|
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)
|
|
128
130
|
webmock (3.24.0)
|
|
129
131
|
addressable (>= 2.8.0)
|
|
130
132
|
crack (>= 0.3.2)
|
|
@@ -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-
|
|
12
|
+
date: 2024-12-10 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: activesupport
|
|
@@ -161,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
161
161
|
- !ruby/object:Gem::Version
|
|
162
162
|
version: '0'
|
|
163
163
|
requirements: []
|
|
164
|
-
rubygems_version: 3.5.
|
|
164
|
+
rubygems_version: 3.5.22
|
|
165
165
|
signing_key:
|
|
166
166
|
specification_version: 4
|
|
167
167
|
summary: Provides convenience methods to work with the DOR Workflow Service
|