Changeset 3292
- Timestamp:
- 02/29/08 05:16:06 (11 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
tracbuildbotintegration/trunk/tracbb/tracbb.py
r3289 r3292 4 4 from trac.util import Markup, TracError 5 5 from trac.util.text import to_unicode 6 import re 6 7 7 8 import xmlrpclib, pkg_resources … … 49 50 # IRequestHandler methods 50 51 def match_request(self, req): 51 return req.path_info == '/buildbot' 52 match = re.match(r'/buildbot(/([^\/]*))?(/(\d+))?$', req.path_info) 53 if match: 54 if match.group(2): 55 req.args['builder'] = match.group(2) 56 if match.group(4): 57 req.args['buildnum'] = match.group(4) 58 return True 59 return False 52 60 53 def get_builders(self): 61 62 63 def get_builders(self, req): 54 64 server = None 55 65 try: … … 63 73 build = { 'name' : builder, 64 74 'status' : server.getStatus(builder), 65 'url' : self.get_builder_url(builder),75 'url' : req.href.buildbot(builder), 66 76 'lastbuild' : lastbuild[1], 67 77 'lastbuildurl' : self.get_build_url(builder, lastbuild[1]) … … 71 81 return ret 72 82 83 def get_last_builds(self, builder): 84 server = None 85 builds = None 86 try: 87 server = self.get_server() 88 builds = server.getLastBuilds(builder, 5) 89 except: 90 raise TracError("Can't get builder %s on url %s" % (builder, self.get_xmlrpc_url())) 91 #last build first 92 builds.reverse() 93 ret = [] 94 for build in builds: 95 thisbuild = { 'status' : build[5], 96 'number' : build[1], 97 'url' : self.get_build_url(builder, build[1]) 98 } 99 ret.append(thisbuild) 100 101 return ret 102 103 73 104 74 105 def process_request(self, req): 75 add_stylesheet(req, 'trackbb/trackbb.css') 106 if not req.args.has_key('builder'): 107 req.hdf['title'] = 'BuildBot' 76 108 77 req.hdf['title'] = 'BuildBot' 78 req.hdf['bb.baseLink'] = self.env.href.buildbot() 109 req.hdf['bb.builders'] = self.get_builders(req) 79 110 80 req.hdf['bb.builders'] = self.get_builders() 81 82 return 'tracbb_overview.cs', None 111 return 'tracbb_overview.cs', None 112 else: 113 builder = req.args['builder'] 114 builds = self.get_last_builds(builder) 115 req.hdf['title'] = 'Builder ' + builder 116 req.hdf['bb.builder'] = builder 117 req.hdf['bb.builds'] = builds 118 return 'tracbb_builder.cs', None
