in src/backend/main.py [0:0]
def get_dashboarddata():
user_info = valid_user()
if user_info is not None:
API_ENDPOINT = "{}-aiplatform.googleapis.com".format(REGION)
# Create Pipelines and Metadata service clients
client_pipeline = vertex_ai2.PipelineServiceClient(client_options={"api_endpoint": API_ENDPOINT})
client_metadata = vertex_ai2.MetadataServiceClient(client_options={"api_endpoint": API_ENDPOINT})
list_pipelines_request = vertex_ai2.ListPipelineJobsRequest(parent=f'projects/{PROJECT_ID}/locations/{REGION}')
list_pipelines = list(client_pipeline.list_pipeline_jobs(list_pipelines_request))
running_pp = []
for pipe in list_pipelines:
labels = pipe.labels
status = pipe.state.name.split("_")[-1]
url_link = formatUrlLink(pipe.name, REGION, PROJECT_ID)
url_all_structures = formatUrlAllStructures(pipe.name, BUCKET_NAME, labels['experiment_id'], PROJECT_NUMBER)
if pipe.end_time:
duration = pipe.end_time - ( pipe.end_time if pipe.start_time is None else pipe.start_time)
else:
duration = datetime.now(timezone.utc) - pipe.start_time
seconds = duration.total_seconds()
hours = int(seconds // 3600)
minutes = int((seconds % 3600) // 60)
seconds = seconds % 60
ti = f'{hours}h{minutes}m'
# Extract each prediction and its associated relaxation tasks
if status != "RUNNING":
predict_relax_tasks = extract_prediction_relaxation_tasks(pipe, client_pipeline)
for task in predict_relax_tasks:
p_data ={
"run_tag": labels['run_tag'],
"experiment_id":labels['experiment_id'],
"sequence":labels['sequence_id'],
"status":status,
"duration":ti,
"url_link": url_link,
"url_all_structures": url_all_structures,
"predict_uri": task["predict_uri"],
"relax_uri": task["relax_uri"],
"ranking_confidence": task["ranking_confidence"],
"user": labels['user'],
"create_time": 0 if pipe.create_time is None else pipe.create_time,
}
running_pp.append(p_data)
else:
p_data ={
"run_tag": labels['run_tag'],
"experiment_id":labels['experiment_id'],
"sequence":labels['sequence_id'],
"status":status,
"duration":ti,
"url_link": url_link,
"url_all_structures": url_all_structures,
"predict_uri": "NA",
"relax_uri": "NA",
"ranking_confidence": "NA",
"user": labels['user']
}
running_pp.append(p_data)
return jsonify(running_pp)
else:
return Response("{'status':'Unauthorized'}", status=401, mimetype='application/json')