Sha256: 3cdaaea16042a8824c8ba441394503d4c6d3c9c4b0ab84e7e5b01ffea82500c6
Contents?: true
Size: 1.29 KB
Versions: 22
Compression:
Stored size: 1.29 KB
Contents
module Ddr module Events class FixityCheckEvent < Event include PreservationEventBehavior include ReindexObjectAfterSave self.preservation_event_type = :fix self.description = "Validation of datastream checksums" DETAIL_PREAMBLE = "Datastream checksum validation results:" DETAIL_TEMPLATE = "%{dsid} ... %{validation}" # Message sent by ActiveSupport::Notifications def self.call(*args) notification = ActiveSupport::Notifications::Event.new(*args) result = notification.payload[:result] # FixityCheck::Result instance detail = [DETAIL_PREAMBLE] result.results.each do |dsid, dsProfile| validation = dsProfile["dsChecksumValid"] ? VALID : INVALID detail << DETAIL_TEMPLATE % {dsid: dsid, validation: validation} end create(pid: result.pid, event_date_time: notification.time, outcome: result.success ? SUCCESS : FAILURE, detail: detail.join("\n") ) end def to_solr { Ddr::IndexFields::LAST_FIXITY_CHECK_ON => event_date_time_s, Ddr::IndexFields::LAST_FIXITY_CHECK_OUTCOME => outcome } end protected def default_software self.class.repository_software end end end end
Version data entries
22 entries across 22 versions & 1 rubygems
Version | Path |
---|---|
ddr-models-1.14.1 | lib/ddr/events/fixity_check_event.rb |
ddr-models-1.14.0 | lib/ddr/events/fixity_check_event.rb |