Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions mail/functions.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,24 @@ def send_redirect_report(bad_redirects):
from_address = 'noreply@openstax.org'
to_address = ['cmsupport@openstax.org', ]

try:
email = EmailMessage(subject,
msg,
from_address,
to_address)
email.send()

except Exception as e:
logger.error("EMAIL FAILED TO SEND: subject:{}".format(subject))

def send_dev_email(email_subject, data_to_send):
msg = 'Dev Email - ' + email_subject
msg += '\n\n' + str(data_to_send)

subject = email_subject
from_address = 'noreply@openstax.org'
to_address = ['bitdevs@openstax.org', ]

try:
email = EmailMessage(subject,
msg,
Expand Down
4 changes: 4 additions & 0 deletions mail/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,10 @@ def test_send_redirect_report(self):
redirects = self.create_fake_redirects()
mail_func.send_redirect_report(redirects)

def test_send_dev_email(self):
redirects = self.create_fake_redirects()
mail_func.send_dev_email('Dev Email Test', redirects)

def create_fake_redirects(self):
redirect = '/l/junk\thttps//:cnx.org\n'
redirect += '/l/garbage\thttps://cnx.org/contents/HTmjSAcf@2.61:rrzms6rP@2/Introduction\n'
Expand Down
17 changes: 15 additions & 2 deletions redirects/management/commands/check_redirects.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ def handle(self, *args, **options):
#get list of URLs
redirects = Redirect.objects.all()
bad_redirects = ''
dev_email_info = ''

#Loop through and validate
for re in redirects:
Expand All @@ -22,9 +23,21 @@ def handle(self, *args, **options):
# if bad one is found, add short URL and redirect to list
if response.status_code != 200:
bad_redirects += re.old_path + ',' + re.redirect_link + '\n'
except:
dev_email_info = self.add_to_dev_email(re, dev_email_info, response)
except Exception as e:
bad_redirects += re.old_path + ',' + re.redirect_link + '\n'
dev_email_info = self.add_to_dev_email(re, dev_email_info, response, e)
pass

#email the list of bad URLs
mail.send_redirect_report(bad_redirects)
mail.send_redirect_report(bad_redirects)
mail.send_dev_email('Redirect Report Additional Info',dev_email_info)

def add_to_dev_email(self, redirect, dev_email_info, response, exception):
dev_email_info += redirect.old_path + ',' + redirect.redirect_link + ', code: '
if response is not None:
dev_email_info += str(response.status_code) + ', headers: ' + str(response.headers)
if exception is not None:
dev_email_info += ', Exception: ' + str(exception)
dev_email_info += '\n\n'
return dev_email_info
2 changes: 1 addition & 1 deletion requirements/base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ boto==2.49.0
boto3==1.14.51
botocore==1.17.51
CacheControl==0.12.5
certifi==2019.11.28
certifi==2020.11.8
chardet==3.0.4
cryptography==3.2
defusedxml==0.6.0
Expand Down