class Longleaf::ValidateMetadataCommand
Command for validating file metadata longleaf
Public Class Methods
new(app_manager)
click to toggle source
# File lib/longleaf/commands/validate_metadata_command.rb, line 11 def initialize(app_manager) @app_manager = app_manager end
Public Instance Methods
execute(file_selector:)
click to toggle source
Execute the validation command @param file_selector [FileSelector] selector for files to register @return [Integer] status code
# File lib/longleaf/commands/validate_metadata_command.rb, line 18 def execute(file_selector:) start_time = Time.now logger.info('Performing validate metadata command') begin # Perform metadata validation on each of the file paths provided loop do f_path = file_selector.next_path break if f_path.nil? storage_location = @app_manager.location_manager.get_location_by_path(f_path) begin file_rec = FileRecord.new(f_path, storage_location) unless file_rec.metadata_present? raise MetadataError.new("Cannot validate metadata for #{f_path}, file is not registered.") end @app_manager.md_manager.load(file_rec) record_success("Metadata for file passed validation: #{f_path}") rescue LongleafError => err record_failure(err.message) end end rescue RegistrationError, InvalidStoragePathError, StorageLocationUnavailableError => err record_failure(err.message) rescue => err record_failure("Encountered error while validating metadata files", error: err) end logger.info("Completed validate metadata command in #{Time.now - start_time}s") return_status end