Example #1
0
def execute_queries(relay, queries):
    from importlib import import_module

    query_results = {}
    for query_id, query in six.iteritems(queries):
        try:
            relay_query = import_module('sentry.relay.queries.%s' %
                                        query.get('type', None))
        except ImportError:
            result = {'status': 'error', 'error': 'unknown query'}
        else:
            query_class = getattr(relay_query,
                                  type_to_class_name(query.get('type', None)))
            query_inst = query_class(relay)

            try:
                query_inst.preprocess(query)
            except InvalidQuery as exc:
                result = {
                    'status': 'error',
                    'error': six.binary_type(exc),
                }
            else:
                # TODO(mitsuhiko): support for pending or failing queries
                result = {
                    'status': 'ok',
                    'result': query_inst.execute(),
                }
        query_results[query_id] = result

    return query_results
Example #2
0
def execute_queries(relay, queries):
    from django.utils.importlib import import_module

    query_results = {}
    for query_id, query in six.iteritems(queries):
        try:
            relay_query = import_module('sentry.relay.queries.%s' % query.get('type', None))
        except ImportError:
            result = {
                'status': 'error',
                'error': 'unknown query'
            }
        else:
            query_class = getattr(relay_query, type_to_class_name(query.get('type', None)))
            query_inst = query_class(relay)

            try:
                query_inst.preprocess(query)
            except InvalidQuery as exc:
                result = {
                    'status': 'error',
                    'error': six.binary_type(exc),
                }
            else:
                # TODO(mitsuhiko): support for pending or failing queries
                result = {
                    'status': 'ok',
                    'result': query_inst.execute(),
                }
        query_results[query_id] = result

    return query_results
Example #3
0
def execute_queries(relay, queries):
    query_results = {}
    for query_id, query in six.iteritems(queries):
        try:
            relay_query = import_module("sentry.relay.queries.%s" % query.get("type", None))
        except ImportError:
            result = {"status": "error", "error": "unknown query"}
        else:
            query_class = getattr(relay_query, type_to_class_name(query.get("type", None)))
            query_inst = query_class(relay)

            try:
                query_inst.preprocess(query)
            except InvalidQuery as exc:
                result = {"status": "error", "error": six.text_type(exc)}
            else:
                # TODO(mitsuhiko): support for pending or failing queries
                result = {"status": "ok", "result": query_inst.execute()}
        query_results[query_id] = result

    return query_results
Example #4
0
def execute_changesets(relay, changesets):
    for changeset in changesets:
        try:
            relay_changeset = import_module('sentry.relay.changesets.%s' %
                                            changeset.get('type'))
        except ImportError:
            logger.error('Changeset failed', exc_info=True)
            return

        change_set_class = getattr(
            relay_changeset, type_to_class_name(changeset.get('type', None)))
        change_set_inst = change_set_class(relay)

        try:
            change_set_inst.preprocess(changeset)
        except ChangesetError:
            logger.error('Changeset failed', exc_info=True)

        try:
            change_set_inst.execute()
        except ChangesetError:
            logger.error('Changeset failed', exc_info=True)
Example #5
0
def execute_changesets(relay, changesets):
    from django.utils.importlib import import_module

    for changeset in changesets:
        try:
            relay_changeset = import_module(
                'sentry.relay.changesets.%s' %
                changeset.get('type'))
        except ImportError:
            logger.error('Changeset failed', exc_info=True)
            return

        change_set_class = getattr(relay_changeset, type_to_class_name(changeset.get('type', None)))
        change_set_inst = change_set_class(relay)

        try:
            change_set_inst.preprocess(changeset)
        except ChangesetError:
            logger.error('Changeset failed', exc_info=True)

        try:
            change_set_inst.execute()
        except ChangesetError:
            logger.error('Changeset failed', exc_info=True)