class Longleaf::DeregisterEvent
Event to deregister a file from longleaf
Public Class Methods
new(file_rec:, app_manager:, force: false)
click to toggle source
@param file_rec [FileRecord] file record @param app_manager [ApplicationConfigManager] the application configuration @param force [boolean] if true, then already deregistered files will be deregistered again
# File lib/longleaf/events/deregister_event.rb, line 14 def initialize(file_rec:, app_manager:, force: false) raise ArgumentError.new('Must provide a file_rec parameter') if file_rec.nil? raise ArgumentError.new('Parameter file_rec must be a FileRecord') \ unless file_rec.is_a?(FileRecord) raise ArgumentError.new('Must provide an ApplicationConfigManager') if app_manager.nil? raise ArgumentError.new('Parameter app_manager must be an ApplicationConfigManager') \ unless app_manager.is_a?(ApplicationConfigManager) @app_manager = app_manager @file_rec = file_rec @force = force end
Public Instance Methods
perform()
click to toggle source
Perform a deregistration event on the given file record @raise DeregistrationError
if a file cannot be deregistered
# File lib/longleaf/events/deregister_event.rb, line 29 def perform begin md_rec = @file_rec.metadata_record # Only need to deregister a deregistered file if the force flag is provided if md_rec.deregistered? && !@force raise DeregistrationError.new("Unable to deregister '#{@file_rec.path}', it is already deregistered.") end md_rec.deregistered = Time.now.utc.iso8601(3) # persist the metadata @app_manager.md_manager.persist(@file_rec) record_success(EventNames::DEREGISTER, @file_rec.path) rescue DeregistrationError => err record_failure(EventNames::DEREGISTER, @file_rec.path, err.message) rescue InvalidStoragePathError => err record_failure(EventNames::DEREGISTER, @file_rec.path, err.message) end return_status end