(self)
| 36 | self._response_file = os.path.realpath(response_file) |
| 37 | |
| 38 | def run(self): |
| 39 | # 记录开始时间 |
| 40 | time_format = "%Y-%m-%d %H:%M:%S" |
| 41 | task_start_time = time.strftime(time_format,time.localtime(time.time())) |
| 42 | |
| 43 | try: |
| 44 | if settings.DEBUG: |
| 45 | level = logging.DEBUG |
| 46 | else: |
| 47 | level = logging.INFO |
| 48 | format_pattern = '%(asctime)s-%(levelname)s: %(message)s' |
| 49 | logging.basicConfig(level=level, format=format_pattern) |
| 50 | |
| 51 | # set locale for all categories to the user’s default setting (in the LANG env variable) |
| 52 | try: |
| 53 | locale.setlocale(locale.LC_ALL, '') |
| 54 | except Exception as err: |
| 55 | logger.error(err) |
| 56 | os.environ["LC_ALL"] = "en_US.UTF-8" |
| 57 | os.environ["LANG"] = "en_US.UTF-8" |
| 58 | |
| 59 | # git默认配置 |
| 60 | GitConfig.set_default_config() |
| 61 | |
| 62 | # 执行任务 |
| 63 | response = TaskRunner(self._request_file, self._response_file).run_task() |
| 64 | except Exception as err: |
| 65 | if isinstance(err, ScmCommandError): |
| 66 | task_code = E_NODE_TASK_SCM_FAILED |
| 67 | else: |
| 68 | task_code = getattr(err, 'code', E_NODE_TASK) |
| 69 | task_msg = u"%s: %s" % (type(err).__name__, err) |
| 70 | task_data = traceback.format_exc() |
| 71 | err_data = getattr(err, 'data', '') |
| 72 | if err_data: |
| 73 | task_data += err_data |
| 74 | response = TaskResponse(status=task_code, result=task_data, message=task_msg) |
| 75 | finally: |
| 76 | # 删除临时ssh文件 |
| 77 | SshFlieClient.remove_temp_ssh_file() |
| 78 | |
| 79 | if response.status != OK: |
| 80 | logger.warning('task status code is %d', response.status) |
| 81 | if response.message: |
| 82 | logger.warning('task messsage: %s', response.message) |
| 83 | if response.result: |
| 84 | with open(request_file, "r") as rf: |
| 85 | task_request = json.load(rf) |
| 86 | task_params = task_request.get("task_params") |
| 87 | if not ToolDisplay.is_sensitive_tool(task_params): |
| 88 | logger.warning('task result: \n%s', response.result) |
| 89 | |
| 90 | # 记录结束时间 |
| 91 | task_end_time = time.strftime(time_format,time.localtime(time.time())) |
| 92 | # 增加开始结束时间字段,供server记录和展示 |
| 93 | response["start_time"] = task_start_time |
| 94 | response["end_time"] = task_end_time |
| 95 | response["time_format"] = time_format |
no test coverage detected