Beispiel #1
0
def oembed(format):
    try:
        url = request.args['url']
        title = request.args['title']
    except Exception as e:
        return jsonify(status='error', message=str(e)), 400

    try:
        o = urlparse(url)
        query = qb.from_params(request.args)
    except Exception as e:
        return jsonify(status='error', message=str(e)), 500

    if o.path.endswith('/alerts/count'):
        try:
            qvars = dict()
            qvars['status'] = 'open'
            query = Query(where='"status"=%(status)s',
                          vars=qvars,
                          sort='',
                          group='')
            severity_count = db.get_counts_by_severity(query)
        except Exception as e:
            return jsonify(status='error', message=str(e)), 500

        max = 'none'
        if severity_count.get('informational', 0) > 0:
            max = 'informational'
        if severity_count.get('warning', 0) > 0:
            max = 'warning'
        if severity_count.get('minor', 0) > 0:
            max = 'minor'
        if severity_count.get('major', 0) > 0:
            max = 'major'
        if severity_count.get('critical', 0) > 0:
            max = 'critical'

        html = render_template('oembed/counts.html',
                               title=title,
                               max=max,
                               counts=severity_count)
        headers = {"Access-Control-Allow-Origin": "*"}
        return jsonify(version='1.0',
                       type='rich',
                       title=title,
                       provider_name='Alerta',
                       provider_url=request.url_root,
                       html=html), 200, headers

    elif o.path.endswith('/alerts/top10/count'):
        # TODO: support top10 oembed widget
        pass
    else:
        return jsonify(status='error',
                       message='unsupported oEmbed URL scheme'), 400
Beispiel #2
0
def oembed(format):

    if format != 'json':
        return jsonify(status="error", message="unsupported format: %s" % format), 400

    if 'url' not in request.args or 'maxwidth' not in request.args \
            or 'maxheight' not in request.args:
        return jsonify(status="error", message="missing default parameters: url, maxwidth, maxheight"), 400

    try:
        url = request.args['url']
        width = int(request.args['maxwidth'])
        height = int(request.args['maxheight'])
        title = request.args.get('title', 'Alerts')
    except Exception as e:
        return jsonify(status="error", message=str(e)), 400

    try:
        o = urlparse(url)
        query = qb.from_params(request.args)
    except Exception as e:
        return jsonify(status="error", message=str(e)), 500

    if o.path.endswith('/alerts/count'):
        try:
            severity_count = db.get_counts_by_severity(query)
        except Exception as e:
            return jsonify(status="error", message=str(e)), 500

        max = 'normal'
        if severity_count.get('warning', 0) > 0:
            max = 'warning'
        if severity_count.get('minor', 0) > 0:
            max = 'minor'
        if severity_count.get('major', 0) > 0:
            max = 'major'
        if severity_count.get('critical', 0) > 0:
            max = 'critical'

        html = render_template(
            'oembed/counts.html',
            title=title,
            width=width,
            height=height,
            max=max,
            counts=severity_count
        )
        return jsonify(version="1.0", type="rich", width=width, height=height, title=title, provider_name="Alerta", provider_url=request.url_root, html=html)

    elif o.path.endswith('/alerts/top10/count'):
        # TODO: support top10 oembed widget
        pass
    else:
        return jsonify(status="error", message="unsupported oEmbed URL scheme"), 400
Beispiel #3
0
def oembed(format):

    if format != 'json':
        return jsonify(status="error", message="unsupported format: %s" % format), 400

    if 'url' not in request.args or 'maxwidth' not in request.args \
            or 'maxheight' not in request.args:
        return jsonify(status="error", message="missing default parameters: url, maxwidth, maxheight"), 400

    try:
        url = request.args['url']
        width = int(request.args['maxwidth'])
        height = int(request.args['maxheight'])
        title = request.args.get('title', 'Alerts')
    except Exception as e:
        return jsonify(status="error", message=str(e)), 400

    try:
        o = urlparse(url)
        query = qb.from_params(request.args)
    except Exception as e:
        return jsonify(status="error", message=str(e)), 500

    if o.path.endswith('/alerts/count'):
        try:
            severity_count = db.get_counts_by_severity(query)
        except Exception as e:
            return jsonify(status="error", message=str(e)), 500

        max = 'normal'
        if severity_count.get('warning', 0) > 0:
            max = 'warning'
        if severity_count.get('minor', 0) > 0:
            max = 'minor'
        if severity_count.get('major', 0) > 0:
            max = 'major'
        if severity_count.get('critical', 0) > 0:
            max = 'critical'

        html = render_template(
            'oembed/counts.html',
            title=title,
            width=width,
            height=height,
            max=max,
            counts=severity_count
        )
        return jsonify(version="1.0", type="rich", width=width, height=height, title=title, provider_name="Alerta", provider_url=request.url_root, html=html)

    elif o.path.endswith('/alerts/top10/count'):
        # TODO: support top10 oembed widget
        pass
    else:
        return jsonify(status="error", message="unsupported oEmbed URL scheme"), 400
Beispiel #4
0
def oembed(format):
    try:
        url = request.args['url']
        title = request.args['title']
    except Exception as e:
        return jsonify(status='error', message=str(e)), 400

    try:
        o = urlparse(url)
        query = qb.from_params(request.args)
    except Exception as e:
        return jsonify(status='error', message=str(e)), 500

    if o.path.endswith('/alerts/count'):
        try:
            qvars = dict()
            qvars['status'] = 'open'
            query = Query(where='"status"=%(status)s', vars=qvars, sort='', group='')
            severity_count = db.get_counts_by_severity(query)
        except Exception as e:
            return jsonify(status='error', message=str(e)), 500

        max = 'none'
        if severity_count.get('informational', 0) > 0:
            max = 'informational'
        if severity_count.get('warning', 0) > 0:
            max = 'warning'
        if severity_count.get('minor', 0) > 0:
            max = 'minor'
        if severity_count.get('major', 0) > 0:
            max = 'major'
        if severity_count.get('critical', 0) > 0:
            max = 'critical'

        html = render_template(
            'oembed/counts.html',
            title=title,
            max=max,
            counts=severity_count
        )
        headers =	{
          "Access-Control-Allow-Origin": "*"
        }
        return jsonify(version='1.0', type='rich', title=title, provider_name='Alerta', provider_url=request.url_root, html=html), 200, headers

    elif o.path.endswith('/alerts/top10/count'):
        # TODO: support top10 oembed widget
        pass
    else:
        return jsonify(status='error', message='unsupported oEmbed URL scheme'), 400
Beispiel #5
0
 def get_counts_by_severity(query: Query = None) -> Dict[str, Any]:
     return db.get_counts_by_severity(query)
Beispiel #6
0
 def get_counts_by_severity(query=None):
     return db.get_counts_by_severity(query)
Beispiel #7
0
 def get_counts_by_severity(query=None):
     return db.get_counts_by_severity(query)
Beispiel #8
0
 def get_counts_by_severity(query: Query=None) -> Dict[str, Any]:
     return db.get_counts_by_severity(query)