in decisionai_plugin/common/plugin_service.py [0:0]
def train_callback(self, subscription, model_id, task_id, model_dir, parameters, model_state, last_error=None):
try:
meta = get_meta(self.config, subscription, model_id)
if meta is None or meta['state'] == ModelState.Deleted.name:
return STATUS_FAIL, 'Model is not found! '
if model_state == ModelState.Ready:
result, message = upload_model(self.config, subscription, model_id, model_dir)
if result != STATUS_SUCCESS:
model_state = ModelState.Failed
last_error = 'Model storage failed! ' + message
except Exception as e:
model_state = ModelState.Failed
last_error = str(e)
raise e
finally:
update_state(self.config, subscription, model_id, model_state, None, last_error)
self.tsanaclient.save_training_status(task_id, parameters, model_state.name, last_error)
self.tsanaclient.save_training_result(parameters, model_id, model_state.name, last_error)
error_message = last_error + '\n' + traceback.format_exc() if model_state != ModelState.Ready else None
log.info("Training callback by %s, model_id = %s, task_id = %s, state = %s, last_error = %s" % (subscription, model_id, task_id, model_state, error_message if error_message is not None else ''))