Method: Longleaf::DeregisterEvent#perform

Defined in:
lib/longleaf/events/deregister_event.rb

#performObject

Perform a deregistration event on the given file record

Raises:

  • DeregistrationError if a file cannot be deregistered



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/longleaf/events/deregister_event.rb', line 29

def perform
  begin
    md_rec = @file_rec.

    # 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