38 lines
968 B
Ruby
38 lines
968 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Registry
|
|
module ConnectionErrorsHandler
|
|
extend ActiveSupport::Concern
|
|
|
|
included do
|
|
rescue_from ContainerRegistry::Path::InvalidRegistryPathError, with: :invalid_registry_path
|
|
rescue_from Faraday::Error, with: :connection_error
|
|
|
|
before_action :ping_container_registry
|
|
end
|
|
|
|
private
|
|
|
|
# rubocop:disable Gitlab/ModuleWithInstanceVariables
|
|
# These instance variables are only read by a view helper to pass
|
|
# them to the frontend
|
|
# See app/views/projects/registry/repositories/index.html.haml
|
|
# app/views/groups/registry/repositories/index.html.haml
|
|
def invalid_registry_path
|
|
@invalid_path_error = true
|
|
|
|
render :index
|
|
end
|
|
|
|
def connection_error
|
|
@connection_error = true
|
|
|
|
render :index
|
|
end
|
|
# rubocop:enable Gitlab/ModuleWithInstanceVariables
|
|
|
|
def ping_container_registry
|
|
ContainerRegistry::Client.registry_info
|
|
end
|
|
end
|
|
end
|