diff options
author | Rémy Coutable <remy@rymai.me> | 2019-01-14 16:06:40 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2019-01-14 16:06:40 +0000 |
commit | 31af7daf788f3f65d630ab4e5d8bae4bd5607807 (patch) | |
tree | 538e3b0123fe8a96c31988ad1990f7fc06e2f20d /lib | |
parent | c01c487cf0a32fb9c3c4122e714de9d397caafbc (diff) | |
parent | 660dcd5b7c038f86002ddecf3562e1b7018e143c (diff) | |
download | gitlab-ce-31af7daf788f3f65d630ab4e5d8bae4bd5607807.tar.gz |
Merge branch 'sh-fix-bitbucket-server-error-handling' into 'master'
Fix Bitbucket Server importer error handling
Closes #56154
See merge request gitlab-org/gitlab-ce!24343
Diffstat (limited to 'lib')
-rw-r--r-- | lib/bitbucket_server/client.rb | 14 | ||||
-rw-r--r-- | lib/bitbucket_server/connection.rb | 17 |
2 files changed, 17 insertions, 14 deletions
diff --git a/lib/bitbucket_server/client.rb b/lib/bitbucket_server/client.rb index 83e8808db07..6a608058813 100644 --- a/lib/bitbucket_server/client.rb +++ b/lib/bitbucket_server/client.rb @@ -4,18 +4,6 @@ module BitbucketServer class Client attr_reader :connection - ServerError = Class.new(StandardError) - - SERVER_ERRORS = [SocketError, - OpenSSL::SSL::SSLError, - Errno::ECONNRESET, - Errno::ECONNREFUSED, - Errno::EHOSTUNREACH, - Net::OpenTimeout, - Net::ReadTimeout, - Gitlab::HTTP::BlockedUrlError, - BitbucketServer::Connection::ConnectionError].freeze - def initialize(options = {}) @connection = Connection.new(options) end @@ -64,8 +52,6 @@ module BitbucketServer def get_collection(path, type, page_offset: 0, limit: nil) paginator = BitbucketServer::Paginator.new(connection, Addressable::URI.escape(path), type, page_offset: page_offset, limit: limit) BitbucketServer::Collection.new(paginator) - rescue *SERVER_ERRORS => e - raise ServerError, e end end end diff --git a/lib/bitbucket_server/connection.rb b/lib/bitbucket_server/connection.rb index 7efcdcf8619..9c14b26c65a 100644 --- a/lib/bitbucket_server/connection.rb +++ b/lib/bitbucket_server/connection.rb @@ -7,6 +7,17 @@ module BitbucketServer DEFAULT_API_VERSION = '1.0' SEPARATOR = '/' + NETWORK_ERRORS = [ + SocketError, + OpenSSL::SSL::SSLError, + Errno::ECONNRESET, + Errno::ECONNREFUSED, + Errno::EHOSTUNREACH, + Net::OpenTimeout, + Net::ReadTimeout, + Gitlab::HTTP::BlockedUrlError + ].freeze + attr_reader :api_version, :base_uri, :username, :token ConnectionError = Class.new(StandardError) @@ -27,6 +38,8 @@ module BitbucketServer check_errors!(response) response.parsed_response + rescue *NETWORK_ERRORS => e + raise ConnectionError, e end def post(path, body) @@ -38,6 +51,8 @@ module BitbucketServer check_errors!(response) response.parsed_response + rescue *NETWORK_ERRORS => e + raise ConnectionError, e end # We need to support two different APIs for deletion: @@ -55,6 +70,8 @@ module BitbucketServer check_errors!(response) response.parsed_response + rescue *NETWORK_ERRORS => e + raise ConnectionError, e end private |