diff --git a/omniadvisor/src/omniadvisor/interface/hijack_recommend.py b/omniadvisor/src/omniadvisor/interface/hijack_recommend.py index 269abed4b14dbf3ba68febfea8ae3daf84f8301a..7f260c0e192cef30d0e1d83f0ff32ccc89ed80a9 100644 --- a/omniadvisor/src/omniadvisor/interface/hijack_recommend.py +++ b/omniadvisor/src/omniadvisor/interface/hijack_recommend.py @@ -108,17 +108,22 @@ def hijack_recommend(argv: list): # 根据配置和负载执行Spark任务 global_logger.info("Going to execute Spark load ……") exam_record, output = spark_run(load, exec_config) - # 执行结果分析 若执行失败则调度用户默认配置重新拉起任务 - if exam_record.status != OA_CONF.ExecStatus.success and exec_config != user_config: - global_logger.warning("Spark execute failed, ready to activate security protection mechanism.") - safe_exam_record, safe_output = spark_run(load, user_config) - global_logger.info("Spark execute success in security protection mechanism, going to print Spark output.") - # 打印安全机制下任务的输出 - print(safe_output) - else: + # 执行结果分析 + if exam_record.status == OA_CONF.ExecStatus.success: # 打印结果输出 global_logger.info("Spark execute success, going to print Spark output.") print(output) + # 若执行失败 则判断是否需要拉起安全机制 + else: + if exec_config != user_config: + global_logger.warning("Spark execute failed, ready to activate security protection mechanism.") + safe_exam_record, safe_output = spark_run(load, user_config) + global_logger.info("Spark execute in security protection mechanism, going to print Spark output.") + # 打印安全机制下任务的输出 + print(safe_output) + else: + global_logger.warning("Spark execute failed in user config, going to print Spark output.") + print(output) if exec_config == load.test_config: _process_load_config(load=load) diff --git a/omniadvisor/src/omniadvisor/repository/load_repository.py b/omniadvisor/src/omniadvisor/repository/load_repository.py index d3fcd70c66170fd442f196690277f38097812110..940554a0f88448cf360cb42d45d493fdea5b2b75 100644 --- a/omniadvisor/src/omniadvisor/repository/load_repository.py +++ b/omniadvisor/src/omniadvisor/repository/load_repository.py @@ -41,14 +41,14 @@ class LoadRepository(Repository): """ # 判断是否有相同name和default_config的Load存在 model_attr = { - Load.FieldName.name: name, + Load.FieldName.exec_attr: exec_attr, Load.FieldName.default_config: default_config } database_loads = cls._query(model_attr=model_attr) # 强制要求name和default_config组合是唯一的 if len(database_loads) != 0: - raise RuntimeError(f'Create {cls._model_class.__name__} fail because combination of name {name} and ' - f'default_config {default_config} exist.') + raise RuntimeError(f'Create {cls._model_class.__name__} fail because combination of exec_attr {exec_attr} ' + f'and default_config {default_config} exist.') model_attr = { Load.FieldName.name: name,