Commit fa72d346 authored by Douwe Maan's avatar Douwe Maan

Merge branch '38197-fix-ImapAuthenticationCheck' into 'master'

Fix `rake gitlab:incoming_email:check`

Closes #38197

See merge request gitlab-org/gitlab-ce!14423
parents 03359bcc 7e62ad05
---
title: Fix `rake gitlab:incoming_email:check` and make it report the actual error
merge_request: 14423
author:
type: fixed
...@@ -4,22 +4,17 @@ module SystemCheck ...@@ -4,22 +4,17 @@ module SystemCheck
set_name 'IMAP server credentials are correct?' set_name 'IMAP server credentials are correct?'
def check? def check?
if mailbox_config if config
begin try_connect_imap
imap = Net::IMAP.new(config[:host], port: config[:port], ssl: config[:ssl]) else
imap.starttls if config[:start_tls] @error = "#{mail_room_config_path} does not have mailboxes setup"
imap.login(config[:email], config[:password]) false
connected = true
rescue
connected = false
end
end end
connected
end end
def show_error def show_error
try_fixing_it( try_fixing_it(
"An error occurred: #{@error.class}: #{@error.message}",
'Check that the information in config/gitlab.yml is correct' 'Check that the information in config/gitlab.yml is correct'
) )
for_more_information( for_more_information(
...@@ -30,15 +25,31 @@ module SystemCheck ...@@ -30,15 +25,31 @@ module SystemCheck
private private
def mailbox_config def try_connect_imap
return @config if @config imap = Net::IMAP.new(config[:host], port: config[:port], ssl: config[:ssl])
imap.starttls if config[:start_tls]
imap.login(config[:email], config[:password])
true
rescue => error
@error = error
false
end
def config
@config ||= load_config
end
def mail_room_config_path
@mail_room_config_path ||=
Rails.root.join('config', 'mail_room.yml').to_s
end
config_path = Rails.root.join('config', 'mail_room.yml').to_s def load_config
erb = ERB.new(File.read(config_path)) erb = ERB.new(File.read(mail_room_config_path))
erb.filename = config_path erb.filename = mail_room_config_path
config_file = YAML.load(erb.result) config_file = YAML.load(erb.result)
@config = config_file[:mailboxes]&.first config_file.dig(:mailboxes, 0)
end end
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment