示例#1
0
 def __init__(
     self, max_frames=40, api_url=SYMBOLS_API, verbose=False, windows=False
 ):
     self.symbolicator = Symbolicator(max_frames, api_url, verbose)
     self.sig_generator = SignatureGenerator()
     self.verbose = verbose
     self.windows = windows
    def test_failing_rule(self):
        class BadRule(object):
            pass

        generator = SignatureGenerator(pipeline=[BadRule()])
        ret = generator.generate({})

        expected = {
            'notes': [
                'Rule BadRule failed: \'BadRule\' object has no attribute \'predicate\''
            ],
            'signature': ''
        }

        assert ret == expected
示例#3
0
def cmdline():
    """Takes crash data via stdin and generates a Socorro signature"""
    parser = argparse.ArgumentParser(description=DESCRIPTION)
    parser.add_argument(
        '-v', '--verbose', help='increase output verbosity', action='store_true'
    )
    args = parser.parse_args()

    generator = SignatureGenerator(debug=args.verbose)

    crash_data = json.loads(sys.stdin.read())

    ret = generator.generate(crash_data)

    print(json.dumps(ret, indent=2))
    def test_empty_dicts(self):
        generator = SignatureGenerator()
        ret = generator.generate({})

        # NOTE(willkg): This is what the current pipeline yields. If any of those parts change, this
        # might change, too. The point of this test is that we can pass in empty dicts and the
        # SignatureGenerator and the rules in the default pipeline don't fall over.
        expected = {
            'notes': [
                'CSignatureTool: No signature could be created because we do not know '
                'which thread crashed'
            ],
            'signature': 'EMPTY: no crashing thread identified'
        }

        assert ret == expected
示例#5
0
from argparse import ArgumentParser
from random import random

import requests
import ujson as json
from flask import Flask, Response, request
from fx_crash_sig import crash_processor
from siggen.generator import SignatureGenerator

app = Flask(__name__)

generator = SignatureGenerator()


@app.route('/')
def hello_world():
    return 'Hello World!'


@app.route('/print', methods=['POST'])
def print_request():
    print(request.get_data(as_text=True))
    return Response('{}', mimetype='application/json')


@app.route('/sendToInflux', methods=['POST'])
def send_to_influx():
    data = json.loads(request.get_data(as_text=True))
    url = data['url']
    payload = data['payload']