lib/libis/services/rosetta/service.rb in libis-services-0.1.10 vs lib/libis/services/rosetta/service.rb in libis-services-0.1.11
- old
+ new
@@ -11,10 +11,12 @@
require 'csv'
require 'write_xlsx'
require 'backports'
require 'awesome_print'
+require_relative '../service_error'
+
module Libis
module Services
module Rosetta
# noinspection RubyTooManyInstanceVariablesInspection
@@ -36,10 +38,16 @@
# @param [String] name
# @param [String] passwd
# @param [String] institute
# @return [String] PDS handle
def login(name, passwd, institute)
- handle = @pds_service.login(name, passwd, institute)
+ handle = nil
+ 0.upto(3).each do |i|
+ handle = @pds_service.login(name, passwd, institute)
+ break if handle
+ sleep(3 ** i)
+ end
+ raise ServiceError, 'Could not login into Rosetta.' unless handle
@producer_service.pds_handle = handle
@deposit_service.pds_handle = handle
@sip_service.pds_handle = handle
@ie_service.pds_handle = handle
@collection_service.pds_handle = handle