update to v1.2.1
This commit is contained in:
parent
bd137fdda3
commit
f30ad35250
@ -1,103 +0,0 @@
|
|||||||
From 2bd159509f6d74710bf28ff50a08e9f20887c002 Mon Sep 17 00:00:00 2001
|
|
||||||
From: rabbitali <shusheng.wen@outlook.com>
|
|
||||||
Date: Tue, 25 Apr 2023 10:29:32 +0800
|
|
||||||
Subject: [PATCH] fix shell command return error and update register function
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
---
|
|
||||||
ceres/function/command.py | 10 +++++++++-
|
|
||||||
ceres/function/register.py | 10 ++++------
|
|
||||||
ceres/function/schema.py | 2 +-
|
|
||||||
ceres/function/util.py | 8 ++------
|
|
||||||
4 files changed, 16 insertions(+), 14 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/ceres/function/command.py b/ceres/function/command.py
|
|
||||||
index df1c5ae..d84177e 100644
|
|
||||||
--- a/ceres/function/command.py
|
|
||||||
+++ b/ceres/function/command.py
|
|
||||||
@@ -132,6 +132,9 @@ def collect_command_manage(args):
|
|
||||||
if not validate_data(data, STRING_ARRAY):
|
|
||||||
exit(1)
|
|
||||||
print(json.dumps(Collect.collect_file(data)))
|
|
||||||
+ else:
|
|
||||||
+ print("Please check the input parameters!")
|
|
||||||
+ exit(1)
|
|
||||||
|
|
||||||
|
|
||||||
def plugin_command_manage(args):
|
|
||||||
@@ -152,7 +155,9 @@ def plugin_command_manage(args):
|
|
||||||
print(json.dumps(change_collect_items(data)))
|
|
||||||
elif args.info:
|
|
||||||
print(json.dumps(Collect.get_plugin_info()))
|
|
||||||
-
|
|
||||||
+ else:
|
|
||||||
+ print("Please check the input parameters!")
|
|
||||||
+ exit(1)
|
|
||||||
|
|
||||||
def cve_command_manage(args):
|
|
||||||
if args.set_repo:
|
|
||||||
@@ -180,3 +185,6 @@ def cve_command_manage(args):
|
|
||||||
status_code, cve_fix_result = VulnerabilityManage().cve_fix(data.get("cves"))
|
|
||||||
res = StatusCode.make_response_body((status_code, {"result": cve_fix_result}))
|
|
||||||
print(json.dumps(res))
|
|
||||||
+ else:
|
|
||||||
+ print("Please check the input parameters!")
|
|
||||||
+ exit(1)
|
|
||||||
\ No newline at end of file
|
|
||||||
diff --git a/ceres/function/register.py b/ceres/function/register.py
|
|
||||||
index 8176df8..f8ee397 100644
|
|
||||||
--- a/ceres/function/register.py
|
|
||||||
+++ b/ceres/function/register.py
|
|
||||||
@@ -77,12 +77,10 @@ def register(register_info: dict) -> int:
|
|
||||||
LOGGER.error(e)
|
|
||||||
return HTTP_CONNECT_ERROR
|
|
||||||
|
|
||||||
- if ret.status_code != SUCCESS:
|
|
||||||
+ if ret.status_code != requests.codes["ok"]:
|
|
||||||
LOGGER.warning(ret.text)
|
|
||||||
return ret.status_code
|
|
||||||
|
|
||||||
- ret_data = json.loads(ret.text)
|
|
||||||
- if ret_data.get('code') == SUCCESS:
|
|
||||||
- return SUCCESS
|
|
||||||
- LOGGER.error(ret_data)
|
|
||||||
- return int(ret_data.get('code'))
|
|
||||||
+ if ret.json().get('label') != SUCCESS:
|
|
||||||
+ LOGGER.error(ret.text)
|
|
||||||
+ return ret.json().get('label')
|
|
||||||
diff --git a/ceres/function/schema.py b/ceres/function/schema.py
|
|
||||||
index e7e4ce7..f8541aa 100644
|
|
||||||
--- a/ceres/function/schema.py
|
|
||||||
+++ b/ceres/function/schema.py
|
|
||||||
@@ -133,6 +133,6 @@ CVE_FIX_SCHEMA = {
|
|
||||||
HOST_INFO_SCHEMA = {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
- "enum": ["os", "cpu", "memory"]
|
|
||||||
+ "enum": ["os", "cpu", "memory", "disk"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
diff --git a/ceres/function/util.py b/ceres/function/util.py
|
|
||||||
index 73a0014..42cebe2 100644
|
|
||||||
--- a/ceres/function/util.py
|
|
||||||
+++ b/ceres/function/util.py
|
|
||||||
@@ -159,12 +159,8 @@ def get_dict_from_file(file_path: str) -> dict:
|
|
||||||
try:
|
|
||||||
with open(file_path, "r") as f:
|
|
||||||
data = json.load(f)
|
|
||||||
- except FileNotFoundError:
|
|
||||||
- LOGGER.error('file not found')
|
|
||||||
- data = {}
|
|
||||||
- except json.decoder.JSONDecodeError:
|
|
||||||
- LOGGER.error('Json conversion error, the file content'
|
|
||||||
- ' structure is not json format.')
|
|
||||||
+ except (IOError, ValueError) as error:
|
|
||||||
+ LOGGER.error(error)
|
|
||||||
data = {}
|
|
||||||
if not isinstance(data, dict):
|
|
||||||
data = {}
|
|
||||||
--
|
|
||||||
Gitee
|
|
||||||
|
|
||||||
27
0001-modify-return-value-when-no-hotpatch-is-matched.patch
Normal file
27
0001-modify-return-value-when-no-hotpatch-is-matched.patch
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
From a159ed3c419415e8822a6a2867654dbea01c49e4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: rabbitali <shusheng.wen@outlook.com>
|
||||||
|
Date: Wed, 31 May 2023 15:40:03 +0800
|
||||||
|
Subject: [PATCH] modify the return result when no hot patch is matched
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
---
|
||||||
|
ceres/manages/vulnerability_manage.py | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/ceres/manages/vulnerability_manage.py b/ceres/manages/vulnerability_manage.py
|
||||||
|
index 5a475e4..4bb42db 100644
|
||||||
|
--- a/ceres/manages/vulnerability_manage.py
|
||||||
|
+++ b/ceres/manages/vulnerability_manage.py
|
||||||
|
@@ -350,7 +350,7 @@ class VulnerabilityManage:
|
||||||
|
|
||||||
|
if not hotpatch_list:
|
||||||
|
log = "No valid hot patch is matched."
|
||||||
|
- return NOT_PATCH, [dict(cve_id=cve["cve_id"], log=log, result="succeed") for cve in cves]
|
||||||
|
+ return NOT_PATCH, [dict(cve_id=cve["cve_id"], log=log, result="fail") for cve in cves]
|
||||||
|
|
||||||
|
cmd_execute_result = []
|
||||||
|
for base_pkg, hotpatch_cves in hotpatch_list.items():
|
||||||
|
--
|
||||||
|
|
||||||
@ -1,51 +0,0 @@
|
|||||||
From af168dfd4886d994060af0d3a17f417d7d08daa2 Mon Sep 17 00:00:00 2001
|
|
||||||
From: young <954906362@qq.com>
|
|
||||||
Date: Tue, 9 May 2023 11:07:47 +0800
|
|
||||||
Subject: [PATCH] fix hotpatch fail show succeed bug
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
---
|
|
||||||
ceres/manages/vulnerability_manage.py | 14 ++++++++++----
|
|
||||||
1 file changed, 10 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/ceres/manages/vulnerability_manage.py b/ceres/manages/vulnerability_manage.py
|
|
||||||
index 12c3bc1..a353dab 100644
|
|
||||||
--- a/ceres/manages/vulnerability_manage.py
|
|
||||||
+++ b/ceres/manages/vulnerability_manage.py
|
|
||||||
@@ -151,8 +151,10 @@ class VulnerabilityManage:
|
|
||||||
scan_result = get_shell_data(
|
|
||||||
["dnf", "updateinfo", "list", "cves", "--repo", repo_id])
|
|
||||||
is_dnf_command = False
|
|
||||||
-
|
|
||||||
- for scan_info in scan_result.strip().split("\n")[2:]:
|
|
||||||
+ # scan_result e.g.
|
|
||||||
+ # Last metadata expiration check: 4:31:51 ago on Tue 09 May 2023 05:50:28 AM CST.
|
|
||||||
+ # CVE-2021-32675 Low/sec.- -
|
|
||||||
+ for scan_info in scan_result.strip().split("\n")[1:]:
|
|
||||||
cve = re.findall(r"CVE-[\d]{4}-[\d]+", scan_info)[0]
|
|
||||||
result_list.append({
|
|
||||||
"cve_id": cve,
|
|
||||||
@@ -221,7 +223,8 @@ class VulnerabilityManage:
|
|
||||||
command_execute_result: output from command execution
|
|
||||||
|
|
||||||
"""
|
|
||||||
- if cve.get("hotpatch"):
|
|
||||||
+ hotpatch = cve.get("hotpatch")
|
|
||||||
+ if hotpatch:
|
|
||||||
commond_args = ["dnf", "hotupgrade",
|
|
||||||
f"--cve={cve.get('cve_id')}", "-y"]
|
|
||||||
else:
|
|
||||||
@@ -233,4 +236,7 @@ class VulnerabilityManage:
|
|
||||||
LOGGER.error(f"Failed to fix cve {cve.get('cve_id')} by dnf")
|
|
||||||
res = 'Host has no command dnf'
|
|
||||||
|
|
||||||
- return "Apply hot patch succeed" in res or "Complete" in res, res
|
|
||||||
+ if hotpatch:
|
|
||||||
+ return "Apply hot patch succeed" in res, res
|
|
||||||
+ else:
|
|
||||||
+ return "Complete" in res, res
|
|
||||||
--
|
|
||||||
Gitee
|
|
||||||
|
|
||||||
@ -1,32 +0,0 @@
|
|||||||
From e627084922fdead376e16cfc05b555f2d2b114ea Mon Sep 17 00:00:00 2001
|
|
||||||
From: rabbitali <shusheng.wen@outlook.com>
|
|
||||||
Date: Mon, 8 May 2023 11:24:25 +0800
|
|
||||||
Subject: [PATCH] optimize register func
|
|
||||||
|
|
||||||
---
|
|
||||||
ceres/function/command.py | 8 +++-----
|
|
||||||
1 file changed, 3 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/ceres/function/command.py b/ceres/function/command.py
|
|
||||||
index d84177e..e9bb25e 100644
|
|
||||||
--- a/ceres/function/command.py
|
|
||||||
+++ b/ceres/function/command.py
|
|
||||||
@@ -47,14 +47,12 @@ def register_on_manager(args: argparse.Namespace) -> NoReturn:
|
|
||||||
Returns:
|
|
||||||
NoReturn
|
|
||||||
"""
|
|
||||||
- if args.data:
|
|
||||||
+ if args.data is not None:
|
|
||||||
register_info = register_info_to_dict(args.data)
|
|
||||||
else:
|
|
||||||
register_info = get_dict_from_file(args.path)
|
|
||||||
- if register_info.get('ceres_host') is not None:
|
|
||||||
- update_ini_data_value(CERES_CONFIG_PATH,
|
|
||||||
- 'ceres', 'port', register_info.get('ceres_host'))
|
|
||||||
- if register(register_info) == SUCCESS:
|
|
||||||
+
|
|
||||||
+ if register_info and register(register_info) == SUCCESS:
|
|
||||||
print('Register Success')
|
|
||||||
else:
|
|
||||||
print('Register Fail')
|
|
||||||
--
|
|
||||||
Binary file not shown.
BIN
aops-ceres-v1.2.1.tar.gz
Normal file
BIN
aops-ceres-v1.2.1.tar.gz
Normal file
Binary file not shown.
@ -1,13 +1,11 @@
|
|||||||
Name: aops-ceres
|
Name: aops-ceres
|
||||||
Version: v1.2.0
|
Version: v1.2.1
|
||||||
Release: 4
|
Release: 2
|
||||||
Summary: An agent which needs to be adopted in client, it managers some plugins, such as gala-gopher(kpi collection), fluentd(log collection) and so on.
|
Summary: An agent which needs to be adopted in client, it managers some plugins, such as gala-gopher(kpi collection), fluentd(log collection) and so on.
|
||||||
License: MulanPSL2
|
License: MulanPSL2
|
||||||
URL: https://gitee.com/openeuler/%{name}
|
URL: https://gitee.com/openeuler/%{name}
|
||||||
Source0: %{name}-%{version}.tar.gz
|
Source0: %{name}-%{version}.tar.gz
|
||||||
Patch0001: 0001-fix-shell-command-return-error-and-update-register-function.patch
|
Patch0001: 0001-modify-return-value-when-no-hotpatch-is-matched.patch
|
||||||
Patch0002: 0002-fix-hotpatch-fail-show-succeed-bug.patch
|
|
||||||
Patch0003: 0003-optimize-register-func.patch
|
|
||||||
|
|
||||||
|
|
||||||
BuildRequires: python3-setuptools
|
BuildRequires: python3-setuptools
|
||||||
@ -43,6 +41,12 @@ An agent which needs to be adopted in client, it managers some plugins, such as
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Jun 01 2023 wenxin<shusheng.wen@outlook.com> - v1.2.1-2
|
||||||
|
- modify the return result when no hot patch is matched
|
||||||
|
|
||||||
|
* Tue May 23 2023 wenixn<shusheng.wen@outlook.com> - v1.2.1-1
|
||||||
|
- the client supports hot patch cve rollback
|
||||||
|
|
||||||
* Thu May 11 2023 wenixn<shusheng.wen@outlook.com> - v1.2.0-4
|
* Thu May 11 2023 wenixn<shusheng.wen@outlook.com> - v1.2.0-4
|
||||||
- fix hotpatch fail show succeed bug
|
- fix hotpatch fail show succeed bug
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user