dor-services 6.6.0 → 6.6.1

Sign up to get free protection for your applications and to get access to all the features.
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