class Libis::Ingester::Submitter
Protected Instance Methods
pre_process(item)
click to toggle source
# File lib/libis/ingester/tasks/submitter.rb, line 20 def pre_process(item) skip_processing_item unless item.properties['ingest_sub_dir'] end
process(item)
click to toggle source
# File lib/libis/ingester/tasks/submitter.rb, line 24 def process(item) submit_item(item) stop_processing_subitems end
Private Instance Methods
submit_item(item)
click to toggle source
# File lib/libis/ingester/tasks/submitter.rb, line 31 def submit_item(item) if item.properties['ingest_sip'] debug "Item already submitted: Deposit ##{item.properties['ingest_dip']} SIP: #{item.properties['ingest_sip']}", item return end debug "Found ingestable item. Subdir: #{item.properties['ingest_sub_dir']}", item producer_info = item.get_run.producer unless @deposit_service @deposit_service = Libis::Services::Rosetta::DepositHandler.new(Libis::Ingester::Config.base_url) @deposit_service.authenticate(producer_info[:agent], producer_info[:password], producer_info[:institution]) end deposit_result = @deposit_service.submit( item.get_run.material_flow, File.join(item.get_run.ingest_sub_dir, item.properties['ingest_sub_dir']), producer_info[:id], item.get_run.id ) debug 'Deposit result: %s', item , deposit_result item.properties['ingest_sip'] = deposit_result[:sip_id] item.properties['ingest_dip'] = deposit_result[:deposit_activity_id] item.properties['ingest_date'] = deposit_result[:creation_date] item.save! info "Deposit ##{item.properties['ingest_dip']} done. SIP: #{item.properties['ingest_sip']}", item rescue Libis::Services::ServiceError => e raise Libis::WorkflowError, "SIP deposit failed: #{e.message}" rescue Exception => e raise Libis::WorkflowError, "SIP deposit failed: #{e.message} @ #{e.backtrace.first}" end