Example #1
0
def get_log(request, content_type, content_id):    
    if not content_type in reports.all:
        raise ValueError("Invalid content type '%s'." % content_type)
    report = reports.all[content_type]
    obj = report.get(content_id)
    header_data = \
        [report.data[untitle(s)](obj, since='all') for s in report.headers]
    local_path = os.path.join(settings.NORC_LOG_DIR, obj.log_path)
    if os.path.isfile(local_path):
        f = open(local_path, 'r')
        log = ''.join(f.readlines())
        f.close()
    elif settings.BACKUP_SYSTEM == "AmazonS3":
        try:
            log = get_s3_key("norc_logs/" + obj.log_path)
        except:
            log = "Error retrieving log from S3."
    else:
        log = "Could not retrieve log file from local machine."
    return render_to_response('norc/log.html', {
        'key': content_type,
        'log': log,
        'headers': report.headers,
        'data': header_data,
    })
Example #2
0
File: reports.py Project: tml/norc
 def __new__(cls, name, bases, dct):
     function = type(lambda: None)
     attr_getter = lambda a: lambda obj, **kws: getattr(obj, a)
     for k, v in dct.iteritems():
         if type(v) == function:
             dct[k] = staticmethod(v)
     for h in dct['headers']:
         k = untitle(h)
         if not k in dct['data']:
             dct['data'][k] = attr_getter(k)
     return type.__new__(cls, name, bases, dct)
Example #3
0
 def __new__(cls, name, bases, dct):
     function = type(lambda: None)
     attr_getter = lambda a: lambda obj, **kws: getattr(obj, a)
     for k, v in dct.iteritems():
         if type(v) == function:
             dct[k] = staticmethod(v)
     for h in dct['headers']:
         k = untitle(h)
         if not k in dct['data']:
             dct['data'][k] = attr_getter(k)
     return type.__new__(cls, name, bases, dct)
Example #4
0
 def print_report(report):
     data_objects = report.get_all()
     data_objects = report.since_filter(data_objects, since)
     data_objects = report.order_by(data_objects, None)
     data_list = reports.generate(data_objects, report, dict(since=since))
     if options.number > 0:
         data_list = data_list[:options.number]
     if len(data_list) > 0:
         table = [report.headers] + [[str(o[untitle(h)])
             for h in report.headers] for o in data_list]
         pprint_table(sys.stdout, table)
     else:
         print 'None found.'
Example #5
0
 def print_report(report):
     data_objects = report.get_all()
     data_objects = report.since_filter(data_objects, since)
     data_objects = report.order_by(data_objects, None)
     data_list = reports.generate(data_objects, report, dict(since=since))
     if options.number > 0:
         data_list = data_list[:options.number]
     if len(data_list) > 0:
         table = [report.headers] + [[str(o[untitle(h)])
             for h in report.headers] for o in data_list]
         pprint_table(sys.stdout, table)
     else:
         print 'None found.'