mirror of
https://git.launchpad.net/~ubuntu-release/britney/+git/britney2-ubuntu
synced 2025-03-08 17:51:11 +00:00
Backport EmailPolicy to Python 3.2
This commit is contained in:
parent
1fe3e56cc7
commit
2405fcf8bc
@ -1,11 +1,11 @@
|
|||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import json
|
import json
|
||||||
|
import socket
|
||||||
import smtplib
|
import smtplib
|
||||||
|
|
||||||
from urllib.parse import unquote
|
from urllib.parse import unquote
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from email.mime.text import MIMEText
|
|
||||||
|
|
||||||
from britney2.policies.rest import Rest
|
from britney2.policies.rest import Rest
|
||||||
from britney2.policies.policy import BasePolicy, PolicyVerdict
|
from britney2.policies.policy import BasePolicy, PolicyVerdict
|
||||||
@ -22,7 +22,12 @@ BOTS = {
|
|||||||
USER + 'katie',
|
USER + 'katie',
|
||||||
}
|
}
|
||||||
|
|
||||||
MESSAGE_BODY = """Hi,
|
MESSAGE = """From: Ubuntu Release Team <noreply@canonical.com>
|
||||||
|
To: {recipients}
|
||||||
|
X-Proposed-Migration: notice
|
||||||
|
Subject: [proposed-migration] {source_name} {version} stuck in {series}-proposed
|
||||||
|
|
||||||
|
Hi,
|
||||||
|
|
||||||
{source_name} {version} needs attention.
|
{source_name} {version} needs attention.
|
||||||
|
|
||||||
@ -165,20 +170,18 @@ class EmailPolicy(BasePolicy, Rest):
|
|||||||
# don't update the cache file in dry run mode; we'll see all output each time
|
# don't update the cache file in dry run mode; we'll see all output each time
|
||||||
return PolicyVerdict.PASS
|
return PolicyVerdict.PASS
|
||||||
if stuck and not sent:
|
if stuck and not sent:
|
||||||
msg = MIMEText(MESSAGE_BODY.format(**locals()))
|
|
||||||
msg['X-Proposed-Migration'] = 'notice'
|
|
||||||
msg['Subject'] = '[proposed-migration] {} {} stuck in {}-proposed'.format(source_name, version, series)
|
|
||||||
msg['From'] = 'Ubuntu Release Team <noreply@canonical.com>'
|
|
||||||
emails = self.lp_get_emails(source_name, version)
|
emails = self.lp_get_emails(source_name, version)
|
||||||
if emails:
|
if emails:
|
||||||
msg['To'] = ', '.join(emails)
|
recipients = ', '.join(emails)
|
||||||
|
msg = MESSAGE.format(**locals())
|
||||||
try:
|
try:
|
||||||
with smtplib.SMTP('localhost') as smtp:
|
|
||||||
self.log("%s/%s stuck for %d days, emailing %s" %
|
self.log("%s/%s stuck for %d days, emailing %s" %
|
||||||
(source_name, version, age, ', '.join(emails)))
|
(source_name, version, age, recipients))
|
||||||
smtp.send_message(msg)
|
server = smtplib.SMTP('localhost')
|
||||||
|
server.sendmail('noreply@canonical.com', emails, msg)
|
||||||
|
server.quit()
|
||||||
sent = True
|
sent = True
|
||||||
except ConnectionRefusedError as err:
|
except socket.error as err:
|
||||||
self.log("Failed to send mail! Is SMTP server running?")
|
self.log("Failed to send mail! Is SMTP server running?")
|
||||||
self.log(err)
|
self.log(err)
|
||||||
self.emails_by_pkg[source_name][version] = sent
|
self.emails_by_pkg[source_name][version] = sent
|
||||||
|
Loading…
x
Reference in New Issue
Block a user