Exemple #1
0
def index(page, run_from, run_to):

    start_time_stamp = int(time() * 1000)
    preparation_sw = StopWatchTimer()

    condition_types = g.tdb.get_condition_types()
    query = g.tdb.session.query(Run)

    # Run range is defined?
    if run_from != -1 and run_to != -1:

        # Check what is max/min run
        run_min, run_max = run_from, run_to
        if run_max < run_min:
            run_min, run_max = run_max, run_min

        # Filter query and count results
        query = query.filter(Run.number >= run_min, Run.number <= run_max)
        count = g.tdb.session.query(func.count(Run.number)).filter(
            Run.number >= run_min, Run.number <= run_max).scalar()

        # we don't want pagination in this case, setting page size same/bigger than count
        per_page = run_max - run_min
    else:
        count = g.tdb.session.query(func.count(Run.number)).scalar()
        per_page = PER_PAGE

    # Create pagination
    pagination = Pagination(page, per_page, count)

    preparation_sw.stop()
    query_sw = StopWatchTimer()
    # Get runs from query
    runs = query.options(subqueryload(Run.conditions))\
        .order_by(Run.number.desc())\
        .slice(pagination.item_limit_from, pagination.item_limit_to)\
        .all()
    query_sw.stop()
    performance = {
        "preparation": preparation_sw.elapsed,
        "query": query_sw.elapsed,
        "selection": 0.0,
        "start_time_stamp": start_time_stamp,
    }

    return render_template("runs/index.html",
                           runs=runs,
                           DefaultConditions=DefaultConditions,
                           pagination=pagination,
                           condition_types=condition_types,
                           run_from=-1,
                           run_to=-1,
                           search_query="",
                           performance=performance)
Exemple #2
0
def print_run_selector(records, options, row):
    months = [
        "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct",
        "Nov", "Dec"
    ]
    rcdb_inelig = [
        'detcom_02', 'RunPeriod-2014-10', 'RunPeriod-2015-03',
        'RunPeriod-2015-06', 'RunPeriod-2015-12'
    ]
    print "<ul id=\"runList\">"
    dates = get_dates(options)

    query_sw = StopWatchTimer()

    if options[2] in rcdb_inelig or options[2] == "RunPeriod-2017-01":
        rcdb_runs = db.select_runs("@is_production", 30000, 39000)
    else:
        rcdb_runs = db.select_runs("@status_approved and @is_production",
                                   30000, 39000)

    rcdb_run_numbers = [run.number for run in rcdb_runs]

    query_sw.stop()

    print("QUERY TOOK {}".format(query_sw.elapsed))
    print("===========================================")

    if "mc_ver01" in options:
        newText = "MC"
        print(
            "<label><input type=\"radio\" id=\"run_number\" name=\"run_number\" value=\"%s\" onclick=\"changeRun(%s,%s);\"> %s</label>"
            % (10000, 10000, "MC_run", 10000))
        # print ("<a href=\"/cgi-bin/data_monitoring/monitoring/browseJSRoot.py?run_number=%s&ver=%s&period=%s\" target=\"_blank\"><button type=\"button\"> ROOT </button></a>" % (row[0], options[1], options[2]))
        # print ("<a href=\"https://halldweb.jlab.org/rcdb/runs/info/%s\" target=\"_blank\"><button type=\"button\"> RCDB </button></a>" % (row[0]))
        return

    # print dates
    for date in dates:
        if date[0] == None:
            continue

        # format date (must be a better way)
        fulldate = str(date[0])
        month = fulldate[5:7]
        day = fulldate[8:10]
        namedate = "%s %s" % (months[int(month) - 1], day)

        # get run range
        minRun = 9e9
        maxRun = 0
        rest_sw = StopWatchTimer()
        for row in records:

            if row[1] == None or row[1] == '0':
                continue

            if "recon" in options[1] and row[0] not in rcdb_run_numbers:
                continue

            rundate_obj = None
            try:
                rundate_obj = datetime.datetime.strptime(
                    row[1], "%Y-%m-%d %H:%M:%S")
            except ValueError:
                pass
            if rundate_obj == None:
                continue
            # print rundate_obj

            try:
                rundate = rundate_obj.strftime("%Y-%m-%d")
            except ValueError:
                pass
            # print rundate

            if rundate == fulldate:
                if row[0] < minRun:
                    minRun = row[0]
                if row[0] > maxRun:
                    maxRun = row[0]

        rest_sw.stop()
        print("RECORD TOOK {}".format(rest_sw.elapsed))
        print("===========================================")

        if minRun != 9e9 and maxRun != 0:
            print "<li>"
            print "<b>%s</b> (Run %s-%s)" % (namedate, minRun, maxRun)
            print "<ul>"

            # print runs for given date
            for row in records:
                if row[1] == None or row[1] == '0':
                    continue
                if "recon" in options[1] and row[0] not in rcdb_run_numbers:
                    continue

                rundate_obj = None
                try:
                    rundate_obj = datetime.datetime.strptime(
                        row[1], "%Y-%m-%d %H:%M:%S")
                except ValueError:
                    pass
                if rundate_obj == None:
                    continue
                # print rundate_obj

                try:
                    rundate = rundate_obj.strftime("%Y-%m-%d")
                except ValueError:
                    pass
                # print rundate

                numevents = row[2]

                if rundate == fulldate:
                    if options[2] not in rcdb_inelig:
                        if db.get_condition(row[0], "event_count"):
                            numevents = db.get_condition(
                                row[0], "event_count").value
                    print "<li>"
                    # print records
                    print(
                        "<label><input type=\"radio\" id=\"run_number\" name=\"run_number\" value=\"%s\" onclick=\"changeRun(%s,%s);changePath();showPlot()\"> %s (%s eve)</label>"
                        % (row[0], row[0], row[0], row[0], numevents))
                    print(
                        "<a href=\"/cgi-bin/data_monitoring/monitoring/browseJSRoot.py?run_number=%s&ver=%s&period=%s\" target=\"_blank\"><button type=\"button\"> ROOT </button></a>"
                        % (row[0], options[1], options[2]))
                    print(
                        "<a href=\"https://halldweb.jlab.org/rcdb/runs/info/%s\" target=\"_blank\"><button type=\"button\"> RCDB </button></a>"
                        % (row[0]))
                    print "</li>"

            print "</ul>"
            print "</li>"

    print "</ul>"

    print "<script type=\"text/javascript\">make_tree_menu('runList');</script>"
Exemple #3
0
    # then create your loggers as always
    logger_a_b = logging.getLogger("a.b")
    logger_a_b_c = logging.getLogger("a.b.c")
    logger_a_b_c_d = logging.getLogger("a.b.c.d")

    logger_a.debug("One")

    logger_a_b.warning("two")
    logger_a_b.warning("three")

    logger_a_b_c.critical("Four")

    logger_a_b.warning("Five")
    logger_a.warning("Six")
    logger_a_b_c_d.warning("absd")

    sw = StopWatchTimer()
    runs = db.select_runs("@is_production", 0, 20000)
    sw.stop()
    print(sw.elapsed, len(runs))

    sw = StopWatchTimer()
    runs = db.select_runs("@is_cosmic", 0, 20000)
    sw.stop()
    print(sw.elapsed, len(runs))

    sw = StopWatchTimer()
    runs = db.select_runs("@is_production", 0, 20000)
    sw.stop()
    print(sw.elapsed, len(runs))