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