Exemple #1
0
def wait_tag_or_edge_indexes_ready(sess, schema: str = "TAG"):
    resp = resp_ok(sess, f"SHOW {schema} INDEXES")
    jobs = []
    for val in resp.column_values("Index Name"):
        job = val.as_string()
        resp = resp_ok(sess, f"REBUILD {schema} INDEX {job}", True)
        jobs.append(job_id(resp))
    wait_all_jobs_finished(sess, jobs)
Exemple #2
0
def clone_space(graph_spaces, session, request):
    space_desc = graph_spaces["space_desc"]
    current_space = space_desc._name
    new_space = "EmptyGraph_" + space_generator()
    space_desc._name = new_space
    resp_ok(session, space_desc.drop_stmt(), True)
    ngql = "create space " + new_space + " as " + current_space
    exec_query(request, ngql, session, graph_spaces)
    resp_ok(session, space_desc.use_stmt(), True)
    graph_spaces["space_desc"] = space_desc
    graph_spaces["drop_space"] = True
Exemple #3
0
def is_job_finished(sess, job):
    rsp = resp_ok(sess, f"SHOW JOB {job}")
    assert rsp.row_size() > 0

    def is_finished(val) -> bool:
        return val.is_string() and "FINISHED" == val.as_string()

    return any(is_finished(val) for val in rsp.row_values(0))
Exemple #4
0
def preload_space(
    request,
    space,
    load_nba_data,
    load_nba_int_vid_data,
    load_student_data,
    session,
    graph_spaces,
):
    space = normalize_outline_scenario(request, space)
    if space == "nba":
        graph_spaces["space_desc"] = load_nba_data
    elif space == "nba_int_vid":
        graph_spaces["space_desc"] = load_nba_int_vid_data
    elif space == "student":
        graph_spaces["space_desc"] = load_student_data
    else:
        raise ValueError(f"Invalid space name given: {space}")
    resp_ok(session, f'USE {space};', True)
Exemple #5
0
def get_running_jobs(sess):
    rsp = resp_ok(sess, "SHOW JOBS")
    assert rsp.row_size() > 0

    def is_running_or_queue(val) -> bool:
        return val.is_string() and val.as_string() in ["RUNNING", "QUEUE"]

    def running_or_queue_row(row):
        return 1 if any(is_running_or_queue(val) for val in row) else 0

    num_running_and_queue_jobs = 0
    for i in range(rsp.row_size()):
        num_running_and_queue_jobs += running_or_queue_row(rsp.row_values(i))
    return num_running_and_queue_jobs
Exemple #6
0
def wait_index_ready(graph_spaces, session):
    space_desc = graph_spaces.get("space_desc", None)
    assert space_desc is not None
    space = space_desc.name
    resp_ok(session, f"USE {space}", True)
    wait_indexes_ready(session)
Exemple #7
0
def having_executed(query, session, request):
    ngql = combine_query(query)
    ngql = normalize_outline_scenario(request, ngql)
    for stmt in ngql.split(';'):
        stmt and resp_ok(session, stmt, True)