コード例 #1
0
def accept_dud(session, dud, builder):
    fire = dud.get_firehose()
    failed = True if dud.get('X-Debile-Failed', None) == "Yes" else False

    job = session.query(Job).get(dud['X-Debile-Job'])

    fire, _ = idify(fire)
    fire = uniquify(session, fire)

    result = Result.from_job(job)
    result.failed = failed
    result.firehose = fire
    session.merge(result)  # Needed because a *lot* of the Firehose is
    # going to need unique ${WORLD}.

    job.dud_uploaded(session, result)
    session.commit()  # Neato.

    repo = result.get_repo()
    try:
        repo.add_dud(dud)
    except FilesAlreadyRegistered:
        return reject_dud(session, dud, "dud-files-already-registered")

    emit('receive', 'result', result.debilize())
コード例 #2
0
ファイル: firewoes_fill_db.py プロジェクト: Debian/firewoes
def insert_analysis(session, xml_file):
    """
    Given a file object and a session, creates a Firehose Analysis() object
    and inserts it to the db linked to session
    """
    try:
        analysis = fhm.Analysis.from_xml(xml_file)
    except XmlParseError:
        return # if file is empty for example
    except Exception as e:
        print("ERROR while parsing xml: %s" % e)
        return
    
    #idify:
    try:
        (analysis, analysishash) = idify(analysis)
    except Exception as e:
        print("ERROR while idify Analysis: %s" % e)
        import sys; sys.exit()
    
    # unicity:
    try:
        analysis = uniquify(session, analysis)
    except Exception as e:
        print("ERROR while uniquify Analysis: %s" % e)
        import sys; sys.exit()

    session.merge(analysis)
    session.commit()
コード例 #3
0
ファイル: incoming.py プロジェクト: lfaraone/debile
def accept_dud(session, dud, builder):
    fire = dud.get_firehose()
    failed = True if dud['X-Debile-Failed'] == "Yes" else False

    job = session.query(Job).get(dud['X-Debile-Job'])

    fire, _ = idify(fire)
    fire = uniquify(session, fire)

    result = Result()
    result.job = job
    result.source = job.source
    result.check = job.check
    result.firehose = fire
    # result.binary = # XXX: FIX THIS
    session.merge(result)  # Needed because a *lot* of the Firehose is 
    # going to need unique ${WORLD}.
    session.commit()  # Neato.

    # OK. It's safely in the database and repo. Let's cleanup.
    for fp in [dud.get_filename()] + dud.get_files():
        os.unlink(fp)
コード例 #4
0
ファイル: incoming_dud.py プロジェクト: pombredanne/debile
def accept_dud(config, session, dud, builder):
    fire = dud.get_firehose()
    failed = True if dud.get('X-Debile-Failed', None) == "Yes" else False

    job = session.query(Job).get(dud['X-Debile-Job'])

    fire, _ = idify(fire)
    fire = uniquify(session, fire)

    result = job.new_result(fire, failed)
    session.add(result)

    try:
        repo = FileRepo()
        repo.add_dud(result.path, dud, config['filerepo_chmod_mode'])
    except FilesAlreadyRegistered:
        return reject_dud(session, dud, "dud-files-already-registered")

    emit('receive', 'result', result.debilize())

    # OK. It's safely in the database and repo. Let's cleanup.
    for fp in [dud.get_filename()] + dud.get_files():
        os.unlink(fp)