aops-apollo/0008-update-validation-rules-for-paging-parameters.patch
wenxin 5e7f864e98 fix issue:paging args validation rules and hp status filter exception
(cherry picked from commit cd606acdb7b393b1e91a821476a1bc1847d7cdd1)
2023-06-09 09:32:36 +08:00

176 lines
6.6 KiB
Diff

From 4ada4a45e7c73e34e73ce4e8a48d434e459063f6 Mon Sep 17 00:00:00 2001
From: rabbitali <shusheng.wen@outlook.com>
Date: Tue, 6 Jun 2023 16:22:54 +0800
Subject: [PATCH] update validation rules for paging parameters
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
apollo/function/schema/cve.py | 10 +++-------
apollo/function/schema/host.py | 10 +++-------
apollo/function/schema/task.py | 13 ++++---------
3 files changed, 10 insertions(+), 23 deletions(-)
diff --git a/apollo/function/schema/cve.py b/apollo/function/schema/cve.py
index 6584941..d18e454 100644
--- a/apollo/function/schema/cve.py
+++ b/apollo/function/schema/cve.py
@@ -18,7 +18,7 @@ Description: For cve related restful interfaces schema
from marshmallow import Schema
from marshmallow import fields
from marshmallow import validate
-
+from vulcanus.restful.serialize.validate import PaginationSchema
class CveListFilterSchema(Schema):
"""
@@ -31,7 +31,7 @@ class CveListFilterSchema(Schema):
fixed = fields.Boolean(required=True, default=True, validate=validate.OneOf([True, False]))
-class GetCveListSchema(Schema):
+class GetCveListSchema(PaginationSchema):
"""
validators for parameter of /vulnerability/cve/list/get
"""
@@ -39,8 +39,6 @@ class GetCveListSchema(Schema):
["cve_id", "publish_time", "cvss_score", "host_num"]))
direction = fields.String(required=False, validate=validate.OneOf(
["asc", "desc"]))
- page = fields.Integer(required=False, validate=lambda s: s > 0)
- per_page = fields.Integer(required=False, validate=lambda s: 0 < s < 50)
filter = fields.Nested(CveListFilterSchema, required=False)
@@ -65,7 +63,7 @@ class CveHostFilterSchema(Schema):
hp_status = fields.List(fields.String(validate=validate.OneOf(["ACCEPTED", "ACTIVED"])), required=False)
-class GetCveHostsSchema(Schema):
+class GetCveHostsSchema(PaginationSchema):
"""
validators for parameter of /vulnerability/cve/host/get
"""
@@ -74,8 +72,6 @@ class GetCveHostsSchema(Schema):
["last_scan"]))
direction = fields.String(required=False, validate=validate.OneOf(
["asc", "desc"]))
- page = fields.Integer(required=False, validate=lambda s: s > 0)
- per_page = fields.Integer(required=False, validate=lambda s: 0 < s < 50)
filter = fields.Nested(CveHostFilterSchema, required=False)
diff --git a/apollo/function/schema/host.py b/apollo/function/schema/host.py
index a0cc4b5..c609fd4 100644
--- a/apollo/function/schema/host.py
+++ b/apollo/function/schema/host.py
@@ -18,7 +18,7 @@ Description: For host related restful interfaces schema
from marshmallow import Schema
from marshmallow import fields
from marshmallow import validate
-
+from vulcanus.restful.serialize.validate import PaginationSchema
class ScanHostFilterSchema(Schema):
"""
@@ -61,7 +61,7 @@ class GetHostListFilterSchema(Schema):
required=False)
-class GetHostListSchema(Schema):
+class GetHostListSchema(PaginationSchema):
"""
validators for parameter of /vulnerability/host/list/get
"""
@@ -69,8 +69,6 @@ class GetHostListSchema(Schema):
["last_scan", "cve_num"]))
direction = fields.String(required=False, validate=validate.OneOf(
["asc", "desc"]))
- page = fields.Integer(required=False, validate=lambda s: s > 0)
- per_page = fields.Integer(required=False, validate=lambda s: 0 < s < 50)
filter = fields.Nested(GetHostListFilterSchema, required=False)
@@ -96,7 +94,7 @@ class HostCvesFilterSchema(Schema):
hp_status = fields.List(fields.String(validate=validate.OneOf(["ACCEPTED", "ACTIVED"])), required=False)
-class GetHostCvesSchema(Schema):
+class GetHostCvesSchema(PaginationSchema):
"""
validators for parameter of /vulnerability/host/cve/get
"""
@@ -105,6 +103,4 @@ class GetHostCvesSchema(Schema):
["publish_time", "cvss_score"]))
direction = fields.String(required=False, validate=validate.OneOf(
["asc", "desc"]))
- page = fields.Integer(required=False, validate=lambda s: s > 0)
- per_page = fields.Integer(required=False, validate=lambda s: 0 < s < 50)
filter = fields.Nested(HostCvesFilterSchema, required=False)
diff --git a/apollo/function/schema/task.py b/apollo/function/schema/task.py
index 415c2ca..5e8744b 100644
--- a/apollo/function/schema/task.py
+++ b/apollo/function/schema/task.py
@@ -20,6 +20,7 @@ from marshmallow import fields
from marshmallow import validate
from apollo.conf.constant import TaskType
+from vulcanus.restful.serialize.validate import PaginationSchema
class TaskListFilterSchema(Schema):
"""
@@ -30,7 +31,7 @@ class TaskListFilterSchema(Schema):
validate=validate.OneOf([getattr(TaskType,p) for p in dir(TaskType) if p.isupper()])), required=False)
-class GetTaskListSchema(Schema):
+class GetTaskListSchema(PaginationSchema):
"""
validators for parameter of /vulnerability/task/list/get
"""
@@ -38,8 +39,6 @@ class GetTaskListSchema(Schema):
["host_num", "create_time"]))
direction = fields.String(required=False, validate=validate.OneOf(
["asc", "desc"]))
- page = fields.Integer(required=False, validate=lambda s: s > 0)
- per_page = fields.Integer(required=False, validate=lambda s: 0 < s < 50)
filter = fields.Nested(TaskListFilterSchema, required=False)
@@ -105,15 +104,13 @@ class CveTaskInfoFilterSchema(Schema):
["succeed", "fail", "running", "unknown"])), required=False)
-class GetCveTaskInfoSchema(Schema):
+class GetCveTaskInfoSchema(PaginationSchema):
"""
validators for parameter of /vulnerability/task/cve/info/get
"""
task_id = fields.String(required=True, validate=lambda s: len(s) != 0)
sort = fields.String(required=False, validate=validate.OneOf(["host_num"]))
direction = fields.String(required=False, validate=validate.OneOf(["asc", "desc"]))
- page = fields.Integer(required=False, validate=lambda s: s > 0)
- per_page = fields.Integer(required=False, validate=lambda s: 0 < s < 50)
filter = fields.Nested(CveTaskInfoFilterSchema, required=False)
@@ -169,13 +166,11 @@ class RepoTaskInfoFilterSchema(Schema):
required=False)
-class GetRepoTaskInfoSchema(Schema):
+class GetRepoTaskInfoSchema(PaginationSchema):
"""
validators for parameter of /vulnerability/task/repo/info/get
"""
task_id = fields.String(required=True, validate=lambda s: len(s) != 0)
- page = fields.Integer(required=False, validate=lambda s: s > 0)
- per_page = fields.Integer(required=False, validate=lambda s: 0 < s < 50)
filter = fields.Nested(RepoTaskInfoFilterSchema, required=False)
--
Gitee