Sha256: c7ba09bf2b9db804a8b558efbe5c68abb8297b177d00cae49abfda80d60465c1

Contents?: true

Size: 1.59 KB

Versions: 20

Compression:

Stored size: 1.59 KB

Contents

class AuditJob < ActiveJob::Base
  queue_as :audit

  # URI of the resource to audit.
  # This URI could include the actual resource (e.g. content) and the version to audit:
  #     http://localhost:8983/fedora/rest/test/a/b/c/abcxyz/content/fcr:versions/version1
  # but it could also just be:
  #     http://localhost:8983/fedora/rest/test/a/b/c/abcxyz/content
  # @param [FileSet] the parent object
  # @param [String] file_id used to find the file within its parent object (usually "original_file")
  # @param [String] uri of the specific file/version to be audited
  def perform(file_set, file_id, uri)
    log = run_audit(file_set, file_id, uri)
    fixity_ok = log.pass == 1
    unless fixity_ok
      if CurationConcerns.config.callback.set?(:after_audit_failure)
        login = file_set.depositor
        user = User.find_by_user_key(login)
        CurationConcerns.config.callback.run(:after_audit_failure, file_set, user, log.created_at)
      end
    end
    fixity_ok
  end

  protected

    def run_audit(file_set, file_id, uri)
      begin
        fixity_ok = ActiveFedora::FixityService.new(uri).check
      rescue Ldp::NotFound
        error_msg = 'resource not found'
      end

      if fixity_ok
        passing = 1
        ChecksumAuditLog.prune_history(file_set.id, file_id)
      else
        logger.warn "***AUDIT*** Audit failed for #{uri} #{error_msg}"
        passing = 0
      end
      ChecksumAuditLog.create!(pass: passing, file_set_id: file_set.id, version: uri, file_id: file_id)
    end

  private

    def logger
      ActiveFedora::Base.logger || CurationConcerns::NullLogger.new
    end
end

Version data entries

20 entries across 20 versions & 2 rubygems

Version Path
curation_concerns-1.0.0.beta1 app/jobs/audit_job.rb
curation_concerns-0.14.0 app/jobs/audit_job.rb
curation_concerns-0.14.0.pre4 app/jobs/audit_job.rb
curation_concerns-0.14.0.pre3 app/jobs/audit_job.rb
curation_concerns-0.14.0.pre2 app/jobs/audit_job.rb
curation_concerns-0.14.0.pre1 app/jobs/audit_job.rb
curation_concerns-0.13.1 app/jobs/audit_job.rb
curation_concerns-0.13.0 app/jobs/audit_job.rb
curation_concerns-0.12.0 app/jobs/audit_job.rb
curation_concerns-0.12.0.pre9 app/jobs/audit_job.rb
curation_concerns-0.12.0.pre8 app/jobs/audit_job.rb
curation_concerns-0.12.0.pre7 app/jobs/audit_job.rb
curation_concerns-0.12.0.pre6 app/jobs/audit_job.rb
curation_concerns-0.12.0.pre5 app/jobs/audit_job.rb
curation_concerns-0.12.0.pre4 app/jobs/audit_job.rb
curation_concerns-0.12.0.pre3 app/jobs/audit_job.rb
curation_concerns-0.12.0.pre2 app/jobs/audit_job.rb
curation_concerns-models-0.12.0.pre1 app/jobs/audit_job.rb
curation_concerns-models-0.11.0 app/jobs/audit_job.rb
curation_concerns-models-0.11.0.rc1 app/jobs/audit_job.rb