コード例 #1
0
ファイル: app.py プロジェクト: vitty8484/Hippocampe
def hipposcoreService():
    logger.info('hipposcore service requested')
    if not request.json:
        logger.error('no JSON request sent to hipposcore')
        abort(400)
    if not checkES():
        logger.error('elasticsearch not available')
        return jsonify({'error': 'elasticsearch not available'}), 500
    if not checkData(['sourceType']):
        #ES type source is needed to retrieve source's score
        logger.error('no data')
        return jsonify({'error': 'no data available'}), 500
    logger.info('more for hipposcore started')
    result = more.main(request.json)

    #check if there's error in more response
    for requested in result.values():
        if 'error' in requested:
            logger.error('more for hipposcore failed')
            return jsonify(result), 500
    else:
        hippodict = hipposcore.calcHipposcore(result)
        if 'error' in hippodict:
            #hippodict looks like {'error': '<error_name>'}
            logger.error('hipposcore failed')
            return jsonify(hippodict), 500
        else:
            return jsonify(hippodict), 200
コード例 #2
0
ファイル: app.py プロジェクト: vitty8484/Hippocampe
def shadowbookService():
    logger.info('shadowbook service requested')
    if not checkES():
        logger.error('elasticsearch not available')
        return jsonify({'error': 'elasticsearch not available'}), 500
    reportJob = shadowbook.initJob()

    if 'error' in reportJob:
        logger.error('shadowbook failed')
        return jsonify(reportJob), 500
    else:
        threading.Thread(target=shadowbook.manageJob).start()
        return jsonify(reportJob), 200
コード例 #3
0
ファイル: app.py プロジェクト: vitty8484/Hippocampe
def typeIntelService():
    logger.info('type service requested')
    if not checkES():
        logger.error('elasticsearch not available')
        return jsonify({'error': 'elasticsearch not available'}), 500
    if not checkData([]):
        logger.error('no data')
        return jsonify({'error': 'no data available'}), 500
    result = typeIntel.main()
    if 'error' in result:
        logger.error('type service failed')
        return jsonify(result), 500
    else:
        return jsonify(result), 200
コード例 #4
0
ファイル: app.py プロジェクト: vitty8484/Hippocampe
def hipposchedService():
    logger.info('hipposched service requested')
    if not request.json:
        logger.error('no JSON request sent to hipposched')
        abort(400)
    if not checkES():
        logger.error('elasticsearch not available')
        return jsonify({'error': 'elasticsearch not available'}), 500
    report = hipposched.main(request.json)
    if 'error' in report:
        logger.error('hipposched failed')
        return jsonify(report), 500
    else:
        return jsonify(report), 202
コード例 #5
0
ファイル: app.py プロジェクト: vitty8484/Hippocampe
def sizeByTypeService():
    logger.info('sizeByType service requested')
    if not checkES():
        logger.error('elasticsearch not available')
        return jsonify({'error': 'elasticsearch not available'}), 500
    if not checkData(['sourceType']):
        #need to retrieve all sources
        logger.error('no data')
        return jsonify({'error': 'no data available'}), 500
    result = sizeByType.main()
    if 'error' in result:
        logger.error('sizeByType failed')
        return jsonify(result), 500
    else:
        return jsonify(result), 200
コード例 #6
0
ファイル: app.py プロジェクト: vitty8484/Hippocampe
def lastQueryService():
    logger.info('lastQuery service requested')
    if not checkES():
        logger.error('elasticsearch not available')
        return jsonify({'error': 'elasticsearch not available'}), 500
    if not checkData(['sourceType']):
        #lastQuery is in source
        logger.error('no data')
        return jsonify({'error': 'no data available'}), 500
    result = lastQuery.main()
    if 'error' in result:
        logger.error('lastQuery failed')
        return jsonify(result), 500
    else:
        return jsonify(result), 200
コード例 #7
0
ファイル: app.py プロジェクト: vitty8484/Hippocampe
def schedReportService():
    logger.info('schedReport service requested')
    if not checkES():
        logger.error('elasticsearch not available')
        return jsonify({'error': 'elasticsearch not available'}), 500
    if not checkData(['sourceType']):
        #ES type source needed to determine if threshold is respected
        logger.error('no data')
        return jsonify({'error': 'no data available'}), 500
    result = schedReport.main()
    if 'error' in result:
        logger.error('schedReport failed')
        return jsonify(result), 500
    else:
        return jsonify(result), 200
コード例 #8
0
ファイル: app.py プロジェクト: vitty8484/Hippocampe
def freshnessService():
    logger.info('freshness service requested')
    if not checkES():
        logger.error('elasticsearch not available')
        return jsonify({'error': 'elasticsearch not available'}), 500
    if not checkData(['sourceType']):
        #ES type source needed to calc freshness
        logger.error('no data')
        return jsonify({'error': 'no data available'}), 500
    result = freshness.main()
    if 'error' in result:
        logger.error('freshness failed')
        return jsonify(result), 500
    else:
        return jsonify(result), 200
コード例 #9
0
ファイル: app.py プロジェクト: vitty8484/Hippocampe
def newService():
    logger.info('new service requested')
    if not checkES():
        logger.error('elasticsearch not available')
        return jsonify({'error': 'elasticsearch not available'}), 500
    if not checkData(['newType']):
        logger.error('no data')
        return jsonify({'error': 'no data available'}), 500
    result = new.main()
    #result is a list of new intelligence, never seen before
    if 'error' in result:
        logger.error('new failed')
        return jsonify(response), 500
    else:
        return jsonify(result), 200
コード例 #10
0
ファイル: app.py プロジェクト: vitty8484/Hippocampe
def distinctService():
    logger.info('distinct service requested')
    if not request.json:
        logger.error('no JSON request sent to distinct')
        abort(400)
    if not checkES():
        logger.error('elasticsearch not available')
        return jsonify({'error': 'elasticsearch not available'}), 500
    if not checkData([]):
        logger.error('no data')
        return jsonify({'error': 'no data available'}), 500
    result = distinct.main(request.json)
    if 'error' in result:
        logger.error('distinct failed')
        return jsonify(result), 500
    else:
        return jsonify(result), 200