dor-workflow-client 4.0.0 → 5.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ebdb5efb62a6eaede5600c160ced195692290cc059666345c4ea7e21b9ffee33
4
- data.tar.gz: da11701acceca8acc9ed30719e034bfe5eb9350394f90d10b9babdad92600c46
3
+ metadata.gz: c58569c11d2c599671ecf4fef09158bdf37191c93c4193d96d2e6be614d9eeaa
4
+ data.tar.gz: ce8f53542aede57b9386ec769673fac4af7a92d9bb32b2c9a00ba9fe59ae6754
5
5
  SHA512:
6
- metadata.gz: 027c3795481fb428df972a4cd420a281e39226acffb2bf067769de10580fa42d7c64f826c168c1a009f0cef825acb34f027202b95d19ba9098f92333232fcb46
7
- data.tar.gz: 82cc4205238d2fbe04c75903dd99ad214579becf8326f6ca46dc459e3a962ca05d38fca587cb42b1c5ea4fe030ff1a61b95f5983828081f24d9fae123123b07d
6
+ metadata.gz: e09e2e40204d869c31ce832509ccf4582d98823cd767348966789a5961bfb2ae3b67b148a35a41f734fb782100bef10619e36a1f44e244a70685d3a1d6613f90
7
+ data.tar.gz: 2ddd5435a3f7738a48800182c46e1d243bf9bdaf457d367f7f26d0a7868c61005f853850a18aba61c97475c74bf297b08060fc7a51fdadd76161d90b4287cebc
data/.circleci/config.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  version: 2.1
2
2
  orbs:
3
- ruby-rails: sul-dlss/ruby-rails@2.0.0
3
+ ruby-rails: sul-dlss/ruby-rails@3.1.2
4
4
  workflows:
5
5
  build:
6
6
  jobs:
@@ -1,12 +1,10 @@
1
- ## Why was this change made?
1
+ ## Why was this change made? 🤔
2
2
 
3
3
 
4
4
 
5
- ## How was this change tested?
5
+ ## How was this change tested? 🤨
6
6
 
7
-
8
-
9
- ## Which documentation and/or configurations were updated?
7
+ ⚡ ⚠ If this change affects the API or other fundamentals of this service, ***run [integration tests](https://github.com/sul-dlss/infrastructure-integration-test)*** that exercise this service and/or test in [stage|qa] environment, in addition to specs. ⚡
10
8
 
11
9
 
12
10
 
data/.gitignore CHANGED
@@ -4,7 +4,6 @@
4
4
  .config
5
5
  .yardoc
6
6
  .rvmrc
7
- Gemfile.lock
8
7
  InstalledFiles
9
8
  _yardoc
10
9
  coverage
@@ -18,4 +17,3 @@ test/version_tmp
18
17
  tmp
19
18
  .ruby-version
20
19
  .ruby-gemset
21
-
data/.rubocop.yml CHANGED
@@ -10,7 +10,10 @@ Metrics/BlockLength:
10
10
  Exclude:
11
11
  - spec/**/*_spec.rb
12
12
 
13
- Gemspec/DateAssignment: # new in 1.10
13
+ Lint/UnusedBlockArgument:
14
+ AllowUnusedKeywordArguments: true
15
+
16
+ Gemspec/DeprecatedAttributeAssignment: # new in 1.10
14
17
  Enabled: true
15
18
  Gemspec/RequireMFA: # new in 1.23
16
19
  Enabled: true
@@ -112,3 +115,32 @@ Style/StringChars: # new in 1.12
112
115
  Enabled: true
113
116
  Style/SwapValues: # new in 1.1
114
117
  Enabled: true
118
+
119
+ Layout/LineContinuationLeadingSpace: # new in 1.31
120
+ Enabled: true
121
+ Layout/LineContinuationSpacing: # new in 1.31
122
+ Enabled: true
123
+ Lint/ConstantOverwrittenInRescue: # new in 1.31
124
+ Enabled: true
125
+ Lint/NonAtomicFileOperation: # new in 1.31
126
+ Enabled: true
127
+ Lint/RefinementImportMethods: # new in 1.27
128
+ Enabled: true
129
+ Lint/RequireRangeParentheses: # new in 1.32
130
+ Enabled: true
131
+ Security/CompoundHash: # new in 1.28
132
+ Enabled: true
133
+ Style/EmptyHeredoc: # new in 1.32
134
+ Enabled: true
135
+ Style/EnvHome: # new in 1.29
136
+ Enabled: true
137
+ Style/FetchEnvVar: # new in 1.28
138
+ Enabled: true
139
+ Style/MapCompactWithConditionalBlock: # new in 1.30
140
+ Enabled: true
141
+ Style/NestedFileDirname: # new in 1.26
142
+ Enabled: true
143
+ Style/ObjectThen: # new in 1.28
144
+ Enabled: true
145
+ Style/RedundantInitialize: # new in 1.27
146
+ Enabled: true
data/.rubocop_todo.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2022-01-14 04:19:32 UTC using RuboCop version 1.24.1.
3
+ # on 2022-06-28 04:56:14 UTC using RuboCop version 1.31.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
@@ -27,23 +27,17 @@ Lint/NoReturnInBeginEndBlocks:
27
27
  # Offense count: 5
28
28
  # Configuration parameters: IgnoredMethods, CountRepeatedAttributes.
29
29
  Metrics/AbcSize:
30
- Max: 24
31
-
32
- # Offense count: 1
33
- # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
34
- # IgnoredMethods: refine
35
- Metrics/BlockLength:
36
- Max: 26
30
+ Max: 23
37
31
 
38
32
  # Offense count: 2
39
33
  # Configuration parameters: IgnoredMethods.
40
34
  Metrics/CyclomaticComplexity:
41
35
  Max: 8
42
36
 
43
- # Offense count: 1
37
+ # Offense count: 2
44
38
  # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
45
39
  Metrics/MethodLength:
46
- Max: 13
40
+ Max: 19
47
41
 
48
42
  # Offense count: 3
49
43
  # Configuration parameters: CountKeywordArgs, MaxOptionalParameters.
@@ -51,13 +45,13 @@ Metrics/ParameterLists:
51
45
  Max: 8
52
46
 
53
47
  # Offense count: 1
54
- # Cop supports --auto-correct.
48
+ # This cop supports safe autocorrection (--autocorrect).
55
49
  Style/KeywordParametersOrder:
56
50
  Exclude:
57
51
  - 'lib/dor/workflow/client/workflow_routes.rb'
58
52
 
59
53
  # Offense count: 1
60
- # Cop supports --auto-correct.
54
+ # This cop supports safe autocorrection (--autocorrect).
61
55
  # Configuration parameters: AllowModifier.
62
56
  Style/SoleNestedConditional:
63
57
  Exclude:
data/Gemfile.lock ADDED
@@ -0,0 +1,123 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ dor-workflow-client (5.1.0)
5
+ activesupport (>= 3.2.1, < 8)
6
+ deprecation (>= 0.99.0)
7
+ faraday (~> 2.0)
8
+ faraday-retry (~> 2.0)
9
+ nokogiri (~> 1.6)
10
+ zeitwerk (~> 2.1)
11
+
12
+ GEM
13
+ remote: https://rubygems.org/
14
+ specs:
15
+ activesupport (7.0.3.1)
16
+ concurrent-ruby (~> 1.0, >= 1.0.2)
17
+ i18n (>= 1.6, < 2)
18
+ minitest (>= 5.1)
19
+ tzinfo (~> 2.0)
20
+ addressable (2.8.0)
21
+ public_suffix (>= 2.0.2, < 5.0)
22
+ ast (2.4.2)
23
+ byebug (11.1.3)
24
+ concurrent-ruby (1.1.10)
25
+ crack (0.4.5)
26
+ rexml
27
+ deprecation (1.1.0)
28
+ activesupport
29
+ diff-lcs (1.5.0)
30
+ docile (1.4.0)
31
+ faraday (2.4.0)
32
+ faraday-net_http (~> 2.0)
33
+ ruby2_keywords (>= 0.0.4)
34
+ faraday-net_http (2.1.0)
35
+ faraday-retry (2.0.0)
36
+ faraday (~> 2.0)
37
+ hashdiff (1.0.1)
38
+ i18n (1.12.0)
39
+ concurrent-ruby (~> 1.0)
40
+ json (2.6.2)
41
+ mini_portile2 (2.8.0)
42
+ minitest (5.16.2)
43
+ nokogiri (1.13.8)
44
+ mini_portile2 (~> 2.8.0)
45
+ racc (~> 1.4)
46
+ parallel (1.22.1)
47
+ parser (3.1.2.0)
48
+ ast (~> 2.4.1)
49
+ public_suffix (4.0.7)
50
+ racc (1.6.0)
51
+ rainbow (3.1.1)
52
+ rake (13.0.6)
53
+ regexp_parser (2.5.0)
54
+ rexml (3.2.5)
55
+ rspec (3.11.0)
56
+ rspec-core (~> 3.11.0)
57
+ rspec-expectations (~> 3.11.0)
58
+ rspec-mocks (~> 3.11.0)
59
+ rspec-core (3.11.0)
60
+ rspec-support (~> 3.11.0)
61
+ rspec-expectations (3.11.0)
62
+ diff-lcs (>= 1.2.0, < 2.0)
63
+ rspec-support (~> 3.11.0)
64
+ rspec-mocks (3.11.1)
65
+ diff-lcs (>= 1.2.0, < 2.0)
66
+ rspec-support (~> 3.11.0)
67
+ rspec-support (3.11.0)
68
+ rspec_junit_formatter (0.5.1)
69
+ rspec-core (>= 2, < 4, != 2.12.0)
70
+ rubocop (1.33.0)
71
+ json (~> 2.3)
72
+ parallel (~> 1.10)
73
+ parser (>= 3.1.0.0)
74
+ rainbow (>= 2.2.2, < 4.0)
75
+ regexp_parser (>= 1.8, < 3.0)
76
+ rexml (>= 3.2.5, < 4.0)
77
+ rubocop-ast (>= 1.19.1, < 2.0)
78
+ ruby-progressbar (~> 1.7)
79
+ unicode-display_width (>= 1.4.0, < 3.0)
80
+ rubocop-ast (1.19.1)
81
+ parser (>= 3.1.1.0)
82
+ rubocop-rake (0.6.0)
83
+ rubocop (~> 1.0)
84
+ rubocop-rspec (2.12.1)
85
+ rubocop (~> 1.31)
86
+ ruby-progressbar (1.11.0)
87
+ ruby2_keywords (0.0.5)
88
+ simplecov (0.21.2)
89
+ docile (~> 1.1)
90
+ simplecov-html (~> 0.11)
91
+ simplecov_json_formatter (~> 0.1)
92
+ simplecov-html (0.12.3)
93
+ simplecov_json_formatter (0.1.4)
94
+ tzinfo (2.0.5)
95
+ concurrent-ruby (~> 1.0)
96
+ unicode-display_width (2.2.0)
97
+ webmock (3.16.0)
98
+ addressable (>= 2.8.0)
99
+ crack (>= 0.3.2)
100
+ hashdiff (>= 0.4.0, < 2.0.0)
101
+ webrick (1.7.0)
102
+ yard (0.9.28)
103
+ webrick (~> 1.7.0)
104
+ zeitwerk (2.6.0)
105
+
106
+ PLATFORMS
107
+ ruby
108
+
109
+ DEPENDENCIES
110
+ byebug
111
+ dor-workflow-client!
112
+ rake
113
+ rspec (~> 3.3)
114
+ rspec_junit_formatter
115
+ rubocop (~> 1.24)
116
+ rubocop-rake
117
+ rubocop-rspec (~> 2.1)
118
+ simplecov
119
+ webmock
120
+ yard
121
+
122
+ BUNDLED WITH
123
+ 2.3.17
@@ -14,14 +14,13 @@ Gem::Specification.new do |gem|
14
14
  gem.homepage = 'https://consul.stanford.edu/display/DOR/DOR+services#DORservices-initializeworkflow'
15
15
 
16
16
  gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
17
- gem.test_files = gem.files.grep(%r{^(spec)/})
18
17
  gem.require_paths = ['lib']
19
18
  gem.required_ruby_version = '>= 2.7'
20
19
 
21
20
  gem.add_dependency 'activesupport', '>= 3.2.1', '< 8'
22
21
  gem.add_dependency 'deprecation', '>= 0.99.0'
23
22
  gem.add_dependency 'faraday', '~> 2.0'
24
- gem.add_dependency 'faraday-retry'
23
+ gem.add_dependency 'faraday-retry', '~> 2.0'
25
24
 
26
25
  gem.add_dependency 'nokogiri', '~> 1.6'
27
26
  gem.add_dependency 'zeitwerk', '~> 2.1'
@@ -15,7 +15,6 @@ module Dor
15
15
  @logger = logger
16
16
  end
17
17
 
18
- # rubocop:disable Metrics/MethodLength
19
18
  def build_connection
20
19
  Faraday.new(url: url) do |faraday|
21
20
  faraday.use Faraday::Response::RaiseError # raise exceptions on 40x, 50x responses
@@ -37,7 +36,6 @@ module Dor
37
36
  faraday.adapter Faraday.default_adapter # Last middleware must be the adapter
38
37
  end
39
38
  end
40
- # rubocop:enable Metrics/MethodLength
41
39
 
42
40
  def user_agent
43
41
  "dor-workflow-client #{VERSION}"
@@ -56,8 +54,8 @@ module Dor
56
54
  end
57
55
 
58
56
  def retry_block
59
- lambda do |env, _opts, retries, exception|
60
- logger.warn "retrying connection (#{retries} remaining) to #{env.url}: (#{exception.class}) " \
57
+ lambda do |env:, options:, retry_count:, exception:, will_retry_in:|
58
+ logger.warn "retrying connection (#{retry_count + 1}) to #{env.url}: (#{exception.class}) " \
61
59
  "#{exception.message} #{env.status}"
62
60
  end
63
61
  end
@@ -14,39 +14,12 @@ module Dor
14
14
  # @param [String] repo The repository the object resides in. This parameter is deprecated
15
15
  # @param [String] druid object id
16
16
  # @param [String] milestone_name the name of the milestone being queried for
17
- # @param [Number] version the version to query for
17
+ # @param [Number] version (nil) the version to query for
18
18
  # @param [Boolean] active_only (false) if true, return only lifecycle steps for versions that have all processes complete
19
19
  # @return [Time] when the milestone was achieved. Returns nil if the milestone does not exist
20
- #
21
- # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
22
- def lifecycle(*args)
23
- case args.size
24
- when 4
25
- Deprecation.warn(self, 'you provided 4 args, but lifecycle now takes kwargs')
26
- (repo, druid, milestone_name) = args[0..2]
27
- version = args[3][:version]
28
- active_only = args[3][:active_only] || false
29
- when 3
30
- Deprecation.warn(self, 'you provided 3 args, but lifecycle now takes kwargs')
31
- (repo, druid, milestone_name) = args
32
- version = nil
33
- active_only = false
34
- when 1
35
- opts = args.first
36
- repo = opts[:repo]
37
- druid = opts[:druid]
38
- milestone_name = opts[:milestone_name]
39
- version = opts[:version]
40
- active_only = opts[:active_only] || false
41
- else
42
- raise ArgumentError, 'wrong number of arguments, must be 1, or 3-5'
43
- end
44
-
45
- Deprecation.warn(self, 'passing the repo parameter to lifecycle is no longer necessary. This will raise an error in dor-workflow-client version 4') if repo
46
-
20
+ def lifecycle(druid:, milestone_name:, version: nil, active_only: false)
47
21
  filter_milestone(query_lifecycle(druid, version: version, active_only: active_only), milestone_name)
48
22
  end
49
- # rubocop:enable Metrics/AbcSize, Metrics/MethodLength
50
23
 
51
24
  # Returns the Date for a requested milestone ONLY for the current version.
52
25
  # This is slow as the workflow server will query dor-services-app for the version.
@@ -55,57 +28,17 @@ module Dor
55
28
  # @param [String] milestone_name the name of the milestone being queried for
56
29
  # @param [Number] version the version to query for
57
30
  # @return [Time] when the milestone was achieved. Returns nil if the milestone does not exis
58
- #
59
- # rubocop:disable Metrics/MethodLength
60
- def active_lifecycle(*args)
61
- case args.size
62
- when 4
63
- Deprecation.warn(self, 'you provided 4 args, but active_lifecycle now takes kwargs')
64
- (repo, druid, milestone_name) = args[0..2]
65
- version = args[3][:version]
66
- when 3
67
- Deprecation.warn(self, 'you provided 3 args, but active_lifecycle now takes kwargs')
68
- (repo, druid, milestone_name) = args
69
- version = nil
70
- when 1
71
- opts = args.first
72
- repo = opts[:repo]
73
- druid = opts[:druid]
74
- milestone_name = opts[:milestone_name]
75
- version = opts[:version]
76
- else
77
- raise ArgumentError, 'wrong number of arguments, must be 1, 3, or 4'
78
- end
79
-
80
- Deprecation.warn(self, 'passing the repo parameter to active_lifecycle is no longer necessary. This will raise an error in dor-workflow-client version 4') if repo
81
-
31
+ def active_lifecycle(druid:, milestone_name:, version:)
82
32
  lifecycle(druid: druid, milestone_name: milestone_name, version: version, active_only: true)
83
33
  end
84
- # rubocop:enable Metrics/MethodLength
85
34
 
86
35
  # @return [Array<Hash>]
87
- # rubocop:disable Metrics/MethodLength
88
- def milestones(*args)
89
- case args.size
90
- when 2
91
- Deprecation.warn(self, 'you provided 2 args, but active_lifecycle now takes kwargs')
92
- (repo, druid) = args
93
- when 1
94
- opts = args.first
95
- repo = opts[:repo]
96
- druid = opts.fetch(:druid)
97
- else
98
- raise ArgumentError, 'wrong number of arguments, must be 1-2'
99
- end
100
-
101
- Deprecation.warn(self, 'passing the repo parameter to active_lifecycle is no longer necessary. This will raise an error in dor-workflow-client version 4') if repo
102
-
36
+ def milestones(druid:)
103
37
  doc = query_lifecycle(druid, active_only: false)
104
38
  doc.xpath('//lifecycle/milestone').collect do |node|
105
39
  { milestone: node.text, at: Time.parse(node['date']), version: node['version'] }
106
40
  end
107
41
  end
108
- # rubocop:enable Metrics/MethodLength
109
42
 
110
43
  private
111
44
 
@@ -11,59 +11,35 @@ module Dor
11
11
 
12
12
  # Returns all the distinct laneIds for a given workflow step
13
13
  #
14
- # @param [String] repo -- deprecated, ignored by workflow service
15
14
  # @param [String] workflow name
16
15
  # @param [String] process name
17
16
  # @return [Array<String>] all of the distinct laneIds. Array will be empty if no lane ids were found
18
- def lane_ids(*args)
19
- if args.count == 3
20
- Deprecation.warn(
21
- self,
22
- '`#lane_ids` only takes two args: workflow name, & process/step name. This will raise an exception in Dor::Workflow::Client 4.0.0'
23
- )
24
- args.shift # ditch the `repo` argument
25
- end
26
- uri = "workflow_queue/lane_ids?step=#{args.first}:#{args.second}"
17
+ def lane_ids(workflow, process)
18
+ uri = "workflow_queue/lane_ids?step=#{workflow}:#{process}"
27
19
  doc = Nokogiri::XML(requestor.request(uri))
28
20
  doc.xpath('/lanes/lane').map { |n| n['id'] }
29
21
  end
30
22
 
31
23
  # Gets all of the workflow steps that have a status of 'queued' that have a last-updated timestamp older than the number of hours passed in
32
24
  # This will enable re-queueing of jobs that have been lost by the job manager
33
- # @param [String] repository -- deprecated, ignored by workflow service
34
25
  # @param [Hash] opts optional values for query
35
26
  # @option opts [Integer] :hours_ago steps older than this value will be returned by the query. If not passed in, the service defaults to 0 hours,
36
27
  # meaning you will get all queued workflows
37
28
  # @option opts [Integer] :limit sets the maximum number of workflow steps that can be returned. Defaults to no limit
38
29
  # @return [Array[Hash]] each Hash represents a workflow step. It will have the following keys:
39
30
  # :workflow, :step, :druid, :lane_id
40
- def stale_queued_workflows(*args)
41
- if args.count == 2
42
- Deprecation.warn(
43
- self,
44
- '`#stale_queued_workflows` only takes one arg: a hash. This will raise an exception in Dor::Workflow::Client 4.0.0'
45
- )
46
- args.shift # ditch the `repo` argument
47
- end
48
- uri_string = build_queued_uri(args.first)
31
+ def stale_queued_workflows(opts)
32
+ uri_string = build_queued_uri(opts)
49
33
  parse_queued_workflows_response requestor.request(uri_string)
50
34
  end
51
35
 
52
36
  # Returns a count of workflow steps that have a status of 'queued' that have a last-updated timestamp older than the number of hours passed in
53
- # @param [String] repository -- deprecated, ignored by workflow service
54
37
  # @param [Hash] opts optional values for query
55
38
  # @option opts [Integer] :hours_ago steps older than this value will be returned by the query. If not passed in, the service defaults to 0 hours,
56
39
  # meaning you will get all queued workflows
57
40
  # @return [Integer] number of stale, queued steps if the :count_only option was set to true
58
- def count_stale_queued_workflows(*args)
59
- if args.count == 2
60
- Deprecation.warn(
61
- self,
62
- '`#count_stale_queued_workflows` only takes one arg: a hash. This will raise an exception in Dor::Workflow::Client 4.0.0'
63
- )
64
- args.shift # ditch the `repo` argument
65
- end
66
- uri_string = "#{build_queued_uri(args.first)}&count-only=true"
41
+ def count_stale_queued_workflows(opts)
42
+ uri_string = "#{build_queued_uri(opts)}&count-only=true"
67
43
  doc = Nokogiri::XML(requestor.request(uri_string))
68
44
  doc.at_xpath('/objects/@count').value.to_i
69
45
  end
@@ -102,7 +78,6 @@ module Dor
102
78
  # }
103
79
  #
104
80
  def objects_for_workstep(completed, waiting, lane_id = 'default', options = {})
105
- Deprecation.warn(self, 'the `:default_repository` option in `#objects_for_workstep` is unused and will go away in Dor::Workflow::Client 4.0.0. omit argument to silence.') if options[:default_repository]
106
81
  waiting_param = qualify_step(options[:default_workflow], waiting)
107
82
  uri_string = "workflow_queue?waiting=#{waiting_param}"
108
83
  if completed
@@ -133,15 +108,13 @@ module Dor
133
108
  #
134
109
  # @param [String] workflow name
135
110
  # @param [String] step name
136
- # @param [String] repository -- deprecated, ignored by workflow service
137
111
  #
138
112
  # @return [Hash] hash of results, with key has a druid, and value as the error message
139
113
  # @example
140
114
  # client.errored_objects_for_workstep('accessionWF','content-metadata')
141
115
  # => {"druid:qd556jq0580"=>"druid:qd556jq0580 - Item error; caused by
142
- # #<Rubydora::FedoraInvalidRequest: Error modifying datastream contentMetadata for druid:qd556jq0580. See logger for details>"}
143
- def errored_objects_for_workstep(workflow, step, repository = nil)
144
- Deprecation.warn(self, 'the third argument to `#errored_objects_for_workstep` is unused and will go away in Dor::Workflow::Client 4.0.0. omit argument to silence.') unless repository.nil?
116
+ # blah blah. See logger for details>"}
117
+ def errored_objects_for_workstep(workflow, step)
145
118
  resp = requestor.request "workflow_queue?workflow=#{workflow}&error=#{step}"
146
119
  Nokogiri::XML(resp).xpath('//object').to_h do |node|
147
120
  [node['id'], node['errorMessage']]
@@ -153,11 +126,9 @@ module Dor
153
126
  # @param [String] workflow name
154
127
  # @param [String] step name
155
128
  # @param [String] type
156
- # @param [String] repo -- deprecated, ignored by workflow service
157
129
  #
158
130
  # @return [Hash] hash of results, with key has a druid, and value as the error message
159
- def count_objects_in_step(workflow, step, type, repo = nil)
160
- Deprecation.warn(self, 'the fourth argument to `#count_objects_in_step` is unused and will go away in Dor::Workflow::Client 4.0.0. omit argument to silence.') unless repo.nil?
131
+ def count_objects_in_step(workflow, step, type)
161
132
  resp = requestor.request "workflow_queue?workflow=#{workflow}&#{type}=#{step}"
162
133
  extract_object_count(resp)
163
134
  end
@@ -166,11 +137,9 @@ module Dor
166
137
  #
167
138
  # @param [String] workflow name
168
139
  # @param [String] step name
169
- # @param [String] repository -- deprecated, ignored by workflow service
170
140
  #
171
141
  # @return [Integer] Number of objects with this repository:workflow:step that have a status of 'error'
172
- def count_errored_for_workstep(workflow, step, repository = nil)
173
- Deprecation.warn(self, 'the third argument to `#count_errored_for_workstep` is unused and will go away in Dor::Workflow::Client 4.0.0. omit argument to silence.') unless repository.nil?
142
+ def count_errored_for_workstep(workflow, step)
174
143
  count_objects_in_step(workflow, step, 'error')
175
144
  end
176
145
 
@@ -178,11 +147,9 @@ module Dor
178
147
  #
179
148
  # @param [String] workflow name
180
149
  # @param [String] step name
181
- # @param [String] repository -- deprecated, ignored by workflow service
182
150
  #
183
151
  # @return [Integer] Number of objects with this repository:workflow:step that have a status of 'queued'
184
- def count_queued_for_workstep(workflow, step, repository = nil)
185
- Deprecation.warn(self, 'the third argument to `#count_queued_for_workstep` is unused and will go away in Dor::Workflow::Client 4.0.0. omit argument to silence.') unless repository.nil?
152
+ def count_queued_for_workstep(workflow, step)
186
153
  count_objects_in_step(workflow, step, 'queued')
187
154
  end
188
155
 
@@ -42,7 +42,6 @@ module Dor
42
42
  end
43
43
 
44
44
  # @return [Hash{Symbol => Object}] including :status_code and :status_time
45
- # rubocop:disable Metrics/MethodLength
46
45
  def info
47
46
  @info ||= begin
48
47
  # if we have an accessioned milestone, this is the last possible step and should be the status regardless of time stamp
@@ -64,7 +63,6 @@ module Dor
64
63
  { status_code: status_code, status_time: status_time }
65
64
  end
66
65
  end
67
- # rubocop:enable Metrics/MethodLength
68
66
 
69
67
  def status_code
70
68
  info.fetch(:status_code)
@@ -3,7 +3,7 @@
3
3
  module Dor
4
4
  module Workflow
5
5
  class Client
6
- VERSION = '4.0.0'
6
+ VERSION = '5.1.0'
7
7
  end
8
8
  end
9
9
  end
@@ -17,32 +17,10 @@ module Dor
17
17
  # @param [String] repo The repository the object resides in. This parameter is deprecated
18
18
  # @param [String] druid The id of the object to delete the workflow from
19
19
  # @param [Boolean] create_accession_wf Option to create accessionWF when closing a version. Defaults to true
20
- # rubocop:disable Metrics/MethodLength
21
- def close_version(*args)
22
- case args.size
23
- when 3
24
- Deprecation.warn(self, 'you provided 3 args, but close_version now takes kwargs')
25
- (repo, druid, create_accession_wf) = args
26
- when 2
27
- Deprecation.warn(self, 'you provided 2 args, but close_version now takes kwargs')
28
- (repo, druid) = args
29
- create_accession_wf = true
30
- when 1
31
- opts = args.first
32
- repo = opts[:repo]
33
- druid = opts[:druid]
34
- version = opts[:version]
35
- create_accession_wf = opts.key?(:create_accession_wf) ? opts[:create_accession_wf] : true
36
- else
37
- raise ArgumentError, 'wrong number of arguments, must be 1-3'
38
- end
39
-
40
- Deprecation.warn(self, 'passing the repo parameter to close_version is no longer necessary. This will raise an error in dor-workflow-client version 4') if repo
41
-
20
+ def close_version(druid:, version:, create_accession_wf: true)
42
21
  requestor.request(construct_url(druid, version, create_accession_wf), 'post', '')
43
22
  true
44
23
  end
45
- # rubocop:enable Metrics/MethodLength
46
24
 
47
25
  private
48
26