[cfe-commits] r56382 - in /cfe/trunk/tools/scan-view: Reporter.py Resources/FileRadar.scpt ScanView.py
Daniel Dunbar
daniel at zuster.org
Fri Sep 19 18:43:17 PDT 2008
Author: ddunbar
Date: Fri Sep 19 20:43:16 2008
New Revision: 56382
URL: http://llvm.org/viewvc/llvm-project?rev=56382&view=rev
Log:
Make scan-view more robust / friendly when bug reporting fails.
Modified:
cfe/trunk/tools/scan-view/Reporter.py
cfe/trunk/tools/scan-view/Resources/FileRadar.scpt
cfe/trunk/tools/scan-view/ScanView.py
Modified: cfe/trunk/tools/scan-view/Reporter.py
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/scan-view/Reporter.py?rev=56382&r1=56381&r2=56382&view=diff
==============================================================================
--- cfe/trunk/tools/scan-view/Reporter.py (original)
+++ cfe/trunk/tools/scan-view/Reporter.py Fri Sep 19 20:43:16 2008
@@ -2,7 +2,14 @@
import subprocess, sys, os
-__all__ = ['BugReport', 'getReporters']
+__all__ = ['ReportFailure', 'BugReport', 'getReporters']
+
+#
+
+class ReportFailure(Exception):
+ """Generic exception for failures in bug reporting."""
+ def __init__(self, value):
+ self.value = value
# Collect information about a bug.
@@ -135,18 +142,29 @@
p = subprocess.Popen(args,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
except:
- print >>sys.stderr, '%s: SERVER: radar failed'%(sys.argv[0],)
- sys.print_exc()
- raise
+ raise ReportFailure("Unable to file radar (AppleScript failure).")
data, err = p.communicate()
-# print >>sys.stderr, '%s: SERVER: radar report: "%s" "%s"'%(sys.argv[0],data, err)
res = p.wait()
-# print >>sys.stderr, '%s: SERVER: radar report res: %d'%(sys.argv[0],res,)
if res:
- raise RuntimeError,'Radar submission failed.'
+ raise ReportFailure("Unable to file radar (AppleScript failure).")
+
+ try:
+ values = eval(data)
+ except:
+ raise ReportFailure("Unable to process radar results.")
+
+ # We expect (int: bugID, str: message)
+ if len(values) != 2 or not isinstance(values[0], int):
+ raise ReportFailure("Unable to process radar results.")
- return data.replace('\n','\n<br>')
+ bugID,message = values
+ bugID = int(bugID)
+
+ if not bugID:
+ raise ReportFailure(message)
+
+ return "Filed: <a href=\"rdar://%d/\">%d</a>"%(bugID,bugID)
###
Modified: cfe/trunk/tools/scan-view/Resources/FileRadar.scpt
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/scan-view/Resources/FileRadar.scpt?rev=56382&r1=56381&r2=56382&view=diff
==============================================================================
Binary files - no diff available.
Modified: cfe/trunk/tools/scan-view/ScanView.py
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/scan-view/ScanView.py?rev=56382&r1=56381&r2=56382&view=diff
==============================================================================
--- cfe/trunk/tools/scan-view/ScanView.py (original)
+++ cfe/trunk/tools/scan-view/ScanView.py Fri Sep 19 20:43:16 2008
@@ -11,7 +11,7 @@
import time
import socket
-from Reporter import BugReport
+import Reporter
# Keys replaced by server.
@@ -43,6 +43,13 @@
time.sleep(3)
if self.server.options.debug:
print >>sys.stderr, "%s: SERVER: submission complete."%(sys.argv[0],)
+ except Reporter.ReportFailure,e:
+ s = StringIO.StringIO()
+ print >>s,'Submission Failed<br><pre>'
+ print >>s,e.value
+ print >>s,'</pre>'
+ self.status = s.getvalue()
+ return
except Exception,e:
s = StringIO.StringIO()
import traceback
@@ -54,8 +61,8 @@
s = StringIO.StringIO()
print >>s, 'Submission Complete!'
- print >>s, '<hr>'
if result is not None:
+ print >>s, '<hr>'
print >>s, result
self.status = s.getvalue()
@@ -184,7 +191,7 @@
# Create the report.
path = os.path.join(self.server.root, 'report-%s.html'%report)
files = [path]
- br = BugReport(title, description, files)
+ br = Reporter.BugReport(title, description, files)
# Send back an initial response and wait for the report to
# finish.
More information about the cfe-commits
mailing list