dor-services 8.0.0 → 8.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 +4 -4
- data/lib/dor/datastreams/content_metadata_ds.rb +0 -100
- data/lib/dor/indexers/processable_indexer.rb +1 -1
- data/lib/dor/services/search_service.rb +3 -8
- data/lib/dor/services/state_service.rb +13 -3
- data/lib/dor/static_config.rb +0 -5
- data/lib/dor/static_config/stacks_config.rb +4 -0
- data/lib/dor/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9db4d292ea111c582968fb625988bf1479ee1f72d660b3f0c7c6b85084590888
|
4
|
+
data.tar.gz: d447c63fc694a3b5d490a092a90d08175b4e67b42979b275bf336e77b8b8e027
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c5aa415cd76013eb41033aa02796351cff7c3343d018f35ca1a5fafa5e845d553d7cb38b05de8c005bf90afdec06ee36effe9563e5a210ac43aa2653da2f790d
|
7
|
+
data.tar.gz: b6c612125ee87bf1d583db3173cf7947b123273d93a24c46a68a5412697b263dbf090eac41603bbde940aaaf260aae23b89148364488fdaf012b7c101e05d79b
|
@@ -35,9 +35,6 @@ module Dor
|
|
35
35
|
t.shelved_file_id proxy: %i[resource shelved_file id], index_as: %i[displayable stored_searchable]
|
36
36
|
end
|
37
37
|
|
38
|
-
extend Deprecation
|
39
|
-
self.deprecation_horizon = '8.0'
|
40
|
-
|
41
38
|
### READ ONLY METHODS
|
42
39
|
|
43
40
|
# Only use this when you want the behavior of raising an exception if anything besides exactly one matching node
|
@@ -138,38 +135,6 @@ module Dor
|
|
138
135
|
end
|
139
136
|
end
|
140
137
|
|
141
|
-
# @param [Object] file
|
142
|
-
# @param [String] resource_name
|
143
|
-
# @return [Nokogiri::XML::Node] the added XML node
|
144
|
-
def add_file(file, resource_name)
|
145
|
-
resource_nodes = ng_xml.search('//resource[@id=\'' + resource_name + '\']')
|
146
|
-
raise 'resource doesnt exist.' if resource_nodes.length == 0
|
147
|
-
|
148
|
-
ng_xml_will_change!
|
149
|
-
|
150
|
-
node = resource_nodes.first
|
151
|
-
file_node = Nokogiri::XML::Node.new('file', ng_xml)
|
152
|
-
file_node['id'] = file[:name]
|
153
|
-
file_node['shelve'] = file[:shelve] || ''
|
154
|
-
file_node['publish'] = file[:publish] || ''
|
155
|
-
file_node['preserve'] = file[:preserve] || ''
|
156
|
-
node.add_child(file_node)
|
157
|
-
|
158
|
-
%i[md5 sha1].each do |algo|
|
159
|
-
next unless file[algo]
|
160
|
-
|
161
|
-
checksum_node = Nokogiri::XML::Node.new('checksum', ng_xml)
|
162
|
-
checksum_node['type'] = algo.to_s
|
163
|
-
checksum_node.content = file[algo]
|
164
|
-
file_node.add_child(checksum_node)
|
165
|
-
end
|
166
|
-
file_node['size'] = file[:size] if file[:size]
|
167
|
-
file_node['mimetype'] = file[:mime_type] if file[:mime_type]
|
168
|
-
file_node['role'] = file[:role] if file[:role]
|
169
|
-
file_node
|
170
|
-
end
|
171
|
-
deprecation_deprecate :add_file
|
172
|
-
|
173
138
|
# Copies the child's resource into the parent (self) as a virtual resource.
|
174
139
|
# Assumes the resource isn't a duplicate of an existing virtual or real resource.
|
175
140
|
# @param [String] child_druid druid
|
@@ -195,71 +160,6 @@ module Dor
|
|
195
160
|
resource
|
196
161
|
end
|
197
162
|
|
198
|
-
# @param [Array] files
|
199
|
-
# @param [String] resource_name ID of the resource
|
200
|
-
# @param [Integer] position
|
201
|
-
# @param [String] type Resource type
|
202
|
-
# @return [Nokogiri::XML::Node] the new resource that was added to the contentMetadata
|
203
|
-
def add_resource(files, resource_name, position, type = 'file')
|
204
|
-
raise "resource #{resource_name} already exists" if ng_xml.search('//resource[@id=\'' + resource_name + '\']').length > 0
|
205
|
-
|
206
|
-
ng_xml_will_change!
|
207
|
-
max = ng_xml.search('//resource').map { |node| node['sequence'].to_i }.max
|
208
|
-
# renumber all of the resources that will come after the newly added one
|
209
|
-
while max > position
|
210
|
-
node = ng_xml.search('//resource[@sequence=\'' + position + '\']')
|
211
|
-
node.first[sequence] = max + 1 if node.length > 0
|
212
|
-
max -= 1
|
213
|
-
end
|
214
|
-
node = Nokogiri::XML::Node.new('resource', ng_xml)
|
215
|
-
node['sequence'] = position.to_s
|
216
|
-
node['id'] = resource_name
|
217
|
-
node['type'] = type
|
218
|
-
files.each do |file|
|
219
|
-
file_node = Nokogiri::XML::Node.new('file', ng_xml)
|
220
|
-
%w(shelve publish preserve).each { |x| file_node[x] = file[x.to_sym] || '' }
|
221
|
-
file_node['id'] = file[:name]
|
222
|
-
node.add_child(file_node)
|
223
|
-
|
224
|
-
%i[md5 sha1].each do |algo|
|
225
|
-
next if file[algo].nil?
|
226
|
-
|
227
|
-
checksum_node = Nokogiri::XML::Node.new('checksum', ng_xml)
|
228
|
-
checksum_node['type'] = algo.to_s
|
229
|
-
checksum_node.content = file[algo]
|
230
|
-
file_node.add_child(checksum_node)
|
231
|
-
end
|
232
|
-
file_node['size'] = file[:size] if file[:size]
|
233
|
-
file_node['role'] = file[:role] if file[:role]
|
234
|
-
end
|
235
|
-
ng_xml.search('//contentMetadata').first.add_child(node)
|
236
|
-
node
|
237
|
-
end
|
238
|
-
deprecation_deprecate :add_resource
|
239
|
-
|
240
|
-
# @param [String] resource_name ID of the resource
|
241
|
-
def remove_resource(resource_name)
|
242
|
-
ng_xml_will_change!
|
243
|
-
node = singular_node('//resource[@id=\'' + resource_name + '\']')
|
244
|
-
position = node['sequence'].to_i + 1
|
245
|
-
node.remove
|
246
|
-
loop do
|
247
|
-
res = ng_xml.search('//resource[@sequence=\'' + position.to_s + '\']')
|
248
|
-
break if res.length == 0
|
249
|
-
|
250
|
-
res['sequence'] = position.to_s
|
251
|
-
position += 1
|
252
|
-
end
|
253
|
-
end
|
254
|
-
deprecation_deprecate :remove_resource
|
255
|
-
|
256
|
-
# @param [String] file_name ID of the file element
|
257
|
-
def remove_file(file_name)
|
258
|
-
ng_xml_will_change!
|
259
|
-
ng_xml.search('//file[@id=\'' + file_name + '\']').each(&:remove)
|
260
|
-
end
|
261
|
-
deprecation_deprecate :remove_file
|
262
|
-
|
263
163
|
# @param [String] file_name ID of the file element
|
264
164
|
# @param [String] publish
|
265
165
|
# @param [String] shelve
|
@@ -13,7 +13,7 @@ module Dor
|
|
13
13
|
def query(query, args = {})
|
14
14
|
params = args.merge(q: query)
|
15
15
|
params[:start] ||= 0
|
16
|
-
resp =
|
16
|
+
resp = solr.get 'select', params: params
|
17
17
|
return resp unless block_given?
|
18
18
|
|
19
19
|
cont = true
|
@@ -21,7 +21,7 @@ module Dor
|
|
21
21
|
cont = yield(resp)
|
22
22
|
params[:rows] ||= resp['response']['docs'].length
|
23
23
|
params[:start] += params[:rows]
|
24
|
-
resp =
|
24
|
+
resp = solr.get 'select', params: params
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
@@ -40,11 +40,6 @@ module Dor
|
|
40
40
|
result
|
41
41
|
end
|
42
42
|
|
43
|
-
def solr
|
44
|
-
Deprecation.warn(self, 'Dor::SearchService.solr is deprecated. Call ActiveFedora.solr.conn directly')
|
45
|
-
_solr
|
46
|
-
end
|
47
|
-
|
48
43
|
# @return String druid of the SDR Graveyard APO
|
49
44
|
# nil if APO does not exist in the currently configured environment
|
50
45
|
def sdr_graveyard_apo_druid
|
@@ -62,7 +57,7 @@ module Dor
|
|
62
57
|
|
63
58
|
private
|
64
59
|
|
65
|
-
def
|
60
|
+
def solr
|
66
61
|
ActiveFedora.solr.conn
|
67
62
|
end
|
68
63
|
end
|
@@ -2,19 +2,29 @@
|
|
2
2
|
|
3
3
|
module Dor
|
4
4
|
class StateService
|
5
|
-
|
5
|
+
extend Deprecation
|
6
|
+
|
7
|
+
# having version is prefered as without it, a call to
|
8
|
+
# fedora will be made to retrieve it.
|
9
|
+
def initialize(pid, version: nil)
|
6
10
|
@pid = pid
|
11
|
+
@version = version || fetch_version
|
7
12
|
end
|
8
13
|
|
9
14
|
def allows_modification?
|
10
15
|
!client.lifecycle('dor', pid, 'submitted') ||
|
11
|
-
client.
|
16
|
+
client.lifecycle('dor', pid, 'opened', version: version) ||
|
12
17
|
client.workflow_status('dor', pid, 'accessionWF', 'sdr-ingest-transfer') == 'hold'
|
13
18
|
end
|
14
19
|
|
15
20
|
private
|
16
21
|
|
17
|
-
attr_reader :pid
|
22
|
+
attr_reader :pid, :version
|
23
|
+
|
24
|
+
def fetch_version
|
25
|
+
Deprecation.warn(self, 'Calling the state service without passing in a version is deprecated and will be removed in dor-services 9')
|
26
|
+
Dor.find(pid).current_version
|
27
|
+
end
|
18
28
|
|
19
29
|
def client
|
20
30
|
Dor::Config.workflow.client
|
data/lib/dor/static_config.rb
CHANGED
@@ -4,6 +4,9 @@ module Dor
|
|
4
4
|
class StaticConfig
|
5
5
|
# Represents the configuration for the shared filesystem direcotories
|
6
6
|
class StacksConfig
|
7
|
+
extend Deprecation
|
8
|
+
self.deprecation_horizon = 'dor-services 9.0'
|
9
|
+
|
7
10
|
def initialize(hash)
|
8
11
|
@document_cache_host = hash.fetch(:document_cache_host)
|
9
12
|
@local_stacks_root = hash.fetch(:local_stacks_root)
|
@@ -34,6 +37,7 @@ module Dor
|
|
34
37
|
@local_document_cache_root = new_value if new_value
|
35
38
|
@local_document_cache_root
|
36
39
|
end
|
40
|
+
deprecation_deprecate :local_document_cache_root
|
37
41
|
end
|
38
42
|
end
|
39
43
|
end
|
data/lib/dor/version.rb
CHANGED
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: 8.
|
4
|
+
version: 8.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Klein
|
@@ -20,7 +20,7 @@ authors:
|
|
20
20
|
autorequire:
|
21
21
|
bindir: bin
|
22
22
|
cert_chain: []
|
23
|
-
date: 2019-09-
|
23
|
+
date: 2019-09-19 00:00:00.000000000 Z
|
24
24
|
dependencies:
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: active-fedora
|
@@ -240,14 +240,14 @@ dependencies:
|
|
240
240
|
requirements:
|
241
241
|
- - "~>"
|
242
242
|
- !ruby/object:Gem::Version
|
243
|
-
version: '3.
|
243
|
+
version: '3.8'
|
244
244
|
type: :runtime
|
245
245
|
prerelease: false
|
246
246
|
version_requirements: !ruby/object:Gem::Requirement
|
247
247
|
requirements:
|
248
248
|
- - "~>"
|
249
249
|
- !ruby/object:Gem::Version
|
250
|
-
version: '3.
|
250
|
+
version: '3.8'
|
251
251
|
- !ruby/object:Gem::Dependency
|
252
252
|
name: druid-tools
|
253
253
|
requirement: !ruby/object:Gem::Requirement
|