dor-services 7.1.0 → 7.2.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-services.rb +1 -0
- data/lib/dor/indexers/workflow_indexer.rb +1 -1
- data/lib/dor/models/workflow_object.rb +2 -0
- data/lib/dor/services/cleanup_service.rb +5 -29
- data/lib/dor/services/create_workflow_service.rb +3 -1
- data/lib/dor/services/delete_service.rb +60 -0
- data/lib/dor/services/public_desc_metadata_service.rb +3 -0
- data/lib/dor/services/search_service.rb +10 -3
- data/lib/dor/version.rb +1 -1
- metadata +3 -44
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a2f12b5263f8e70fb23775a198bd2a376da3ac042689620be3d71a6832c44ccc
|
4
|
+
data.tar.gz: e493994b692813a7812e550ee939f17f68a34d856acb6ee4a714df3e3a72083b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: de6e765d5e943c10c0109a23b69f339f31b7d29a79a468c19597d669004ef632de7fa02bf004a849880cedcc493a2289ca62807114aa7afa767d25836b51ebcd
|
7
|
+
data.tar.gz: 8a3d6e02177c15e7eec9677da779be3d490a79a1c2361f031a7e0f30ead149fc75008cc4c26dedcc2df3dbff3439f168078a2b0e52e29c435473ed3400ce3413
|
data/lib/dor-services.rb
CHANGED
@@ -45,7 +45,7 @@ module Dor
|
|
45
45
|
index_error_message(solr_doc, wf_name, process)
|
46
46
|
|
47
47
|
# workflow name, process status then process name
|
48
|
-
solr_doc.
|
48
|
+
solr_doc.add_wsp("#{wf_name}:#{process.status}", "#{wf_name}:#{process.status}:#{process.name}")
|
49
49
|
|
50
50
|
# workflow name, process name then process status
|
51
51
|
solr_doc.add_wps("#{wf_name}:#{process.name}", "#{wf_name}:#{process.name}:#{process.status}")
|
@@ -28,6 +28,7 @@ module Dor
|
|
28
28
|
# @param [String] name the name of the workflow
|
29
29
|
# @return [String] the initial workflow xml
|
30
30
|
def self.initial_workflow(name)
|
31
|
+
Deprecation.warn(self, 'WorkflowObject#initial_workflow is deprecated and will be removed in dor-services 8.0')
|
31
32
|
return @@xml_cache[name] if @@xml_cache.include?(name)
|
32
33
|
|
33
34
|
find_and_cache_workflow_xml_and_repo name
|
@@ -39,6 +40,7 @@ module Dor
|
|
39
40
|
# @param [String] name the name of the workflow
|
40
41
|
# @return [String] the initial workflow xml
|
41
42
|
def self.initial_repo(name)
|
43
|
+
Deprecation.warn(self, 'WorkflowObject#initial_repo is deprecated and will be removed in dor-services 8.0')
|
42
44
|
return @@repo_cache[name] if @@repo_cache.include?(name)
|
43
45
|
|
44
46
|
find_and_cache_workflow_xml_and_repo name
|
@@ -24,6 +24,7 @@ module Dor
|
|
24
24
|
def self.cleanup_workspace_content(druid, base)
|
25
25
|
DruidTools::Druid.new(druid, base).prune!
|
26
26
|
end
|
27
|
+
private_class_method :cleanup_workspace_content
|
27
28
|
|
28
29
|
# @param [String] druid The identifier for the object whose data is to be removed
|
29
30
|
# @return [void] remove copy of the data that was exported to preservation core
|
@@ -34,6 +35,7 @@ module Dor
|
|
34
35
|
tarfile = "#{bag_dir}.tar"
|
35
36
|
remove_branch(tarfile)
|
36
37
|
end
|
38
|
+
private_class_method :cleanup_export
|
37
39
|
|
38
40
|
# @param [Pathname,String] pathname The full path of the branch to be removed
|
39
41
|
# @return [void] Remove the specified directory and all its children
|
@@ -41,6 +43,7 @@ module Dor
|
|
41
43
|
pathname = Pathname(pathname) if pathname.instance_of? String
|
42
44
|
pathname.rmtree if pathname.exist?
|
43
45
|
end
|
46
|
+
private_class_method :remove_branch
|
44
47
|
|
45
48
|
# Tries to remove any exsitence of the object in our systems
|
46
49
|
# Does the following:
|
@@ -53,35 +56,8 @@ module Dor
|
|
53
56
|
# - Removes active workflows
|
54
57
|
# @param [String] druid id of the object you wish to remove
|
55
58
|
def self.nuke!(druid)
|
56
|
-
|
57
|
-
|
58
|
-
cleanup_purl_doc_cache druid
|
59
|
-
remove_active_workflows druid
|
60
|
-
delete_from_dor druid
|
61
|
-
end
|
62
|
-
|
63
|
-
def self.cleanup_stacks(druid)
|
64
|
-
DruidTools::StacksDruid.new(druid, Config.stacks.local_stacks_root).prune!
|
65
|
-
end
|
66
|
-
|
67
|
-
def self.cleanup_purl_doc_cache(druid)
|
68
|
-
DruidTools::PurlDruid.new(druid, Config.stacks.local_document_cache_root).prune!
|
69
|
-
end
|
70
|
-
|
71
|
-
def self.remove_active_workflows(druid)
|
72
|
-
%w(dor sdr).each do |repo|
|
73
|
-
dor_wfs = Dor::Config.workflow.client.workflows(druid, repo)
|
74
|
-
dor_wfs.each { |wf| Dor::Config.workflow.client.delete_workflow(repo, druid, wf) }
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
# Delete an object from DOR.
|
79
|
-
#
|
80
|
-
# @param [string] pid the druid
|
81
|
-
def self.delete_from_dor(pid)
|
82
|
-
Dor::Config.fedora.client["objects/#{pid}"].delete
|
83
|
-
Dor::SearchService.solr.delete_by_id(pid)
|
84
|
-
Dor::SearchService.solr.commit
|
59
|
+
Deprecation.warn(self, 'CleanupService.nuke! is deprecated and will be removed in dor-services 8. Use Dor::DeleteService.destroy() instead.')
|
60
|
+
DeleteService.destroy(druid)
|
85
61
|
end
|
86
62
|
end
|
87
63
|
end
|
@@ -2,13 +2,15 @@
|
|
2
2
|
|
3
3
|
module Dor
|
4
4
|
class CreateWorkflowService
|
5
|
-
|
5
|
+
extend Deprecation
|
6
|
+
# Initializes workflow for the object in the workflow service
|
6
7
|
# It will set the priorty of the new workflow to the current_priority if it is > 0
|
7
8
|
# It will set lane_id from the item's APO default workflow lane
|
8
9
|
# @param [String] name of the workflow to be initialized
|
9
10
|
# @param [Boolean] create_ds create a 'workflows' datastream in Fedora for the object
|
10
11
|
# @param [Integer] priority the workflow's priority level
|
11
12
|
def self.create_workflow(item, name:, create_ds: true, priority: 0)
|
13
|
+
Deprecation.warn(self, 'CreateWorkflowService is deprecated. Use dor-workflow-service instead')
|
12
14
|
new(item).create_workflow(name: name, create_ds: create_ds, priority: priority)
|
13
15
|
end
|
14
16
|
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Dor
|
4
|
+
# Remove all traces of the object's data files from the workspace and export areas
|
5
|
+
class DeleteService
|
6
|
+
# Tries to remove any exsitence of the object in our systems
|
7
|
+
# Does the following:
|
8
|
+
# - Removes item from Fedora/Solr
|
9
|
+
# - Removes content from dor workspace
|
10
|
+
# - Removes content from assembly workspace
|
11
|
+
# - Removes content from sdr export area
|
12
|
+
# - Removes content from stacks
|
13
|
+
# - Removes content from purl
|
14
|
+
# - Removes active workflows
|
15
|
+
# @param [String] druid id of the object you wish to remove
|
16
|
+
def self.destroy(druid)
|
17
|
+
new(druid).destroy
|
18
|
+
end
|
19
|
+
|
20
|
+
def initialize(druid)
|
21
|
+
@druid = druid
|
22
|
+
end
|
23
|
+
|
24
|
+
def destroy
|
25
|
+
CleanupService.cleanup_by_druid druid
|
26
|
+
cleanup_stacks
|
27
|
+
cleanup_purl_doc_cache
|
28
|
+
remove_active_workflows
|
29
|
+
delete_from_dor
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
attr_reader :druid
|
35
|
+
|
36
|
+
def cleanup_stacks
|
37
|
+
DruidTools::StacksDruid.new(druid, Config.stacks.local_stacks_root).prune!
|
38
|
+
end
|
39
|
+
|
40
|
+
def cleanup_purl_doc_cache
|
41
|
+
DruidTools::PurlDruid.new(druid, Config.stacks.local_document_cache_root).prune!
|
42
|
+
end
|
43
|
+
|
44
|
+
def remove_active_workflows
|
45
|
+
%w[dor sdr].each do |repo|
|
46
|
+
dor_wfs = Dor::Config.workflow.client.workflows(druid, repo)
|
47
|
+
dor_wfs.each { |wf| Dor::Config.workflow.client.delete_workflow(repo, druid, wf) }
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
# Delete an object from DOR.
|
52
|
+
#
|
53
|
+
# @param [string] pid the druid
|
54
|
+
def delete_from_dor
|
55
|
+
Dor::Config.fedora.client["objects/#{druid}"].delete
|
56
|
+
Dor::SearchService.solr.delete_by_id(druid)
|
57
|
+
Dor::SearchService.solr.commit
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -2,11 +2,14 @@
|
|
2
2
|
|
3
3
|
module Dor
|
4
4
|
class PublicDescMetadataService
|
5
|
+
extend Deprecation
|
6
|
+
|
5
7
|
attr_reader :object
|
6
8
|
|
7
9
|
NOKOGIRI_DEEP_COPY = 1
|
8
10
|
|
9
11
|
def initialize(object)
|
12
|
+
Deprecation.warn(self, 'Dor::PublicDescMetadataService has moved to dor-services-app')
|
10
13
|
@object = object
|
11
14
|
end
|
12
15
|
|
@@ -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
|
|
@@ -41,7 +41,8 @@ module Dor
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def solr
|
44
|
-
|
44
|
+
Deprecation.warn(self, 'Dor::SearchService.solr is deprecated. Call ActiveFedora.solr.conn directly')
|
45
|
+
_solr
|
45
46
|
end
|
46
47
|
|
47
48
|
# @return String druid of the SDR Graveyard APO
|
@@ -58,6 +59,12 @@ module Dor
|
|
58
59
|
r['response']['docs'].first[:id]
|
59
60
|
end
|
60
61
|
end
|
62
|
+
|
63
|
+
private
|
64
|
+
|
65
|
+
def _solr
|
66
|
+
ActiveFedora.solr.conn
|
67
|
+
end
|
61
68
|
end
|
62
69
|
end
|
63
70
|
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: 7.
|
4
|
+
version: 7.2.0
|
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-
|
17
|
+
date: 2019-06-06 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
20
|
name: active-fedora
|
@@ -250,20 +250,6 @@ dependencies:
|
|
250
250
|
- - "~>"
|
251
251
|
- !ruby/object:Gem::Version
|
252
252
|
version: '3.0'
|
253
|
-
- !ruby/object:Gem::Dependency
|
254
|
-
name: systemu
|
255
|
-
requirement: !ruby/object:Gem::Requirement
|
256
|
-
requirements:
|
257
|
-
- - "~>"
|
258
|
-
- !ruby/object:Gem::Version
|
259
|
-
version: '2.6'
|
260
|
-
type: :runtime
|
261
|
-
prerelease: false
|
262
|
-
version_requirements: !ruby/object:Gem::Requirement
|
263
|
-
requirements:
|
264
|
-
- - "~>"
|
265
|
-
- !ruby/object:Gem::Version
|
266
|
-
version: '2.6'
|
267
253
|
- !ruby/object:Gem::Dependency
|
268
254
|
name: dor-rights-auth
|
269
255
|
requirement: !ruby/object:Gem::Requirement
|
@@ -312,20 +298,6 @@ dependencies:
|
|
312
298
|
- - ">="
|
313
299
|
- !ruby/object:Gem::Version
|
314
300
|
version: 0.4.1
|
315
|
-
- !ruby/object:Gem::Dependency
|
316
|
-
name: moab-versioning
|
317
|
-
requirement: !ruby/object:Gem::Requirement
|
318
|
-
requirements:
|
319
|
-
- - "~>"
|
320
|
-
- !ruby/object:Gem::Version
|
321
|
-
version: '4.0'
|
322
|
-
type: :runtime
|
323
|
-
prerelease: false
|
324
|
-
version_requirements: !ruby/object:Gem::Requirement
|
325
|
-
requirements:
|
326
|
-
- - "~>"
|
327
|
-
- !ruby/object:Gem::Version
|
328
|
-
version: '4.0'
|
329
301
|
- !ruby/object:Gem::Dependency
|
330
302
|
name: stanford-mods
|
331
303
|
requirement: !ruby/object:Gem::Requirement
|
@@ -382,20 +354,6 @@ dependencies:
|
|
382
354
|
- - "~>"
|
383
355
|
- !ruby/object:Gem::Version
|
384
356
|
version: '0.6'
|
385
|
-
- !ruby/object:Gem::Dependency
|
386
|
-
name: jhove-service
|
387
|
-
requirement: !ruby/object:Gem::Requirement
|
388
|
-
requirements:
|
389
|
-
- - ">="
|
390
|
-
- !ruby/object:Gem::Version
|
391
|
-
version: 1.1.1
|
392
|
-
type: :development
|
393
|
-
prerelease: false
|
394
|
-
version_requirements: !ruby/object:Gem::Requirement
|
395
|
-
requirements:
|
396
|
-
- - ">="
|
397
|
-
- !ruby/object:Gem::Version
|
398
|
-
version: 1.1.1
|
399
357
|
- !ruby/object:Gem::Dependency
|
400
358
|
name: pry
|
401
359
|
requirement: !ruby/object:Gem::Requirement
|
@@ -581,6 +539,7 @@ files:
|
|
581
539
|
- lib/dor/services/collection_service.rb
|
582
540
|
- lib/dor/services/create_workflow_service.rb
|
583
541
|
- lib/dor/services/creative_commons_license_service.rb
|
542
|
+
- lib/dor/services/delete_service.rb
|
584
543
|
- lib/dor/services/embargo_service.rb
|
585
544
|
- lib/dor/services/metadata_handlers/catalog_handler.rb
|
586
545
|
- lib/dor/services/metadata_service.rb
|