class Libis::Ingester::SubmissionChecker
Protected Instance Methods
pre_process(item)
click to toggle source
# File lib/libis/ingester/tasks/submission_checker.rb, line 22 def pre_process(item) skip_processing_item if item.check_status(self.namepath) == :DONE skip_processing_item unless item.properties['ingest_sip'] end
process(item)
click to toggle source
# File lib/libis/ingester/tasks/submission_checker.rb, line 27 def process(item) check_item(item) stop_processing_subitems end
Private Instance Methods
assign_ie_numbers(item, number_list)
click to toggle source
# File lib/libis/ingester/tasks/submission_checker.rb, line 58 def assign_ie_numbers(item, number_list) if item.is_a?(Libis::Ingester::IntellectualEntity) ie = number_list.shift item.pid = ie.pid if ie info "Assigned PID #{item.pid} to IE item.", item else item.get_items.map {|i| assign_ie_numbers(i, number_list)} end end
check_item(item)
click to toggle source
# File lib/libis/ingester/tasks/submission_checker.rb, line 34 def check_item(item) # noinspection RubyResolve unless @sip_handler @sip_handler = Libis::Services::Rosetta::SipHandler.new(Libis::Ingester::Config.base_url) producer_info = item.get_run.producer @sip_handler.authenticate(producer_info[:agent], producer_info[:password], producer_info[:institution]) end sip_info = @sip_handler.get_info(item.properties['ingest_sip']) item.properties['ingest_status'] = sip_info.to_hash item_status = case sip_info.status when 'FINISHED' :DONE when 'DRAFT', 'APPROVED', 'INPROCESS', 'CREATED', 'WAITING', 'ACTIVE' :ASYNC_WAIT when 'IN_HUMAN_STAGE', 'IN_TA' :ASYNC_HALT else :FAILED end info "SIP: #{item.properties['ingest_sip']} - Module: #{sip_info.module} Stage: #{sip_info.stage} Status: #{sip_info.status}", item assign_ie_numbers(item, @sip_handler.get_ies(item.properties['ingest_sip'])) if item_status == :DONE set_status(item, item_status) end