From: rajdeep11 Date: Wed, 30 Oct 2024 07:05:07 +0000 (+0530) Subject: changes in the pipeline_notification X-Git-Tag: 3.0.0~52 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=6066d1ea9943b198411118bf32b0bc23ad31c7c6;p=aiml-fw%2Fawmf%2Ftm.git changes in the pipeline_notification Change-Id: Ifffe07899f624abab710899b180c513157df270f Signed-off-by: rajdeep11 --- diff --git a/trainingmgr/db/trainingjob_db.py b/trainingmgr/db/trainingjob_db.py index e4f4353..9e13186 100644 --- a/trainingmgr/db/trainingjob_db.py +++ b/trainingmgr/db/trainingjob_db.py @@ -229,4 +229,30 @@ def change_field_of_latest_version(trainingjob_name, field, field_value): db.session.commit() except Exception as err: - raise DBException("Failed to execute query in change_field_of_latest_version," + str(err)) \ No newline at end of file + raise DBException("Failed to execute query in change_field_of_latest_version," + str(err)) + +def get_latest_version_trainingjob_name(trainingjob_name): + """ + This function returns latest version of given trainingjob_name. + """ + try: + trainingjob_max_version = TrainingJob.query.filter(TrainingJob.trainingjob_name == trainingjob_name).order_by(TrainingJob.version.desc()).first() + + except Exception as err: + raise DBException(DB_QUERY_EXEC_ERROR + \ + "get_latest_version_trainingjob_name" + str(err)) + + return trainingjob_max_version.version + +def update_model_download_url(trainingjob_name, version, url): + """ + This function updates model download url for given . + """ + try: + + trainingjob_max_version = TrainingJob.query.filter(TrainingJob.trainingjob_name == trainingjob_name).filter(TrainingJob.version == version).first() + trainingjob_max_version.model_url = url + except Exception as err: + raise DBException(DB_QUERY_EXEC_ERROR + \ + "update_model_download_url" + str(err)) + db.session.commit() diff --git a/trainingmgr/trainingmgr_main.py b/trainingmgr/trainingmgr_main.py index f832542..1ebe638 100644 --- a/trainingmgr/trainingmgr_main.py +++ b/trainingmgr/trainingmgr_main.py @@ -51,8 +51,7 @@ from trainingmgr.db.trainingmgr_ps_db import PSDB from trainingmgr.common.exceptions_utls import DBException from trainingmgr.db.common_db_fun import get_data_extraction_in_progress_trainingjobs, \ change_in_progress_to_failed_by_latest_version, \ - get_info_by_version, \ - get_latest_version_trainingjob_name, get_all_versions_info_by_name, \ + get_info_by_version, get_all_versions_info_by_name, \ update_model_download_url, \ get_field_of_given_version,get_all_jobs_latest_status_version, get_info_of_latest_version, \ delete_trainingjob_version, change_field_value_by_version @@ -62,7 +61,7 @@ from trainingmgr.db.featuregroup_db import add_featuregroup, edit_featuregroup, get_feature_group_by_name_db, delete_feature_group_by_name from trainingmgr.db.trainingjob_db import add_update_trainingjob, get_trainingjob_info_by_name, \ get_all_jobs_latest_status_version, change_steps_state_of_latest_version, get_info_by_version, \ - get_steps_state_db, change_field_of_latest_version + get_steps_state_db, change_field_of_latest_version, get_latest_version_trainingjob_name APP = Flask(__name__) @@ -560,18 +559,18 @@ def pipeline_notification(): run_status = request.json["run_status"] if run_status == 'SUCCEEDED': - change_steps_state_of_latest_version(trainingjob_name, PS_DB_OBJ, + change_steps_state_of_latest_version(trainingjob_name, Steps.TRAINING.name, States.FINISHED.name) - change_steps_state_of_latest_version(trainingjob_name, PS_DB_OBJ, + change_steps_state_of_latest_version(trainingjob_name, Steps.TRAINING_AND_TRAINED_MODEL.name, States.IN_PROGRESS.name) - version = get_latest_version_trainingjob_name(trainingjob_name, PS_DB_OBJ) - change_steps_state_of_latest_version(trainingjob_name, PS_DB_OBJ, + version = get_latest_version_trainingjob_name(trainingjob_name) + change_steps_state_of_latest_version(trainingjob_name, Steps.TRAINING_AND_TRAINED_MODEL.name, States.FINISHED.name) - change_steps_state_of_latest_version(trainingjob_name, PS_DB_OBJ, + change_steps_state_of_latest_version(trainingjob_name, Steps.TRAINED_MODEL.name, States.IN_PROGRESS.name) @@ -583,15 +582,15 @@ def pipeline_notification(): update_model_download_url(trainingjob_name, version, model_url, PS_DB_OBJ) - change_steps_state_of_latest_version(trainingjob_name, PS_DB_OBJ, + change_steps_state_of_latest_version(trainingjob_name, Steps.TRAINED_MODEL.name, States.FINISHED.name) # upload to the mme - trainingjob_info=get_trainingjob_info_by_name(trainingjob_name, PS_DB_OBJ) + trainingjob_info=get_trainingjob_info_by_name(trainingjob_name) - is_mme= trainingjob_info[0][20] + is_mme= trainingjob_info.is_mme if is_mme: - model_name=trainingjob_info[0][21] #model_name + model_name=trainingjob_info.model_name #model_name file=MM_SDK.get_model_zip(trainingjob_name, str(version)) url ="http://"+str(TRAININGMGR_CONFIG_OBJ.model_management_service_ip)+":"+str(TRAININGMGR_CONFIG_OBJ.model_management_service_port)+"/uploadModel/{}".format(model_name) LOGGER.debug("url for upload is: ", url) @@ -614,16 +613,16 @@ def pipeline_notification(): except Exception as err: #Training failure response LOGGER.error("Pipeline notification failed" + str(err)) - if not change_in_progress_to_failed_by_latest_version(trainingjob_name, PS_DB_OBJ) : + if not change_in_progress_to_failed_by_latest_version(trainingjob_name) : LOGGER.error(ERROR_TYPE_DB_STATUS) return response_for_training(status.HTTP_500_INTERNAL_SERVER_ERROR, str(err) + " (trainingjob " + trainingjob_name + ")", - LOGGER, False, trainingjob_name, PS_DB_OBJ, MM_SDK) + LOGGER, False, trainingjob_name, MM_SDK) #Training success response return response_for_training(status.HTTP_200_OK, "Pipeline notification success.", - LOGGER, True, trainingjob_name, PS_DB_OBJ, MM_SDK) + LOGGER, True, trainingjob_name, MM_SDK) @APP.route('/trainingjobs/latest', methods=['GET'])