diff --git a/0003-fix-send-two-emails-bug.patch b/0003-fix-send-two-emails-bug.patch new file mode 100644 index 0000000000000000000000000000000000000000..117fec6cc9a395380ab9cc9786f7294c6804de68 --- /dev/null +++ b/0003-fix-send-two-emails-bug.patch @@ -0,0 +1,111 @@ +From 4848a4f5e9244fe7e7dfc7958982857cf3dfeb44 Mon Sep 17 00:00:00 2001 +From: young <954906362@qq.com> +Date: Tue, 9 May 2023 09:31:04 +0800 +Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=89=E4=B8=AAissue?= + =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +--- + aops-apollo.spec | 2 +- + apollo/cron/download_sa_manager.py | 22 ++++++++++------------ + conf/apollo.ini | 4 ++-- + 3 files changed, 13 insertions(+), 15 deletions(-) + +diff --git a/aops-apollo.spec b/aops-apollo.spec +index 2d3a771..1e15294 100644 +--- a/aops-apollo.spec ++++ b/aops-apollo.spec +@@ -20,7 +20,7 @@ Cve management service, monitor machine vulnerabilities and provide fix function + + %package -n dnf-hotpatch-plugin + Summary: dnf hotpatch plugin +-Requires: python3-hawkey python3-dnf syscare ++Requires: python3-hawkey python3-dnf syscare >= 1.0.1 + + %description -n dnf-hotpatch-plugin + dnf hotpatch plugin, it's about hotpatch query and fix +diff --git a/apollo/cron/download_sa_manager.py b/apollo/cron/download_sa_manager.py +index 6ce97bb..a46ad5a 100644 +--- a/apollo/cron/download_sa_manager.py ++++ b/apollo/cron/download_sa_manager.py +@@ -10,16 +10,17 @@ + # PURPOSE. + # See the Mulan PSL v2 for more details. + # ******************************************************************************/ ++from gevent import monkey; monkey.patch_all(thread=False) ++import gevent + import datetime + import os + import re + import shutil + import sqlalchemy +-import requests ++import urllib.request ++import urllib.error + import retrying + from retrying import retry +-from gevent import monkey; monkey.patch_all(ssl=False) +-import gevent + + from apollo.conf import configuration + from apollo.conf.constant import ADVISORY_SAVED_PATH, TIMED_TASK_CONFIG_PATH +@@ -64,7 +65,6 @@ class TimedDownloadSATask(TimedTaskBase): + ElasticsearchProxy.connect(proxy) + + download_record, download_failed_advisory = proxy.get_advisory_download_record() +- + sa_name_list = TimedDownloadSATask.get_incremental_sa_name_list( + download_record) + +@@ -134,11 +134,10 @@ class TimedDownloadSATask(TimedTaskBase): + response body or "", "" means request failed + """ + try: +- response = requests.get(url, timeout=10) +- if response.status_code != requests.codes["ok"]: +- return None +- return response +- except requests.exceptions.RequestException: ++ response = urllib.request.urlopen(url, timeout=10) ++ return response.read() ++ except urllib.error.HTTPError: ++ LOGGER.info("Exception %s") + return "" + + @staticmethod +@@ -155,7 +154,7 @@ class TimedDownloadSATask(TimedTaskBase): + response = TimedDownloadSATask.get_response(sa_url) + if response: + with open(os.path.join(ADVISORY_SAVED_PATH, sa_name), "wb")as w: +- w.write(response.content) ++ w.write(response) + else: + LOGGER.error(f"Download failed request timeout: {sa_name}") + TimedDownloadSATask.save_sa_record.append({"advisory_year": advisory_year, +@@ -178,8 +177,7 @@ class TimedDownloadSATask(TimedTaskBase): + try: + response = TimedDownloadSATask.get_response(TimedDownloadSATask.cvrf_url + "/index.txt") + if response: +- html = response.text +- sa_list = html.replace("\r", "").split("\n") ++ sa_list = response.decode("utf-8").replace("\r", "").split("\n") + security_files = [ + # 2021/cvrf-openEuler-SA-2021-1022.xml, we don't need the first five characters + sa_name[5:] for sa_name in sa_list +diff --git a/conf/apollo.ini b/conf/apollo.ini +index 412fff1..f215e63 100644 +--- a/conf/apollo.ini ++++ b/conf/apollo.ini +@@ -40,5 +40,5 @@ wsgi-file=manage.py + daemonize=/var/log/aops/uwsgi/apollo.log + http-timeout=600 + harakiri=600 +-processes=2 +-threads=4 ++processes=1 ++gevent=100 +-- +Gitee + diff --git a/aops-apollo.spec b/aops-apollo.spec index 3d05c67df314ff93fe106766a9a1e5ea2c051320..8be93c91a9630bdbcf00840e319e27a6652422df 100644 --- a/aops-apollo.spec +++ b/aops-apollo.spec @@ -1,12 +1,13 @@ Name: aops-apollo Version: v1.2.0 -Release: 2 +Release: 3 Summary: Cve management service, monitor machine vulnerabilities and provide fix functions. License: MulanPSL2 URL: https://gitee.com/openeuler/%{name} Source0: %{name}-%{version}.tar.gz Patch0001: 0001-fix-args-not-effective-bug.patch Patch0002: 0002-download-SA-collaborative-process.patch +Patch0003: 0003-fix-send-two-emails-bug.patch BuildRequires: python3-setuptools Requires: aops-vulcanus >= v1.2.0 @@ -54,6 +55,10 @@ cp -r hotpatch %{buildroot}/%{python3_sitelib}/dnf-plugins/ %{python3_sitelib}/dnf-plugins/* %changelog +* Tue May 9 2023 ptyang<1475324955@qq.com> - v1.2.0-3 +- fix args not effective bug +- download SA using a collaborative process + * Thu Apr 27 2023 ptyang<1475324955@qq.com> - v1.2.0-2 - fix args not effective bug - download SA using a collaborative process