Example #1
0
 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)
     })
Example #2
0
 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'
     })
Example #3
0
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
Example #4
0
def render(title, msg=""):
    return simple_template(template, {"title": title, "msg": msg})