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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1cf9f20e7028e7252d30de465bbbee5afc837f32793be1612591443dab72170d
4
- data.tar.gz: 0436dcc7ecf8964b20193603f4219ebfc46a0bedf42566ddcf4a79bd831ed8ff
3
+ metadata.gz: a2f12b5263f8e70fb23775a198bd2a376da3ac042689620be3d71a6832c44ccc
4
+ data.tar.gz: e493994b692813a7812e550ee939f17f68a34d856acb6ee4a714df3e3a72083b
5
5
  SHA512:
6
- metadata.gz: e48a8d2b2f1f3ccfff30db3def931c14862eb9e108865db26b4d830c170e990db20ca453b5b66b8fdf61fa8b9c5a677f522c124bd294918e682e0ea88693da4e
7
- data.tar.gz: 1cb0bfa19232319da9d3e47efd241974a91f0e94f21cdc46195804270d02a29be8e2979cbba15c01b5e0c35b53a643f627f5153fb966369b7f74b0100e0132e6
6
+ metadata.gz: de6e765d5e943c10c0109a23b69f339f31b7d29a79a468c19597d669004ef632de7fa02bf004a849880cedcc493a2289ca62807114aa7afa767d25836b51ebcd
7
+ data.tar.gz: 8a3d6e02177c15e7eec9677da779be3d490a79a1c2361f031a7e0f30ead149fc75008cc4c26dedcc2df3dbff3439f168078a2b0e52e29c435473ed3400ce3413
data/lib/dor-services.rb CHANGED
@@ -108,6 +108,7 @@ module Dor
108
108
  autoload :CollectionService
109
109
  autoload :CreateWorkflowService
110
110
  autoload :CreativeCommonsLicenseService
111
+ autoload :DeleteService
111
112
  autoload :EmbargoService
112
113
  autoload :IndexingService
113
114
  autoload :MetadataService
@@ -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.add_wps("#{wf_name}:#{process.status}", "#{wf_name}:#{process.status}:#{process.name}")
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
- cleanup_by_druid druid
57
- cleanup_stacks druid
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
- # Initilizes workflow for the object in the workflow service
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 = solr.get 'select', params: params
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 = solr.get 'select', params: params
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
- @@solr ||= ActiveFedora.solr.conn.is_a?(RSolr::Client) ? ActiveFedora.solr.conn : Dor::Config.make_solr_connection
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dor
4
- VERSION = '7.1.0'
4
+ VERSION = '7.2.0'
5
5
  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: 7.1.0
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-04-25 00:00:00.000000000 Z
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