dor-services 5.2.0 → 5.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|