dor-services 6.2.0 → 6.3.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/datastreams/workflow_ds.rb +9 -4
- data/lib/dor/indexers/workflow_indexer.rb +27 -0
- data/lib/dor/models/admin_policy_object.rb +2 -1
- data/lib/dor/models/collection.rb +2 -1
- data/lib/dor/models/concerns/preservable.rb +3 -0
- data/lib/dor/models/item.rb +2 -1
- data/lib/dor/models/set.rb +2 -1
- data/lib/dor/models/workflow_object.rb +2 -1
- data/lib/dor/version.rb +1 -1
- data/lib/dor/workflow/document.rb +2 -1
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8610285f6083a621745b30d7bd063bf732e33052ff2f8be6ea6fd5f976bbcfe1
|
4
|
+
data.tar.gz: 0f235f97bdc5e5102cc675a2789eafce2cf12a10fa1ba06772b69f864707e476
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1bbe06840429b3612a827375b54022fc43ea9318153acc4e4b68c747c025f0e12b460630a211ddbdd0a9030be42a8160ce8eeea30b1ce0872e653364aca02709
|
7
|
+
data.tar.gz: 3222dd6c0435580bbf452c9cc89b6ebcedd47d8b279f127dfc256621b9d4ce9ee50b08a2ea4adaf5d3d29bbc2d45f6bd4155a835b5bba5fba24e241c7ffc490d
|
data/lib/dor-services.rb
CHANGED
@@ -3,6 +3,9 @@
|
|
3
3
|
module Dor
|
4
4
|
# TODO: class docs
|
5
5
|
class WorkflowDs < ActiveFedora::OmDatastream
|
6
|
+
extend Deprecation
|
7
|
+
self.deprecation_horizon = 'dor-services version 7.0.0'
|
8
|
+
|
6
9
|
before_save :build_location
|
7
10
|
set_terminology do |t|
|
8
11
|
t.root(path: 'workflows')
|
@@ -38,8 +41,10 @@ module Dor
|
|
38
41
|
|
39
42
|
Workflow::Document.new(xml.to_s)
|
40
43
|
end
|
44
|
+
deprecation_deprecate get_workflow: 'This has been moved to Argo and will be discontinued'
|
41
45
|
|
42
46
|
alias [] get_workflow
|
47
|
+
deprecation_deprecate :[] => 'This has been moved to Argo and will be discontinued'
|
43
48
|
|
44
49
|
def ng_xml
|
45
50
|
@ng_xml ||= Nokogiri::XML::Document.parse(content)
|
@@ -51,7 +56,8 @@ module Dor
|
|
51
56
|
def content(refresh = false)
|
52
57
|
@content = nil if refresh
|
53
58
|
@content ||= Dor::Config.workflow.client.get_workflow_xml 'dor', pid, nil
|
54
|
-
rescue Dor::WorkflowException
|
59
|
+
rescue Dor::WorkflowException => e
|
60
|
+
Dor.logger.warn "Unable to connect to the workflow service #{e}. Falling back to placeholder XML"
|
55
61
|
xml = Nokogiri::XML(%(<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<workflows objectId="#{pid}"/>))
|
56
62
|
digital_object.datastreams.keys.each do |dsid|
|
57
63
|
next unless dsid =~ /WF$/
|
@@ -76,9 +82,8 @@ module Dor
|
|
76
82
|
cp.priority.to_i
|
77
83
|
end
|
78
84
|
|
79
|
-
def to_solr(solr_doc = {}, *
|
80
|
-
#
|
81
|
-
workflows.each { |wf| solr_doc = wf.to_solr(solr_doc, *args) }
|
85
|
+
def to_solr(solr_doc = {}, *_args)
|
86
|
+
# noop - indexing is done by the WorkflowIndexer
|
82
87
|
solr_doc
|
83
88
|
end
|
84
89
|
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Dor
|
4
|
+
# Indexes the objects position in workflows
|
5
|
+
class WorkflowIndexer
|
6
|
+
include SolrDocHelper
|
7
|
+
|
8
|
+
attr_reader :resource
|
9
|
+
def initialize(resource:)
|
10
|
+
@resource = resource
|
11
|
+
end
|
12
|
+
|
13
|
+
# @return [Hash] the partial solr document for workflow concerns
|
14
|
+
def to_solr
|
15
|
+
{}.tap do |solr_doc|
|
16
|
+
workflows.each { |wf| solr_doc = wf.to_solr(solr_doc) }
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
# @returns [Array<Dor::WorkflowDocument>]
|
23
|
+
def workflows
|
24
|
+
resource.workflows.workflows
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -3,6 +3,8 @@
|
|
3
3
|
module Dor
|
4
4
|
module Preservable
|
5
5
|
extend ActiveSupport::Concern
|
6
|
+
extend Deprecation
|
7
|
+
self.deprecation_horizon = 'dor-services version 7.0.0'
|
6
8
|
|
7
9
|
included do
|
8
10
|
has_metadata name: 'provenanceMetadata', type: ProvenanceMetadataDS, label: 'Provenance Metadata'
|
@@ -21,6 +23,7 @@ module Dor
|
|
21
23
|
def sdr_ingest_transfer(agreement_id)
|
22
24
|
SdrIngestService.transfer(self, agreement_id)
|
23
25
|
end
|
26
|
+
deprecation_deprecate sdr_ingest_transfer: 'Use SdrIngestService.transfer instead'
|
24
27
|
|
25
28
|
private
|
26
29
|
|
data/lib/dor/models/item.rb
CHANGED
@@ -18,7 +18,8 @@ module Dor
|
|
18
18
|
DescribableIndexer,
|
19
19
|
IdentifiableIndexer,
|
20
20
|
ProcessableIndexer,
|
21
|
-
ReleasableIndexer
|
21
|
+
ReleasableIndexer,
|
22
|
+
WorkflowIndexer
|
22
23
|
)
|
23
24
|
|
24
25
|
has_metadata name: 'technicalMetadata', type: TechnicalMetadataDS, label: 'Technical Metadata', control_group: 'M'
|
data/lib/dor/models/set.rb
CHANGED
data/lib/dor/version.rb
CHANGED
@@ -67,7 +67,8 @@ module Dor
|
|
67
67
|
@processes ||=
|
68
68
|
if definition
|
69
69
|
definition.processes.collect do |process|
|
70
|
-
|
70
|
+
nodes = ng_xml.xpath("/workflow/process[@name = '#{process.name}']")
|
71
|
+
node = nodes.max { |a, b| a.attr('version').to_i <=> b.attr('version').to_i }
|
71
72
|
process.update!(node, self)
|
72
73
|
end
|
73
74
|
else
|
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.
|
4
|
+
version: 6.3.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-01-
|
17
|
+
date: 2019-01-30 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
20
|
name: active-fedora
|
@@ -512,6 +512,20 @@ dependencies:
|
|
512
512
|
- - "~>"
|
513
513
|
- !ruby/object:Gem::Version
|
514
514
|
version: 0.60.0
|
515
|
+
- !ruby/object:Gem::Dependency
|
516
|
+
name: rubocop-rspec
|
517
|
+
requirement: !ruby/object:Gem::Requirement
|
518
|
+
requirements:
|
519
|
+
- - ">="
|
520
|
+
- !ruby/object:Gem::Version
|
521
|
+
version: '0'
|
522
|
+
type: :development
|
523
|
+
prerelease: false
|
524
|
+
version_requirements: !ruby/object:Gem::Requirement
|
525
|
+
requirements:
|
526
|
+
- - ">="
|
527
|
+
- !ruby/object:Gem::Version
|
528
|
+
version: '0'
|
515
529
|
- !ruby/object:Gem::Dependency
|
516
530
|
name: simplecov
|
517
531
|
requirement: !ruby/object:Gem::Requirement
|
@@ -609,6 +623,7 @@ files:
|
|
609
623
|
- lib/dor/indexers/identifiable_indexer.rb
|
610
624
|
- lib/dor/indexers/processable_indexer.rb
|
611
625
|
- lib/dor/indexers/releasable_indexer.rb
|
626
|
+
- lib/dor/indexers/workflow_indexer.rb
|
612
627
|
- lib/dor/models/abstract.rb
|
613
628
|
- lib/dor/models/admin_policy_object.rb
|
614
629
|
- lib/dor/models/agreement.rb
|