Пример #1
0
    import fireworks.flask_site.app
    fireworks.flask_site.app.lp = LaunchPad.from_dict(
        json.loads(os.environ["FWDB_CONFIG"]))
    return app(*args, **kwargs)


def parse_querystr(querystr, coll):
    # try to parse using `json.loads`.
    # validate as valid mongo filter dict
    try:
        d = json.loads(querystr)
        assert isinstance(d, dict)
    except:
        flash("`{}` is not a valid JSON object / Python dict.".format(querystr))
        return {}
    try:
        h = coll.find_one(d)
    except:
        flash("`{}` is not a valid MongoDB query doc.".format(querystr))
        return {}
    if WEBSERVER_PERFWARNINGS and not fwapp_util.uses_index(d, coll):
        flash("`{}` does not use a mongo index. "
              "If you expect to use this query often, add an index "
              "to the database collection "
              "to make it run faster.".format(querystr))
    return d


if __name__ == "__main__":
    app.run(debug=True, port=8080)
Пример #2
0
    fw_report_data = fwr.get_stats(coll="fireworks",
                                   interval=interval,
                                   num_intervals=num_intervals,
                                   additional_query=app.BASE_Q)
    fw_report_text = fwr.get_stats_str(fw_report_data)

    wf_report_data = fwr.get_stats(coll="workflows",
                                   interval=interval,
                                   num_intervals=num_intervals,
                                   additional_query=app.BASE_Q_WF)
    wf_report_text = fwr.get_stats_str(wf_report_data)

    return render_template('report.html', **locals())


def bootstrap_app(*args, **kwargs):
    """Pass instead of `app` to a forking process.

    This is so a server process will re-initialize a MongoDB client
    connection after forking. This is useful to avoid deadlock when
    using pymongo with multiprocessing.
    """
    import fireworks.flask_site.app
    fireworks.flask_site.app.lp = LaunchPad.from_dict(
        json.loads(os.environ["FWDB_CONFIG"]))
    return app(*args, **kwargs)


if __name__ == "__main__":
    app.run(debug=True, port=8080)