Esempio n. 1
0
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
Esempio n. 2
0
def moreService():
    logger.info('more service requested')
    if not request.json:
        logger.error('no JSON request sent to more')
        abort(400)
    if not checkES():
        logger.error('elasticsearch not available')
        return jsonify({'error': 'elasticsearch not available'}), 500
    if not checkData(['sourceType']):
        #ES type sources is needed for hipposcore
        logger.error('no data')
        return jsonify({'error': 'no data available'}), 500
    result = more.main(request.json)
    #result is a list of dict of matches
    #if fail, the dict contains an 'error' key valued with the corresponding error
    #[
    #	{
    #	"123.57.64.148": {
    #		"error": "ConnectionError[...]"
    #		}
    #	},
    #	{"1.1.1.1": {
    #		"error" : "[..]"
    #	}
    #]
    #
    for requested in result.values():
        if 'error' in requested:
            logger.error('more failed')
            #in case of error, result is built according the following
            return jsonify(result), 500
    else:
        return jsonify(result), 200
Esempio n. 3
0
def jobsService():
    logger.info('jobs service requested')
    if not checkES():
        logger.error('elasticsearch not available')
        return jsonify({'error': 'elasticsearch not available'}), 500
    if not checkData(['jobsType']):
        logger.error('no data')
        return jsonify({'error': 'no data available'}), 500
    result = jobs.main()
    if 'error' in result:
        logger.error('jobs failed')
        return jsonify(result), 500
    else:
        return jsonify(result), 200
Esempio n. 4
0
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
Esempio n. 5
0
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
Esempio n. 6
0
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
Esempio n. 7
0
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
Esempio n. 8
0
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
Esempio n. 9
0
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
Esempio n. 10
0
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