From: Gustavo Niemeyer Date: Wed, 13 Apr 2011 00:34:35 +0000 (+1000) Subject: godashboard: Show packages at launchpad.net X-Git-Tag: weekly.2011-04-13~27 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=328aac3a499a71360e8b966ba422273147b603fa;p=gostls13.git godashboard: Show packages at launchpad.net The changes were not tested for real in an App Engine environment, so extra care should be taken. That said, some static testing was done with pyflakes, and a few existent problems were fixed on the way. R=adg CC=golang-dev https://golang.org/cl/4378053 --- diff --git a/misc/dashboard/godashboard/gobuild.py b/misc/dashboard/godashboard/gobuild.py index 08d70ec645..1eacdb38ee 100644 --- a/misc/dashboard/godashboard/gobuild.py +++ b/misc/dashboard/godashboard/gobuild.py @@ -7,7 +7,6 @@ from google.appengine.api import mail from google.appengine.api import memcache -from google.appengine.runtime import DeadlineExceededError from google.appengine.ext import db from google.appengine.ext import webapp from google.appengine.ext.webapp import template @@ -219,7 +218,7 @@ class SetHighwater(webapp.RequestHandler): q = Commit.all() q.order('-__key__') recent = q.fetch(N+1) - for c in head: + for c in recent: if c.node == newhw: found = True break @@ -384,7 +383,6 @@ class Benchmarks(webapp.RequestHandler): self.response.headers['Content-Type'] = 'text/plain; charset=utf-8' self.response.out.write('{"benchmarks": [') - first = True sep = "\n\t" for b in bs: self.response.out.write('%s"%s"' % (sep, b.name)) diff --git a/misc/dashboard/godashboard/package.py b/misc/dashboard/godashboard/package.py index 7570d2218a..a1bca19087 100644 --- a/misc/dashboard/godashboard/package.py +++ b/misc/dashboard/godashboard/package.py @@ -6,7 +6,6 @@ # It must be run by App Engine. from google.appengine.api import memcache -from google.appengine.runtime import DeadlineExceededError from google.appengine.ext import db from google.appengine.ext import webapp from google.appengine.ext.webapp import template @@ -14,15 +13,10 @@ from google.appengine.ext.webapp.util import run_wsgi_app from google.appengine.api import users from google.appengine.api import mail from google.appengine.api import urlfetch -import binascii import datetime -import hashlib -import hmac import logging import os import re -import struct -import time import urllib2 import sets @@ -52,6 +46,8 @@ class Project(db.Model): re_bitbucket = re.compile(r'^bitbucket\.org/[a-z0-9A-Z_.\-]+/[a-z0-9A-Z_.\-]+$') re_googlecode = re.compile(r'^[a-z0-9\-]+\.googlecode\.com/(svn|hg)$') re_github = re.compile(r'^github\.com/[a-z0-9A-Z_.\-]+/[a-z0-9A-Z_.\-]+$') +re_launchpad = re.compile(r'^launchpad\.net/([a-z0-9A-Z_.\-]+(/[a-z0-9A-Z_.\-]+)?|~[a-z0-9A-Z_.\-]+/(\+junk|[a-z0-9A-Z_.\-]+)/[a-z0-9A-Z_.\-]+)(/[a-z0-9A-Z_.\-/]+)?$') + def vc_to_web(path): if re_bitbucket.match(path): @@ -65,6 +61,8 @@ def vc_to_web(path): elif re_googlecode.match(path): check_url = 'http://'+path web = 'http://code.google.com/p/' + path[:path.index('.')] + elif re_launchpad.match(path): + check_url = web = 'https://'+path else: return False, False return web, check_url @@ -72,7 +70,8 @@ def vc_to_web(path): re_bitbucket_web = re.compile(r'bitbucket\.org/([a-z0-9A-Z_.\-]+)/([a-z0-9A-Z_.\-]+)') re_googlecode_web = re.compile(r'code.google.com/p/([a-z0-9\-]+)') re_github_web = re.compile(r'github\.com/([a-z0-9A-Z_.\-]+)/([a-z0-9A-Z_.\-]+)') -re_striphttp = re.compile(r'http://(www\.)?') +re_launchpad_web = re.compile(r'launchpad\.net/([a-z0-9A-Z_.\-]+(/[a-z0-9A-Z_.\-]+)?|~[a-z0-9A-Z_.\-]+/(\+junk|[a-z0-9A-Z_.\-]+)/[a-z0-9A-Z_.\-]+)(/[a-z0-9A-Z_.\-/]+)?') +re_striphttp = re.compile(r'https?://(www\.)?') def web_to_vc(url): url = re_striphttp.sub('', url) @@ -93,6 +92,9 @@ def web_to_vc(url): vcs = 'hg' except: pass return path + vcs + m = re_launchpad_web.match(url) + if m: + return m.group(0) return False MaxPathLength = 100 @@ -136,7 +138,7 @@ class PackagePage(webapp.RequestHandler): sep = ',' s += '\n]}\n' json = s - memcache.set('view-package-json', json, time=CacheTimeoout) + memcache.set('view-package-json', json, time=CacheTimeout) self.response.out.write(json) def can_get_url(self, url): @@ -150,7 +152,8 @@ class PackagePage(webapp.RequestHandler): def is_valid_package_path(self, path): return (re_bitbucket.match(path) or re_googlecode.match(path) or - re_github.match(path)) + re_github.match(path) or + re_launchpad.match(path)) def record_pkg(self, path): # sanity check string