dor-services 7.1.0 → 7.2.0

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: 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