dor-services 5.2.0 → 5.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 +5 -13
- data/config/certs/robots-dor-dev.crt +29 -0
- data/config/certs/robots-dor-dev.key +27 -0
- data/config/config_defaults.yml +2 -0
- data/config/dev_console_env.rb +77 -0
- data/lib/dor-services.rb +31 -27
- data/lib/dor/config.rb +25 -19
- data/lib/dor/datastreams/administrative_metadata_ds.rb +19 -20
- data/lib/dor/datastreams/content_metadata_ds.rb +238 -177
- data/lib/dor/datastreams/datastream_spec_solrizer.rb +1 -1
- data/lib/dor/datastreams/default_object_rights_ds.rb +99 -16
- data/lib/dor/datastreams/desc_metadata_ds.rb +37 -34
- data/lib/dor/datastreams/embargo_metadata_ds.rb +16 -16
- data/lib/dor/datastreams/events_ds.rb +2 -2
- data/lib/dor/datastreams/geo_metadata_ds.rb +5 -10
- data/lib/dor/datastreams/identity_metadata_ds.rb +22 -22
- data/lib/dor/datastreams/rights_metadata_ds.rb +43 -32
- data/lib/dor/datastreams/role_metadata_ds.rb +5 -5
- data/lib/dor/datastreams/simple_dublin_core_ds.rb +13 -14
- data/lib/dor/datastreams/version_metadata_ds.rb +22 -23
- data/lib/dor/datastreams/workflow_definition_ds.rb +15 -15
- data/lib/dor/datastreams/workflow_ds.rb +64 -70
- data/lib/dor/exceptions.rb +0 -1
- data/lib/dor/migrations/identifiable/uriify_augmented_contentlocation_refs.rb +4 -4
- data/lib/dor/migrations/processable/unify_workflows.rb +1 -1
- data/lib/dor/models/admin_policy_object.rb +4 -4
- data/lib/dor/models/assembleable.rb +2 -3
- data/lib/dor/models/collection.rb +1 -1
- data/lib/dor/models/contentable.rb +113 -108
- data/lib/dor/models/describable.rb +136 -95
- data/lib/dor/models/editable.rb +205 -119
- data/lib/dor/models/embargoable.rb +16 -16
- data/lib/dor/models/eventable.rb +2 -2
- data/lib/dor/models/geoable.rb +3 -3
- data/lib/dor/models/governable.rb +25 -26
- data/lib/dor/models/identifiable.rb +66 -55
- data/lib/dor/models/item.rb +0 -1
- data/lib/dor/models/itemizable.rb +7 -8
- data/lib/dor/models/preservable.rb +7 -8
- data/lib/dor/models/processable.rb +76 -73
- data/lib/dor/models/publishable.rb +25 -30
- data/lib/dor/models/releaseable.rb +118 -155
- data/lib/dor/models/rightsable.rb +2 -3
- data/lib/dor/models/set.rb +1 -1
- data/lib/dor/models/shelvable.rb +8 -10
- data/lib/dor/models/upgradable.rb +5 -6
- data/lib/dor/models/versionable.rb +3 -4
- data/lib/dor/models/workflow_object.rb +15 -16
- data/lib/dor/services/cleanup_reset_service.rb +15 -16
- data/lib/dor/services/cleanup_service.rb +2 -4
- data/lib/dor/services/digital_stacks_service.rb +10 -13
- data/lib/dor/services/merge_service.rb +8 -9
- data/lib/dor/services/metadata_handlers/catalog_handler.rb +1 -1
- data/lib/dor/services/metadata_handlers/mdtoolkit_handler.rb +3 -3
- data/lib/dor/services/metadata_service.rb +19 -20
- data/lib/dor/services/registration_service.rb +80 -61
- data/lib/dor/services/reset_workspace_service.rb +6 -10
- data/lib/dor/services/sdr_ingest_service.rb +15 -16
- data/lib/dor/services/search_service.rb +18 -23
- data/lib/dor/services/suri_service.rb +6 -6
- data/lib/dor/services/technical_metadata_service.rb +27 -44
- data/lib/dor/utils/ng_tidy.rb +3 -3
- data/lib/dor/utils/sdr_client.rb +2 -3
- data/lib/dor/utils/solr_doc_helper.rb +1 -3
- data/lib/dor/version.rb +1 -1
- data/lib/dor/workflow/document.rb +43 -40
- data/lib/dor/workflow/graph.rb +26 -26
- data/lib/dor/workflow/process.rb +34 -35
- data/lib/tasks/rdoc.rake +5 -5
- metadata +129 -111
- data/lib/dor/models/presentable.rb +0 -146
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
YjMzM2M1ZThjYjZmZjdjMjJjY2VlODM3OTYzMDg1MjZiOTNjMDE4Yg==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 23867d4b182bfb98fe6e40f940fc7353080d446f
|
4
|
+
data.tar.gz: d57f27f17462ccea10c3ea4b6e2e48b2e4c88bb4
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
N2UyM2U5MTUxMzJjNjFjMjRkM2U3NTFjNWFhMDVkYTg5M2UyYmUxYzkzOTQ2
|
11
|
-
MGM5MTYxMDM1ZTIyY2U0MDYwNDJkODhiNDc4YWZiZjlhNTNkZTc=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
NmE4ZjZjNjMwYTM1YTBhY2Q0MzJmZjQxNGZkOGVhMzUxYWQ0MTRmNDYwMTYy
|
14
|
-
NDgxNWVmMzFlOTAwMDkzOTNiMWE4MjQ1ZmJhNjc0NGFlMTY1NzI5MzQ5MDVk
|
15
|
-
NWU1NmJlZWNmODIzNjA1NDVmNzJmODcwNDA5ZDFiZmQ3ZjRlN2I=
|
6
|
+
metadata.gz: d74d65c086f2a549ebff3abe402665166617225ff9f7ffa2cc2b43d10cd8506dd67928b0011ed35e0bc7231166faa5a85a04afeb2172885f054f096c1b01fcbd
|
7
|
+
data.tar.gz: f15acd410e5db8345bc38fdf7398c5b09301f03a3067010fc0aeb772c589048c063632040bdb369745b1f725e72e219920d2eddbacc36fa05b83321e1792bd21
|
@@ -0,0 +1,29 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIE9zCCAt8CCQCcUJVDTu7rTjANBgkqhkiG9w0BAQUFADCBvzELMAkGA1UEBhMC
|
3
|
+
VVMxEzARBgNVBAgTCkNhbGlmb3JuaWExETAPBgNVBAcTCFN0YW5mb3JkMRwwGgYD
|
4
|
+
VQQKExNTdGFuZm9yZCBVbml2ZXJzaXR5MRIwEAYDVQQLEwlMaWJyYXJpZXMxJTAj
|
5
|
+
BgNVBAMTHFNVTCBET1IgKGRldi90ZXN0KSBhY2Nlc3MgQ0ExLzAtBgkqhkiG9w0B
|
6
|
+
CQEWIHN1bC13ZWJtYXN0ZXJAbGlzdHMuc3RhbmZvcmQuZWR1MB4XDTEyMDkyNjE1
|
7
|
+
NTQzNVoXDTIyMDkyNDE1NTQzNVowgboxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpD
|
8
|
+
YWxpZm9ybmlhMREwDwYDVQQHEwhTdGFuZm9yZDEcMBoGA1UEChMTU3RhbmZvcmQg
|
9
|
+
VW5pdmVyc2l0eTEyMDAGA1UEAxQpcm9ib3RzQHN1bC1seWJlcnNlcnZpY2VzLWRl
|
10
|
+
di5zdGFuZm9yZC5lZHUxMTAvBgkqhkiG9w0BCQEWImRsc3MtZGV2ZWxvcGVyc0Bs
|
11
|
+
aXN0cy5zdGFuZm9yZC5lZHUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
|
12
|
+
AQC1t+PPhLTDFQBuAf4f1GOj7jHdXMN0tvSHL1OCaibe0d8iKbXCMMIE0z8lbBpZ
|
13
|
+
1pA+8terIvxoTlly92EEvGkywZb+DIxnjyG0b9ftDJ64pARJMcnvwJMW/w3WdHCd
|
14
|
+
5uJ5HVM8ZCbEItUfskFukS6tfNBpG8ri6cIQ2ulJzOWYxPV5R2eRneM6vtFD0xtu
|
15
|
+
RJb/uMwiOwB79qk4QazbEQtkeZsrvomDFkIuHO/nf9wmgYG99H7q1kXplIrzDDX+
|
16
|
+
fvD+JHvuMr5YXfmBQ9wmaZf6YIL7CXj79HUF4uG/a0SjrLZyLh262zWJQFVpjSW8
|
17
|
+
Brl/fAyjeZvWJMyCDXRqsedjAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAG0jIfTj
|
18
|
+
1FJsxTzcD938vtKuNo5XEIX8phqW1MA2eJ5Ojgu1hpW5Jf7fmUHKVnamm7eya5QR
|
19
|
+
356KCJzZzwdCS4xVFq/l43gCA2j8TYrwO6/0EfM/5psUZS3ecwahzcJXfHPHvd9u
|
20
|
+
qaXRqbjJYi+Ls70uStTC/JBIIu48atDF0DeXJ21hAbstZ1OKKNzAcYgZk14GKxCi
|
21
|
+
ArgAzdg8UDtC4KsdqgxP6vF8Vc/gcHSu9AkVHgPVXbITjV0/kaKNgFi0bVqP7bJD
|
22
|
+
hrUFYrS+S+hflQJCmVrDwW0JU2HnJ3EJOFX5F4FYHL4vt6ZjVsMzucraMqiLyUaO
|
23
|
+
s6DVaWO8WMlphmFUfb3ChQjrKxFZZ6vKJPD/ExnQHa0kWwOELyMJuXw2PLk7k+qD
|
24
|
+
rmjX+K3Ed+JiJuiDG5k8f1BDZE24lvxDwye5fQyDWPfib1yTClYYy4PRh4AI688f
|
25
|
+
qgMyv51Qx82o0IJ1On1rNg5/iB7OEVcYSol3U5xiY9gRUd3vq637agZzMuRQnKXs
|
26
|
+
Uj0+Vl4OrZ54F8MVsUKfi7Je1oVUEhuHqFt/tSOGlHg1XyR/ExwulCNBKIVdhhrF
|
27
|
+
rxZCYrGDSUCF6tteJXpOBTtFT9b7hbMmBohKyS4XjfPSPRh9QHx7wepqSp3aHpmR
|
28
|
+
4gY8Go40mS83xHCKBooqsy2/Z9vQlSb9Cr8u
|
29
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,27 @@
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
2
|
+
MIIEpQIBAAKCAQEAtbfjz4S0wxUAbgH+H9Rjo+4x3VzDdLb0hy9Tgmom3tHfIim1
|
3
|
+
wjDCBNM/JWwaWdaQPvLXqyL8aE5ZcvdhBLxpMsGW/gyMZ48htG/X7QyeuKQESTHJ
|
4
|
+
78CTFv8N1nRwnebieR1TPGQmxCLVH7JBbpEurXzQaRvK4unCENrpSczlmMT1eUdn
|
5
|
+
kZ3jOr7RQ9MbbkSW/7jMIjsAe/apOEGs2xELZHmbK76JgxZCLhzv53/cJoGBvfR+
|
6
|
+
6tZF6ZSK8ww1/n7w/iR77jK+WF35gUPcJmmX+mCC+wl4+/R1BeLhv2tEo6y2ci4d
|
7
|
+
uts1iUBVaY0lvAa5f3wMo3mb1iTMgg10arHnYwIDAQABAoIBAQCmlDzsZZ2C24S6
|
8
|
+
U29OZFc21kq1vqyaGIEOT48BFSguyDsAyTWKH0IsRC41suRxCGTQn7KeegLh5zjO
|
9
|
+
UAGK4uCYm6g7mOs4n5fpHUHWVuRFJG2dX1vbQTBVO1fHCJSX2ygumHhN+w0ibT/r
|
10
|
+
v2+F2ObuOGWghM62tkylQNfsRD0QjalE8ST2xp9p4xwPrAwEuURlA04qnLYNi4+6
|
11
|
+
qexDtrLG8E6JV/dd3dY95WjKPscadR1fAKm9sebD0XO31Lu6BGCvpmBU0OmYVfrY
|
12
|
+
BN/ofhEmJh+Xgwfxx6PicRDvu9bPnffqbGhDO4ckGDlqXp1fDBgf1I7CclXdrVMH
|
13
|
+
Qsxunh5pAoGBAN7929V1aw0S7Rqvuf4N+o1XwBExa2DL7EYI1Oea/nuBMPqvfeNh
|
14
|
+
SrbM0gYejEzLmeRUUKRhMMoAgXQnxcg3Kz/5pUXT3b4YtzeskX8nkJ6/2gEU3M7E
|
15
|
+
lJj7c5wW1otqMH19+iDNR4N8vjPh98kDJW1HZUHSAcdyE+dZiFP2ofMfAoGBANCe
|
16
|
+
AJgA9EkdwZsom+I7Ty9LSrTWx6cKmNEbLVn1iSlyJx1kHoWyTMtuZszCWBjiXx70
|
17
|
+
84WpX2B4MuJBq6sSoEiUahNsphks82glOd6i+eoE/I+NtZehOFnkAMyGux+FbMyG
|
18
|
+
q/9ZlQgsbWpFHxS59vX/kvlNun2RpJkaF6QPBuc9AoGBAIGdscCb5cPNsoCGkGf6
|
19
|
+
HB84WG4l+bJkFkyHKaoOT8neSGgOxe/7R4CGAbaI3yhsWGF+GPnTfJaOQLERxUch
|
20
|
+
ukQPil/STNwIZcc4ycHNb6S3A7MJO2f8oBtkXcjnBYI4EUOAjHmwmNb3FV/3Ax6W
|
21
|
+
c5TXoSXnOh2CU8twIWwcufolAoGATqnFf4uckZVu05rUbNIAYcz6NoZmck5EoVSm
|
22
|
+
HS3Asqggp6yA9djtrCfNC5icr4VsaLfku5nKJQ4t4bLxkGhNmBCejwSA/S09+x9O
|
23
|
+
Wu0JX3zR3y+IMczQ+tRGmNiU5qXhCJ4fbQHSeGqIN3Io7h/RR6E/QlJU59RrRG/a
|
24
|
+
SjqAV+ECgYEA2mA5VFK3jECnLde+biEaXidIOuBMcqaP0VG6sBwz2wTGSTBE1WkG
|
25
|
+
6prCD0McWVAgDTm3MMKxeuMaoW5eEi83+G+CywLaTBpc8Hz7qgRhBpKhRirCfHMW
|
26
|
+
EfQV5k32vEGoSI+eG8zcGb9mwDeb/EWXAMGXrx2YuYFu7txtwC2mZXc=
|
27
|
+
-----END RSA PRIVATE KEY-----
|
data/config/config_defaults.yml
CHANGED
@@ -0,0 +1,77 @@
|
|
1
|
+
cert_dir = File.join(File.dirname(__FILE__), 'certs')
|
2
|
+
|
3
|
+
Dor::Config.configure do
|
4
|
+
|
5
|
+
ssl do
|
6
|
+
cert_file File.join(cert_dir, 'robots-dor-dev.crt')
|
7
|
+
key_file File.join(cert_dir, 'robots-dor-dev.key')
|
8
|
+
key_pass ''
|
9
|
+
end
|
10
|
+
|
11
|
+
suri do
|
12
|
+
mint_ids true
|
13
|
+
id_namespace 'druid'
|
14
|
+
url 'https://lyberservices-dev.stanford.edu'
|
15
|
+
user 'labware'
|
16
|
+
pass 'lyberteam'
|
17
|
+
end
|
18
|
+
|
19
|
+
metadata do
|
20
|
+
exist.url 'http://viewer:l3l%40nd@lyberapps-dev.stanford.edu/exist/rest/'
|
21
|
+
catalog.url 'http://lyberservices-prod.stanford.edu/catalog/mods'
|
22
|
+
end
|
23
|
+
|
24
|
+
stacks do
|
25
|
+
document_cache_host 'purl-dev.stanford.edu'
|
26
|
+
local_stacks_root '/stacks'
|
27
|
+
local_document_cache_root '/purl/document_cache'
|
28
|
+
local_workspace_root '/dor/workspace'
|
29
|
+
end
|
30
|
+
|
31
|
+
solrizer.url 'http://sul-solr.stanford.edu/solr/argo_test'
|
32
|
+
fedora.url 'https://sul-dor-test.stanford.edu/fedora'
|
33
|
+
workflow.url 'https://lyberservices-dev.stanford.edu/workflow/'
|
34
|
+
dor_services.url 'https://dorAdmin:dorAdmin@sul-lyberservices-dev.stanford.edu/dor'
|
35
|
+
|
36
|
+
cleanup do
|
37
|
+
local_workspace_root '/dor/workspace'
|
38
|
+
local_export_home '/dor/export'
|
39
|
+
end
|
40
|
+
|
41
|
+
sdr do
|
42
|
+
url 'https://sdrAdmin:sdrAdmin@sdr-services-test.stanford.edu/sdr/'
|
43
|
+
local_workspace_root '/dor/workspace'
|
44
|
+
local_export_home '/dor/export'
|
45
|
+
datastreams do
|
46
|
+
administrativeMetadata 'optional'
|
47
|
+
contentMetadata 'optional'
|
48
|
+
descMetadata 'required'
|
49
|
+
defaultObjectRights 'optional'
|
50
|
+
events 'optional'
|
51
|
+
embargoMetadata 'optional'
|
52
|
+
identityMetadata 'required'
|
53
|
+
provenanceMetadata 'required'
|
54
|
+
relationshipMetadata 'required'
|
55
|
+
rightsMetadata 'optional'
|
56
|
+
roleMetadata 'optional'
|
57
|
+
sourceMetadata 'optional'
|
58
|
+
technicalMetadata 'optional'
|
59
|
+
versionMetadata 'required'
|
60
|
+
workflows 'optional'
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
accessioning_robot_sleep_time 30
|
65
|
+
|
66
|
+
end
|
67
|
+
|
68
|
+
# WORKFLOW_URI = 'http://lyberservices-test.stanford.edu/workflow'
|
69
|
+
|
70
|
+
# Constants for Dor::WorkflowService
|
71
|
+
# module Dor
|
72
|
+
# CREATE_WORKFLOW = DOR_CREATE_WORKFLOW = true
|
73
|
+
# WF_URI = 'http://lyberservices-test.stanford.edu/workflow'
|
74
|
+
# end
|
75
|
+
|
76
|
+
# External application locations
|
77
|
+
JHOVE_HOME = File.join(ENV['HOME'], 'jhoveToolkit')
|
data/lib/dor-services.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
require 'active_fedora'
|
2
2
|
require 'active_support/core_ext/module/attribute_accessors'
|
3
|
+
require 'modsulator'
|
4
|
+
require 'nokogiri-pretty'
|
3
5
|
|
4
6
|
module Dor
|
5
7
|
@@registered_classes = {}
|
@@ -8,7 +10,7 @@ module Dor
|
|
8
10
|
|
9
11
|
class << self
|
10
12
|
|
11
|
-
def configure
|
13
|
+
def configure(*args, &block)
|
12
14
|
Dor::Config.configure *args, &block
|
13
15
|
end
|
14
16
|
|
@@ -16,7 +18,7 @@ module Dor
|
|
16
18
|
# to adapt it to. This is necessary when the object is not indexed, or the
|
17
19
|
# index is missing the objectType property.
|
18
20
|
# @param [String] pid The object's PID
|
19
|
-
def load_instance
|
21
|
+
def load_instance(pid)
|
20
22
|
ensure_models_loaded!
|
21
23
|
obj = Dor::Abstract.find pid
|
22
24
|
return nil if obj.new_object?
|
@@ -27,14 +29,17 @@ module Dor
|
|
27
29
|
|
28
30
|
# Get objectType information from solr and load the correct class the first time,
|
29
31
|
# saving the overhead of using ActiveFedora::Base#adapt_to. It falls back to
|
30
|
-
# Dor.load_instance() if the item is not in the index, or is improperly
|
31
|
-
# indexed.
|
32
|
+
# Dor.load_instance() if the item is not in the index, or is improperly indexed.
|
32
33
|
# @param [String] pid The object's PID
|
33
|
-
|
34
|
-
|
34
|
+
# @return [Object] the ActiveFedora-modeled object
|
35
|
+
def find(pid, opts = {})
|
36
|
+
opts[:rows] = 1 # we know we are going to just pay attention to the .first doc anyway
|
37
|
+
find_all(%(id:"#{pid}"), opts).first || load_instance(pid)
|
35
38
|
end
|
36
39
|
|
37
|
-
|
40
|
+
# TODO: return enumerable and lazy load_instance
|
41
|
+
# TODO: restrict fieldlist (fl) for non-:lightweight queries
|
42
|
+
def find_all(query, opts = {})
|
38
43
|
ensure_models_loaded!
|
39
44
|
resp = SearchService.query query, opts
|
40
45
|
resp.docs.collect do |solr_doc|
|
@@ -78,20 +83,20 @@ module Dor
|
|
78
83
|
require 'druid-tools'
|
79
84
|
|
80
85
|
# datastreams
|
81
|
-
autoload :AdministrativeMetadataDS,
|
82
|
-
autoload :ContentMetadataDS,
|
83
|
-
autoload :DescMetadataDS,
|
84
|
-
autoload :EmbargoMetadataDS,
|
85
|
-
autoload :EventsDS,
|
86
|
-
autoload :GeoMetadataDS,
|
87
|
-
autoload :IdentityMetadataDS,
|
88
|
-
autoload :RightsMetadataDS,
|
89
|
-
autoload :RoleMetadataDS,
|
90
|
-
autoload :WorkflowDefinitionDs,
|
91
|
-
autoload :WorkflowDs,
|
92
|
-
autoload :VersionMetadataDS,
|
93
|
-
autoload :DefaultObjectRightsDS,
|
94
|
-
autoload :SimpleDublinCoreDs,
|
86
|
+
autoload :AdministrativeMetadataDS, 'dor/datastreams/administrative_metadata_ds'
|
87
|
+
autoload :ContentMetadataDS, 'dor/datastreams/content_metadata_ds'
|
88
|
+
autoload :DescMetadataDS, 'dor/datastreams/desc_metadata_ds'
|
89
|
+
autoload :EmbargoMetadataDS, 'dor/datastreams/embargo_metadata_ds'
|
90
|
+
autoload :EventsDS, 'dor/datastreams/events_ds'
|
91
|
+
autoload :GeoMetadataDS, 'dor/datastreams/geo_metadata_ds'
|
92
|
+
autoload :IdentityMetadataDS, 'dor/datastreams/identity_metadata_ds'
|
93
|
+
autoload :RightsMetadataDS, 'dor/datastreams/rights_metadata_ds'
|
94
|
+
autoload :RoleMetadataDS, 'dor/datastreams/role_metadata_ds'
|
95
|
+
autoload :WorkflowDefinitionDs, 'dor/datastreams/workflow_definition_ds'
|
96
|
+
autoload :WorkflowDs, 'dor/datastreams/workflow_ds'
|
97
|
+
autoload :VersionMetadataDS, 'dor/datastreams/version_metadata_ds'
|
98
|
+
autoload :DefaultObjectRightsDS, 'dor/datastreams/default_object_rights_ds'
|
99
|
+
autoload :SimpleDublinCoreDs, 'dor/datastreams/simple_dublin_core_ds'
|
95
100
|
|
96
101
|
# DOR Concerns
|
97
102
|
autoload :Identifiable, 'dor/models/identifiable'
|
@@ -111,15 +116,14 @@ module Dor
|
|
111
116
|
autoload :Editable, 'dor/models/editable'
|
112
117
|
autoload :Discoverable, 'dor/models/discoverable'
|
113
118
|
autoload :Geoable, 'dor/models/geoable'
|
114
|
-
autoload :
|
115
|
-
autoload :Releaseable, 'dor/models/releaseable'
|
119
|
+
autoload :Releaseable, 'dor/models/releaseable'
|
116
120
|
autoload :Rightsable, 'dor/models/rightsable'
|
117
121
|
|
118
122
|
# ActiveFedora Classes
|
119
|
-
autoload :Abstract,
|
120
|
-
autoload :Item,
|
121
|
-
autoload :Set,
|
122
|
-
autoload :Collection,
|
123
|
+
autoload :Abstract, 'dor/models/item'
|
124
|
+
autoload :Item, 'dor/models/item'
|
125
|
+
autoload :Set, 'dor/models/set'
|
126
|
+
autoload :Collection, 'dor/models/collection'
|
123
127
|
autoload :AdminPolicyObject, 'dor/models/admin_policy_object'
|
124
128
|
autoload :WorkflowObject, 'dor/models/workflow_object'
|
125
129
|
|
data/lib/dor/config.rb
CHANGED
@@ -9,12 +9,12 @@ module Dor
|
|
9
9
|
define_callbacks :initialize
|
10
10
|
define_callbacks :configure
|
11
11
|
|
12
|
-
def initialize
|
12
|
+
def initialize(*args)
|
13
13
|
super *args
|
14
14
|
run_callbacks(:initialize) { }
|
15
15
|
end
|
16
16
|
|
17
|
-
def configure
|
17
|
+
def configure(*args)
|
18
18
|
result = self
|
19
19
|
temp_v = $-v
|
20
20
|
$-v = nil
|
@@ -26,29 +26,35 @@ module Dor
|
|
26
26
|
$-v = temp_v
|
27
27
|
end
|
28
28
|
params = { :dor_services_url => result.dor_services.url }
|
29
|
+
|
30
|
+
if result.workflow.logfile && result.workflow.shift_age
|
31
|
+
params[:logger] = Logger.new(result.workflow.logfile, result.workflow.shift_age)
|
32
|
+
elsif result.workflow.logfile
|
33
|
+
params[:logger] = Logger.new(result.workflow.logfile)
|
34
|
+
end
|
29
35
|
params[:timeout] = result.workflow.timeout if result.workflow.timeout
|
30
36
|
Dor::WorkflowService.configure result.workflow.url, params
|
31
|
-
|
37
|
+
result
|
32
38
|
end
|
33
39
|
|
34
|
-
def autoconfigure(url, cert_file=Config.ssl.cert_file, key_file=Config.ssl.key_file, key_pass=Config.ssl.key_pass)
|
40
|
+
def autoconfigure(url, cert_file = Config.ssl.cert_file, key_file = Config.ssl.key_file, key_pass = Config.ssl.key_pass)
|
35
41
|
client = make_rest_client(url, cert_file, key_file, key_pass)
|
36
42
|
config = Confstruct::Configuration.symbolize_hash JSON.parse(client.get :accept => 'application/json')
|
37
|
-
|
43
|
+
configure(config)
|
38
44
|
end
|
39
45
|
|
40
46
|
def sanitize
|
41
|
-
|
47
|
+
dup
|
42
48
|
end
|
43
49
|
|
44
|
-
def make_rest_client(url, cert=Config.ssl.cert_file, key=Config.ssl.key_file, pass=Config.ssl.key_pass)
|
50
|
+
def make_rest_client(url, cert = Config.ssl.cert_file, key = Config.ssl.key_file, pass = Config.ssl.key_pass)
|
45
51
|
params = {}
|
46
52
|
params[:ssl_client_cert] = OpenSSL::X509::Certificate.new(File.read(cert)) if cert
|
47
53
|
params[:ssl_client_key] = OpenSSL::PKey::RSA.new(File.read(key), pass) if key
|
48
54
|
RestClient::Resource.new(url, params)
|
49
55
|
end
|
50
56
|
|
51
|
-
def make_solr_connection(add_opts={})
|
57
|
+
def make_solr_connection(add_opts = {})
|
52
58
|
opts = Config.solrizer.opts.merge(add_opts).merge(
|
53
59
|
:url => Config.solrizer.url
|
54
60
|
)
|
@@ -99,17 +105,17 @@ module Dor
|
|
99
105
|
if ActiveFedora.respond_to?(:configurator)
|
100
106
|
if config.solrizer.url.present?
|
101
107
|
ActiveFedora::SolrService.register
|
102
|
-
ActiveFedora::SolrService.instance.instance_variable_set :@conn,
|
108
|
+
ActiveFedora::SolrService.instance.instance_variable_set :@conn, make_solr_connection
|
103
109
|
end
|
104
110
|
else
|
105
|
-
ActiveFedora::RubydoraConnection.connect
|
106
|
-
if
|
111
|
+
ActiveFedora::RubydoraConnection.connect fedora_config if fedora.url.present?
|
112
|
+
if solrizer.url.present?
|
107
113
|
ActiveFedora::SolrService.register config.solrizer.url, config.solrizer.opts
|
108
114
|
conn = ActiveFedora::SolrService.instance.conn.connection
|
109
115
|
if config.ssl.cert_file.present?
|
110
116
|
conn.use_ssl = true
|
111
117
|
conn.cert = OpenSSL::X509::Certificate.new(File.read(config.ssl.cert_file))
|
112
|
-
conn.key = OpenSSL::PKey::RSA.new(File.read(config.ssl.key_file),config.ssl.key_pass) if config.ssl.key_file.present?
|
118
|
+
conn.key = OpenSSL::PKey::RSA.new(File.read(config.ssl.key_file), config.ssl.key_pass) if config.ssl.key_file.present?
|
113
119
|
conn.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
114
120
|
end
|
115
121
|
end
|
@@ -120,22 +126,22 @@ module Dor
|
|
120
126
|
|
121
127
|
# Act like an ActiveFedora.configurator
|
122
128
|
|
123
|
-
def init
|
129
|
+
def init(*args); end
|
124
130
|
|
125
131
|
def fedora_config
|
126
|
-
fedora_uri = URI.parse(
|
127
|
-
connection_opts = { :url =>
|
128
|
-
connection_opts[:ssl_client_cert] = OpenSSL::X509::Certificate.new(File.read(
|
129
|
-
connection_opts[:ssl_client_key] = OpenSSL::PKey::RSA.new(File.read(
|
132
|
+
fedora_uri = URI.parse(fedora.url)
|
133
|
+
connection_opts = { :url => fedora.safeurl, :user => fedora_uri.user, :password => fedora_uri.password }
|
134
|
+
connection_opts[:ssl_client_cert] = OpenSSL::X509::Certificate.new(File.read(ssl.cert_file)) if ssl.cert_file.present?
|
135
|
+
connection_opts[:ssl_client_key] = OpenSSL::PKey::RSA.new(File.read(ssl.key_file), ssl.key_pass) if ssl.key_file.present?
|
130
136
|
connection_opts
|
131
137
|
end
|
132
138
|
|
133
139
|
def solr_config
|
134
|
-
{ :url =>
|
140
|
+
{ :url => solrizer.url }
|
135
141
|
end
|
136
142
|
|
137
143
|
def predicate_config
|
138
|
-
YAML.load(File.read(File.expand_path('../../../config/predicate_mappings.yml',__FILE__)))
|
144
|
+
YAML.load(File.read(File.expand_path('../../../config/predicate_mappings.yml', __FILE__)))
|
139
145
|
end
|
140
146
|
end
|
141
147
|
|
@@ -43,8 +43,8 @@ class AdministrativeMetadataDS < ActiveFedora::OmDatastream
|
|
43
43
|
end
|
44
44
|
|
45
45
|
define_template :default_collection do |xml|
|
46
|
-
xml.administrativeMetadata{
|
47
|
-
xml.registration{
|
46
|
+
xml.administrativeMetadata {
|
47
|
+
xml.registration {
|
48
48
|
xml.collection(:id => '')
|
49
49
|
}
|
50
50
|
}
|
@@ -52,37 +52,37 @@ class AdministrativeMetadataDS < ActiveFedora::OmDatastream
|
|
52
52
|
|
53
53
|
define_template :agreementId do |xml|
|
54
54
|
xml.administrativeMetadata {
|
55
|
-
xml.registration{
|
55
|
+
xml.registration {
|
56
56
|
xml.agreementId
|
57
57
|
}
|
58
58
|
}
|
59
59
|
end
|
60
60
|
|
61
61
|
define_template :metadata_format do |xml|
|
62
|
-
|
63
|
-
|
64
|
-
|
62
|
+
xml.descMetadata {
|
63
|
+
xml.format
|
64
|
+
}
|
65
65
|
end
|
66
66
|
|
67
67
|
define_template :metadata_source do |xml|
|
68
|
-
xml.administrativeMetadata{
|
69
|
-
xml.descMetadata{
|
70
|
-
|
68
|
+
xml.administrativeMetadata {
|
69
|
+
xml.descMetadata {
|
70
|
+
xml.source
|
71
71
|
}
|
72
72
|
}
|
73
73
|
end
|
74
74
|
|
75
75
|
define_template :registration do |xml|
|
76
76
|
xml.administrativeMetadata {
|
77
|
-
xml.registration{
|
78
|
-
xml.workflow(:id=> '')
|
77
|
+
xml.registration {
|
78
|
+
xml.workflow(:id => '')
|
79
79
|
}
|
80
80
|
}
|
81
81
|
end
|
82
82
|
|
83
83
|
define_template :default_collection do |xml|
|
84
84
|
xml.administrativeMetadata {
|
85
|
-
xml.registration{
|
85
|
+
xml.registration {
|
86
86
|
xml.collection
|
87
87
|
}
|
88
88
|
}
|
@@ -90,7 +90,7 @@ class AdministrativeMetadataDS < ActiveFedora::OmDatastream
|
|
90
90
|
|
91
91
|
def self.xml_template
|
92
92
|
Nokogiri::XML::Builder.new do |xml|
|
93
|
-
xml.administrativeMetadata{ }
|
93
|
+
xml.administrativeMetadata { }
|
94
94
|
end.doc
|
95
95
|
end
|
96
96
|
|
@@ -99,22 +99,21 @@ class AdministrativeMetadataDS < ActiveFedora::OmDatastream
|
|
99
99
|
# Hides complexity/verbosity of OM TermOperators for simple, non-repeating values
|
100
100
|
#################################################################################
|
101
101
|
|
102
|
-
def default_workflow_lane=
|
103
|
-
|
102
|
+
def default_workflow_lane=(lane)
|
103
|
+
defaults.initiate_workflow.lane = lane
|
104
104
|
end
|
105
105
|
|
106
106
|
def default_workflow_lane
|
107
|
-
|
107
|
+
defaults.initiate_workflow.lane.first
|
108
108
|
end
|
109
109
|
|
110
|
-
def default_shelving_path=
|
111
|
-
|
110
|
+
def default_shelving_path=(path)
|
111
|
+
defaults.shelving.path = path
|
112
112
|
end
|
113
113
|
|
114
114
|
def default_shelving_path
|
115
|
-
|
115
|
+
defaults.shelving.path.first
|
116
116
|
end
|
117
117
|
|
118
118
|
end
|
119
|
-
|
120
119
|
end
|