From 44f029774dc3effbf615a425c8b65d360e90cc42 Mon Sep 17 00:00:00 2001 From: Aaron3S Date: Wed, 15 Nov 2023 15:20:02 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Dplaybook=E9=83=A8?= =?UTF-8?q?=E5=88=86=E4=B8=8D=E5=8F=AF=E6=89=A7=E8=A1=8C=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/ops/models/playbook.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/apps/ops/models/playbook.py b/apps/ops/models/playbook.py index 2d3c1f409..e1188cb46 100644 --- a/apps/ops/models/playbook.py +++ b/apps/ops/models/playbook.py @@ -40,11 +40,16 @@ class Playbook(JMSOrgBaseModel): result = [] for root, dirs, files in os.walk(self.work_dir): for f in files: - if str(f).endswith('.yml') or str(f).endswith('.yaml'): - lines = self.search_keywords(os.path.join(root, f)) - if len(lines) > 0: - for line in lines: - result.append({'file': f, 'line': line[0], 'keyword': line[1]}) + try: + if str(f).endswith('.yml') or str(f).endswith('.yaml'): + lines = self.search_keywords(os.path.join(root, f)) + if len(lines) > 0: + for line in lines: + result.append({'file': f, 'line': line[0], 'keyword': line[1]}) + # 遇到无法读取的文件,跳过 + except UnicodeEncodeError: + continue + return result @staticmethod @@ -53,12 +58,12 @@ class Playbook(JMSOrgBaseModel): with open(file, 'r') as f: for line_num, line in enumerate(f): for keyword in dangerous_keywords: - clear_line = line.replace(' ', '')\ - .replace('\n', '')\ - .replace('\r', '')\ + clear_line = line.replace(' ', '') \ + .replace('\n', '') \ + .replace('\r', '') \ .replace('\t', '') \ .replace('\'', '') \ - .replace('\"', '')\ + .replace('\"', '') \ .replace('\v', '') if keyword in clear_line: result.append((line_num, keyword))