[PATCH 10/10] parsemail: Add print messages to help debugging email parsing

Mauro Carvalho Chehab mchehab at osg.samsung.com
Sat Nov 28 23:14:46 AEDT 2015


When things are broken at parsemail, we need to be able to
debug it. So, add some messages to it, in order to allow
checking what it actually did, and to let it return 1 if
an email got skipped by parsemail.

Signed-off-by: Mauro Carvalho Chehab <mchehab at osg.samsung.com>
---
 patchwork/bin/parsemail.py | 19 +++++++++++++++----
 patchwork/bin/parsemail.sh |  2 +-
 2 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/patchwork/bin/parsemail.py b/patchwork/bin/parsemail.py
index 5d6ddf45d264..71d284b273b0 100755
--- a/patchwork/bin/parsemail.py
+++ b/patchwork/bin/parsemail.py
@@ -79,6 +79,9 @@ def find_project(mail):
             except Project.DoesNotExist:
                 pass
 
+    if project is None:
+	project = Project.objects.get(listid = 'linux-media.vger.kernel.org')
+
     return project
 
 def find_author(mail):
@@ -143,6 +146,9 @@ def find_pull_request(content):
     match = git_re.search(content)
     if match:
         return match.group(1)
+
+    print "not a git pull request"
+
     return None
 
 def try_decode(payload, charset):
@@ -392,13 +398,16 @@ def parse_mail(mail):
 
     # some basic sanity checks
     if 'From' not in mail:
-        return 0
+        print "From: is missing"
+        return 1
 
     if 'Subject' not in mail:
-        return 0
+        print "Subject: is missing"
+        return 1
 
     if 'Message-Id' not in mail:
-        return 0
+        print "Message-Id: is missing"
+        return 1
 
     hint = mail.get('X-Patchwork-Hint', '').lower()
     if hint == 'ignore':
@@ -407,7 +416,7 @@ def parse_mail(mail):
     project = find_project(mail)
     if project is None:
         print "no project found"
-        return 0
+        return 1
 
     msgid = mail.get('Message-Id').strip()
 
@@ -431,6 +440,7 @@ def parse_mail(mail):
         patch.delegate = delegate
         try:
             patch.save()
+	    print "patch saved"
         except Exception, ex:
             print str(ex)
 
@@ -444,6 +454,7 @@ def parse_mail(mail):
         comment.msgid = msgid
         try:
             comment.save()
+	    print "comment saved"
         except Exception, ex:
             print str(ex)
 
diff --git a/patchwork/bin/parsemail.sh b/patchwork/bin/parsemail.sh
index 9973392de9d4..c8220a799bba 100755
--- a/patchwork/bin/parsemail.sh
+++ b/patchwork/bin/parsemail.sh
@@ -26,4 +26,4 @@ PYTHONPATH="$PATCHWORK_BASE":"$PATCHWORK_BASE/lib/python:$PYTHONPATH" \
         DJANGO_SETTINGS_MODULE=patchwork.settings.production \
         "$PATCHWORK_BASE/patchwork/bin/parsemail.py"
 
-exit 0
+exit $@
-- 
2.5.0



More information about the Patchwork mailing list