honor configuration when sending emails
- Move the send_email() function into DistgitBugzillaSync as a method in order to access the configuration environment easily. - Make whether or not emails are sent use the email.send_mails configuration option rather than the name of the configuration environment. - Don't hard code the SMTP host. Signed-off-by: Nils Philippsen <nils@redhat.com>
This commit is contained in:
parent
2b7712f826
commit
12b90b22dd
2 changed files with 23 additions and 24 deletions
|
@ -30,6 +30,7 @@ Reassigning to the new maintainer of this component.
|
||||||
|
|
||||||
[email]
|
[email]
|
||||||
send_mails = false
|
send_mails = false
|
||||||
|
smtp_host = "bastion"
|
||||||
from = "accounts@fedoraproject.org"
|
from = "accounts@fedoraproject.org"
|
||||||
notify_admins = [
|
notify_admins = [
|
||||||
"root@localhost.localdomain",
|
"root@localhost.localdomain",
|
||||||
|
|
|
@ -446,28 +446,6 @@ class BugzillaProxy:
|
||||||
raise
|
raise
|
||||||
|
|
||||||
|
|
||||||
def send_email(from_address, to_address, subject, message, cc_address=None):
|
|
||||||
'''Send an email if there's an error.
|
|
||||||
|
|
||||||
This will be replaced by sending messages to a log later.
|
|
||||||
'''
|
|
||||||
if env == 'staging':
|
|
||||||
# Send no email in staging...
|
|
||||||
pass
|
|
||||||
else:
|
|
||||||
msg = EmailMessage()
|
|
||||||
msg.add_header('To', ','.join(to_address))
|
|
||||||
msg.add_header('From', from_address)
|
|
||||||
msg.add_header('Subject', subject)
|
|
||||||
if cc_address is not None:
|
|
||||||
msg.add_header('Cc', ','.join(cc_address))
|
|
||||||
to_address += cc_address
|
|
||||||
msg.set_payload(message)
|
|
||||||
smtp = smtplib.SMTP('bastion')
|
|
||||||
smtp.sendmail(from_address, to_address, msg.as_string())
|
|
||||||
smtp.quit()
|
|
||||||
|
|
||||||
|
|
||||||
def _get_pdc_branches(session, repo):
|
def _get_pdc_branches(session, repo):
|
||||||
"""
|
"""
|
||||||
Gets the branches on a project. This function is used for mapping.
|
Gets the branches on a project. This function is used for mapping.
|
||||||
|
@ -520,6 +498,26 @@ class ScriptExecError(RuntimeError):
|
||||||
|
|
||||||
class DistgitBugzillaSync:
|
class DistgitBugzillaSync:
|
||||||
|
|
||||||
|
def send_email(self, from_address, to_address, subject, message, cc_address=None):
|
||||||
|
'''Send an email if there's an error.
|
||||||
|
|
||||||
|
This will be replaced by sending messages to a log later.
|
||||||
|
'''
|
||||||
|
if not self.env['email']['send_mails']:
|
||||||
|
return
|
||||||
|
|
||||||
|
msg = EmailMessage()
|
||||||
|
msg.add_header('To', ','.join(to_address))
|
||||||
|
msg.add_header('From', from_address)
|
||||||
|
msg.add_header('Subject', subject)
|
||||||
|
if cc_address is not None:
|
||||||
|
msg.add_header('Cc', ','.join(cc_address))
|
||||||
|
to_address += cc_address
|
||||||
|
msg.set_payload(message)
|
||||||
|
smtp = smtplib.SMTP(self.env['email']['smtp_host'])
|
||||||
|
smtp.sendmail(from_address, to_address, msg.as_string())
|
||||||
|
smtp.quit()
|
||||||
|
|
||||||
def notify_users(self, errors):
|
def notify_users(self, errors):
|
||||||
''' Browse the list of errors and when we can retrieve the email
|
''' Browse the list of errors and when we can retrieve the email
|
||||||
address, use it to notify the user about the issue.
|
address, use it to notify the user about the issue.
|
||||||
|
@ -562,7 +560,7 @@ class DistgitBugzillaSync:
|
||||||
notify_user = False
|
notify_user = False
|
||||||
|
|
||||||
if notify_user:
|
if notify_user:
|
||||||
send_email(
|
self.send_email(
|
||||||
self.env['email']['from'],
|
self.env['email']['from'],
|
||||||
[user_email],
|
[user_email],
|
||||||
subject='Please fix your bugzilla.redhat.com account',
|
subject='Please fix your bugzilla.redhat.com account',
|
||||||
|
@ -876,7 +874,7 @@ class DistgitBugzillaSync:
|
||||||
print('[DEBUG]', '\n'.join(errors))
|
print('[DEBUG]', '\n'.join(errors))
|
||||||
else:
|
else:
|
||||||
self.notify_users(errors)
|
self.notify_users(errors)
|
||||||
send_email(
|
self.send_email(
|
||||||
self.env['email']['from'],
|
self.env['email']['from'],
|
||||||
self.env['email']['notify_admins'],
|
self.env['email']['notify_admins'],
|
||||||
'Errors while syncing bugzilla with the PackageDB',
|
'Errors while syncing bugzilla with the PackageDB',
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue