def app(environ, start_response): exc_type, exc_value, tb = exc_info start_response('500 Internal Server Error', []) return simple_template(template_base, { 'title': '500 Internal Server Error', 'list': "\n".join(get_frames(tb)), 'byline': "%s: %s" % (exc_type.__name__, exc_value) })
def app(environ, start_response): urls = [] if manager.address[1] != '80': port = ":%s" % manager.address[1] else: port = "" for resource in manager.resources: if isinstance(resource.site, basestring): site = resource.site else: site = resource.site[0] if resource.site: site = "http://" + site + port else: site = "" urls.append( simple_template(url_template, {'url': resource.url, 'site': site}) ) for service in manager.services: if service.status not in ("active", "struggling"): continue if service.disabled: continue url = service['url'] if url is None: continue if service['site'] not in ('*', None): if isinstance(service['site'], basestring): site = service['site'] else: site = service['site'][0] site = "http://" + site + port else: site = "" urls.append( simple_template(url_template, {'url': url, 'site': site}) ) start_response('404 Not Found', []) return simple_template(template_base, { 'title': '404 Not Found', 'list': "\n".join(urls), 'byline': 'Available Resources' })
def get_frames(tb): frames = [] while tb is not None: if tb.tb_frame.f_locals.get('__traceback_hide__'): tb = tb.tb_next continue filename = tb.tb_frame.f_code.co_filename function = tb.tb_frame.f_code.co_name lineno = tb.tb_lineno - 1 module_name = tb.tb_frame.f_globals.get('__name__') short = os.path.join( os.path.basename(os.path.dirname(filename)), os.path.basename(filename) ) pre, src, post = read_file(filename, lineno, 11) frames.append(simple_template(traceback_template, { 'filename': filename, 'short': short, 'lineno': str(lineno), 'function': function, 'src': src.strip() })) tb = tb.tb_next return frames
def render(title, msg=""): return simple_template(template, {"title": title, "msg": msg})