class FedoraMigrate::RepositoryMigrator
Constants
- SingleObjectReport
Attributes
namespace[RW]
report[RW]
result[RW]
source[RW]
source_objects[RW]
Public Class Methods
new(namespace = nil, options = {})
click to toggle source
# File lib/fedora_migrate/repository_migrator.rb, line 9 def initialize(namespace = nil, options = {}) @namespace = namespace || repository_namespace @options = options @report = MigrationReport.new(@options.fetch(:report, nil)) conversion_options end
Public Instance Methods
failures()
click to toggle source
# File lib/fedora_migrate/repository_migrator.rb, line 49 def failures report.failed_objects.count end
initialize_report()
click to toggle source
# File lib/fedora_migrate/repository_migrator.rb, line 30 def initialize_report @result = SingleObjectReport.new @result.status = false report.save(source.pid, @result) end
migrate_current_object()
click to toggle source
# File lib/fedora_migrate/repository_migrator.rb, line 24 def migrate_current_object return unless migration_required? initialize_report migrate_object end
migrate_objects()
click to toggle source
# File lib/fedora_migrate/repository_migrator.rb, line 16 def migrate_objects source_objects.each do |object| @source = object migrate_current_object end report.reload end
migrate_relationships()
click to toggle source
# File lib/fedora_migrate/repository_migrator.rb, line 36 def migrate_relationships return "Relationship migration halted because #{failures} objects didn't migrate successfully." if failures > 0 && not_forced? source_objects.each do |object| @source = object @result = find_or_create_single_object_report migrate_relationship unless blacklist.include?(source.pid) end end
Private Instance Methods
find_or_create_single_object_report()
click to toggle source
# File lib/fedora_migrate/repository_migrator.rb, line 90 def find_or_create_single_object_report if report.results[source.pid].nil? SingleObjectReport.new else SingleObjectReport.new(report.results[source.pid]["status"], report.results[source.pid]["object"], report.results[source.pid]["relationships"]) end end
migrate_object()
click to toggle source
# File lib/fedora_migrate/repository_migrator.rb, line 55 def migrate_object result.object = FedoraMigrate::ObjectMover.new(source, nil, options).migrate result.status = true rescue StandardError => e result.object = e.inspect result.status = false ensure report.save(source.pid, result) end
migrate_relationship()
click to toggle source
# File lib/fedora_migrate/repository_migrator.rb, line 65 def migrate_relationship result.relationships = FedoraMigrate::RelsExtDatastreamMover.new(source).migrate result.status = true rescue StandardError => e result.relationships = e.inspect result.status = false ensure report.save(source.pid, result) end
migration_required?()
click to toggle source
# File lib/fedora_migrate/repository_migrator.rb, line 84 def migration_required? return false if blacklist.include?(source.pid) return true if report.results[source.pid].nil? !report.results[source.pid]["status"] end
qualifying_object(object)
click to toggle source
# File lib/fedora_migrate/repository_migrator.rb, line 79 def qualifying_object(object) name = object.pid.split(/:/).first return object if name.match(namespace) end
repository_namespace()
click to toggle source
# File lib/fedora_migrate/repository_migrator.rb, line 75 def repository_namespace FedoraMigrate.source.connection.repository_profile["repositoryPID"]["repositoryPID"].split(/:/).first.strip end