dor-services 6.6.0 → 6.6.1

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: '03910688a2a69cb49c106e7880699b27afc3d5003c5bae6dea3bb355389f5fab'
4
- data.tar.gz: 8486a5b5fb60208f4bd8565e2dae88aba9eb0f8247684e7a01fa05d5a1995cce
3
+ metadata.gz: 1cd18417e804e157e21f34db466b6dcd63931274bde523445a33837c8be5ccbd
4
+ data.tar.gz: acd804769d9ba047c1f93407aa84fdf4e965e7fac117640dd5b284723e345dcf
5
5
  SHA512:
6
- metadata.gz: 9d0f4c34c5a90c92cd7981cfbe68d0fd6ec305a51e66b6d19451edb40f3d591496d26a024dc41a6f795b7fb8b58a3765482f8412bff9c8f32340961e21df8be0
7
- data.tar.gz: 799de786b209a5549af2e3f68c318f92e69bd02b2a58fac0b51eb51582231a5ca5675682acb704648a9473f77b9d49fd2f00400af00f455c3b7984a660db85f5
6
+ metadata.gz: adbfbd13f0ddd200c69d55761b30cdf485c93cd0339c547df35ef9661391f5681522b9e020e88b8bc3991d63dbdf52dd38ba682668fca6f65ec3fbef3df915c9
7
+ data.tar.gz: 47dcf1212aebc8d515f328311d847d93754be771b7d530b2fc9a43a53f62b5705d8daae709eee9bc7e6e3aac990a790ef1e5e3247c33a7851d32488a2544ed10
@@ -19,7 +19,7 @@ module Dor
19
19
 
20
20
  private
21
21
 
22
- # @returns [Array<Dor::WorkflowDocument>]
22
+ # @return [Array<Dor::WorkflowDocument>]
23
23
  def workflows
24
24
  resource.workflows.workflows
25
25
  end
data/lib/dor/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dor
4
- VERSION = '6.6.0'
4
+ VERSION = '6.6.1'
5
5
  end
@@ -7,6 +7,18 @@ module Dor
7
7
  include SolrDocHelper
8
8
  include ::OM::XML::Document
9
9
 
10
+ ERROR_OMISSION = '... (continued)'
11
+ private_constant :ERROR_OMISSION
12
+
13
+ # see https://lucene.apache.org/core/7_3_1/core/org/apache/lucene/util/BytesRefHash.MaxBytesLengthExceededException.html
14
+ MAX_ERROR_LENGTH = 32_768 - 2 - ERROR_OMISSION.length
15
+ private_constant :MAX_ERROR_LENGTH
16
+
17
+ WF_SOLR_TYPE = :string
18
+ private_constant :WF_SOLR_TYPE
19
+ WF_SOLR_ATTRS = [:symbol].freeze
20
+ private_constant :WF_SOLR_ATTRS
21
+
10
22
  set_terminology do |t|
11
23
  t.root(path: 'workflow')
12
24
  t.repository(path: { attribute: 'repository' })
@@ -88,14 +100,13 @@ module Dor
88
100
  def to_solr(solr_doc = {}, *_args)
89
101
  wf_name = workflowId.first
90
102
  repo = repository.first
91
- wf_solr_type = :string
92
- wf_solr_attrs = [:symbol]
93
- add_solr_value(solr_doc, 'wf', wf_name, wf_solr_type, wf_solr_attrs)
94
- add_solr_value(solr_doc, 'wf_wps', wf_name, wf_solr_type, wf_solr_attrs)
95
- add_solr_value(solr_doc, 'wf_wsp', wf_name, wf_solr_type, wf_solr_attrs)
103
+
104
+ add_solr_value(solr_doc, 'wf', wf_name, WF_SOLR_TYPE, WF_SOLR_ATTRS)
105
+ add_solr_value(solr_doc, 'wf_wps', wf_name, WF_SOLR_TYPE, WF_SOLR_ATTRS)
106
+ add_solr_value(solr_doc, 'wf_wsp', wf_name, WF_SOLR_TYPE, WF_SOLR_ATTRS)
96
107
  status = processes.empty? ? 'empty' : (workflow_should_show_completed?(processes) ? 'completed' : 'active')
97
108
  errors = processes.count(&:error?)
98
- add_solr_value(solr_doc, 'workflow_status', [wf_name, status, errors, repo].join('|'), wf_solr_type, wf_solr_attrs)
109
+ add_solr_value(solr_doc, 'workflow_status', [wf_name, status, errors, repo].join('|'), WF_SOLR_TYPE, WF_SOLR_ATTRS)
99
110
 
100
111
  processes.each do |process|
101
112
  next unless process.status.present?
@@ -104,22 +115,23 @@ module Dor
104
115
  if !process.date_time.blank? && process.status && (process.status == 'completed' || process.status == 'error')
105
116
  solr_doc["wf_#{wf_name}_#{process.name}_dttsi"] = Time.parse(process.date_time).utc.iso8601
106
117
  end
107
- # index the error message without the druid so we hopefully get some overlap
108
- add_solr_value(solr_doc, 'wf_error', "#{wf_name}:#{process.name}:#{process.error_message}", wf_solr_type, wf_solr_attrs) if process.error_message
109
- add_solr_value(solr_doc, 'wf_wsp', "#{wf_name}:#{process.status}", wf_solr_type, wf_solr_attrs)
110
- add_solr_value(solr_doc, 'wf_wsp', "#{wf_name}:#{process.status}:#{process.name}", wf_solr_type, wf_solr_attrs)
111
- add_solr_value(solr_doc, 'wf_wps', "#{wf_name}:#{process.name}", wf_solr_type, wf_solr_attrs)
112
- add_solr_value(solr_doc, 'wf_wps', "#{wf_name}:#{process.name}:#{process.status}", wf_solr_type, wf_solr_attrs)
113
- add_solr_value(solr_doc, 'wf_swp', process.status.to_s, wf_solr_type, wf_solr_attrs)
114
- add_solr_value(solr_doc, 'wf_swp', "#{process.status}:#{wf_name}", wf_solr_type, wf_solr_attrs)
115
- add_solr_value(solr_doc, 'wf_swp', "#{process.status}:#{wf_name}:#{process.name}", wf_solr_type, wf_solr_attrs)
118
+
119
+ index_error_message(solr_doc, wf_name, process)
120
+
121
+ add_solr_value(solr_doc, 'wf_wsp', "#{wf_name}:#{process.status}", WF_SOLR_TYPE, WF_SOLR_ATTRS)
122
+ add_solr_value(solr_doc, 'wf_wsp', "#{wf_name}:#{process.status}:#{process.name}", WF_SOLR_TYPE, WF_SOLR_ATTRS)
123
+ add_solr_value(solr_doc, 'wf_wps', "#{wf_name}:#{process.name}", WF_SOLR_TYPE, WF_SOLR_ATTRS)
124
+ add_solr_value(solr_doc, 'wf_wps', "#{wf_name}:#{process.name}:#{process.status}", WF_SOLR_TYPE, WF_SOLR_ATTRS)
125
+ add_solr_value(solr_doc, 'wf_swp', process.status.to_s, WF_SOLR_TYPE, WF_SOLR_ATTRS)
126
+ add_solr_value(solr_doc, 'wf_swp', "#{process.status}:#{wf_name}", WF_SOLR_TYPE, WF_SOLR_ATTRS)
127
+ add_solr_value(solr_doc, 'wf_swp', "#{process.status}:#{wf_name}:#{process.name}", WF_SOLR_TYPE, WF_SOLR_ATTRS)
116
128
  next unless process.state != process.status
117
129
 
118
- add_solr_value(solr_doc, 'wf_wsp', "#{wf_name}:#{process.state}:#{process.name}", wf_solr_type, wf_solr_attrs)
119
- add_solr_value(solr_doc, 'wf_wps', "#{wf_name}:#{process.name}:#{process.state}", wf_solr_type, wf_solr_attrs)
120
- add_solr_value(solr_doc, 'wf_swp', process.state.to_s, wf_solr_type, wf_solr_attrs)
121
- add_solr_value(solr_doc, 'wf_swp', "#{process.state}:#{wf_name}", wf_solr_type, wf_solr_attrs)
122
- add_solr_value(solr_doc, 'wf_swp', "#{process.state}:#{wf_name}:#{process.name}", wf_solr_type, wf_solr_attrs)
130
+ add_solr_value(solr_doc, 'wf_wsp', "#{wf_name}:#{process.state}:#{process.name}", WF_SOLR_TYPE, WF_SOLR_ATTRS)
131
+ add_solr_value(solr_doc, 'wf_wps', "#{wf_name}:#{process.name}:#{process.state}", WF_SOLR_TYPE, WF_SOLR_ATTRS)
132
+ add_solr_value(solr_doc, 'wf_swp', process.state.to_s, WF_SOLR_TYPE, WF_SOLR_ATTRS)
133
+ add_solr_value(solr_doc, 'wf_swp', "#{process.state}:#{wf_name}", WF_SOLR_TYPE, WF_SOLR_ATTRS)
134
+ add_solr_value(solr_doc, 'wf_swp', "#{process.state}:#{wf_name}:#{process.name}", WF_SOLR_TYPE, WF_SOLR_ATTRS)
123
135
  end
124
136
 
125
137
  solr_doc[Solrizer.solr_name('wf_wps', :symbol)]&.uniq!
@@ -133,6 +145,17 @@ module Dor
133
145
  def inspect
134
146
  "#<#{self.class.name}:#{object_id}>"
135
147
  end
148
+
149
+ private
150
+
151
+ # index the error message without the druid so we hopefully get some overlap
152
+ # truncate to avoid org.apache.lucene.util.BytesRefHash$MaxBytesLengthExceededException
153
+ def index_error_message(solr_doc, wf_name, process)
154
+ return unless process.error_message
155
+
156
+ error_message = "#{wf_name}:#{process.name}:#{process.error_message}".truncate(MAX_ERROR_LENGTH, omission: ERROR_OMISSION)
157
+ add_solr_value(solr_doc, 'wf_error', error_message, WF_SOLR_TYPE, WF_SOLR_ATTRS)
158
+ end
136
159
  end
137
160
  end
138
161
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dor-services
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.6.0
4
+ version: 6.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Klein
@@ -14,7 +14,7 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2019-02-15 00:00:00.000000000 Z
17
+ date: 2019-03-06 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: active-fedora
@@ -504,14 +504,14 @@ dependencies:
504
504
  requirements:
505
505
  - - "~>"
506
506
  - !ruby/object:Gem::Version
507
- version: 0.60.0
507
+ version: 0.65.0
508
508
  type: :development
509
509
  prerelease: false
510
510
  version_requirements: !ruby/object:Gem::Requirement
511
511
  requirements:
512
512
  - - "~>"
513
513
  - !ruby/object:Gem::Version
514
- version: 0.60.0
514
+ version: 0.65.0
515
515
  - !ruby/object:Gem::Dependency
516
516
  name: rubocop-rspec
517
517
  requirement: !ruby/object:Gem::Requirement