예제 #1
0
파일: log.py 프로젝트: jjcorreao/tako
def user_main(args):
    """Main program for 'user' mode

    :return: Status of run, 0=OK
    :rtype: int
    """
    g_log.info("query.begin")
    if args.fmt == 'json':
        w = kvp.LogWriter(sys.stdout, fmt=log.LOG_FORMAT_JSON)
    elif args.fmt == 'kvp':
        w = kvp.LogWriter(sys.stdout, fmt=log.LOG_FORMAT_NL)
    elif args.fmt == 'table':
        w = kvp.TableWriter(sys.stdout, idlen=args.idlen, pagelen=args.pagelen)
    return_code = -1
    if args.fields:
        fields = [x.strip() for x in args.fields.split(',')]
    else:
        fields = None
    try:
        for rec in log.query(spec=args.exprs):
            if fields:
                rec.project(fields, copy=False)
            w.put(rec)
        w.close()
        return_code = 0
    except log.BuildQueryError as err:
        g_log.error("Invalid query: {}".format(err))
    except ValueError as err:
        g_log.error(str(err))
    g_log.info("query.end")
    return return_code
예제 #2
0
파일: log.py 프로젝트: jjcorreao/tako
def get_last_program_id():
    for rec in log.query(['{} != user'.format(Keyword.EVENT), '{} = {}'.format(Keyword.EVENT, "RUN"),
                              '{} ~ {}'.format(Keyword.NODETYPE, "template.*")]):
        prgm_id = rec[Keyword.PROGRAM_UID]
    assert prgm_id != None
    return prgm_id