From 34a6fdea0c03ef20a8483df1fa197f09d23f6ad1 Mon Sep 17 00:00:00 2001 From: SunnyQjm Date: Thu, 28 Jul 2022 10:17:59 +0800 Subject: [PATCH 1/4] fix: Cluser add cluster_description fields --- sysom_api/apps/host/models.py | 1 + 1 file changed, 1 insertion(+) diff --git a/sysom_api/apps/host/models.py b/sysom_api/apps/host/models.py index 57599747..de353b03 100644 --- a/sysom_api/apps/host/models.py +++ b/sysom_api/apps/host/models.py @@ -37,6 +37,7 @@ class HostModel(BaseModel): class Cluster(BaseModel): cluster_name = models.CharField(max_length=128, unique=True) + cluster_description = models.CharField(max_length=255, default="") class Meta: db_table = "sys_cluster" -- Gitee From 4f099b07c8bc40e385e6bcc5b735368cd4e957e9 Mon Sep 17 00:00:00 2001 From: SunnyQjm Date: Thu, 28 Jul 2022 11:29:25 +0800 Subject: [PATCH 2/4] fix: create host tip confuse problem MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复: 修复创建主机时,错误信息不清楚的问题 --- sysom_api/apps/common/common_model_viewset.py | 17 ++++++++++++++++- sysom_api/apps/host/views.py | 9 ++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/sysom_api/apps/common/common_model_viewset.py b/sysom_api/apps/common/common_model_viewset.py index 293c1acd..9dff75cd 100644 --- a/sysom_api/apps/common/common_model_viewset.py +++ b/sysom_api/apps/common/common_model_viewset.py @@ -1,4 +1,6 @@ +from typing import Any from rest_framework.viewsets import GenericViewSet +from rest_framework.exceptions import ValidationError class CommonModelViewSet(GenericViewSet): @@ -52,4 +54,17 @@ class CommonModelViewSet(GenericViewSet): "success": True, "message": "", } - \ No newline at end of file + + def get_format_err_msg_for_validation_error(self, data: dict, err: ValidationError) -> str: + """ + 对验证错误的错误信息进行转换,使得提示更易读懂 + """ + results = [] + for k, v in err.detail.items(): + if v[0].code == 'unique': + # 唯一性错误 + results.append(f"{k}({data[k]})已存在") + else: + # 其它错误 + results.append(v[0]) + return "; ".join(results) diff --git a/sysom_api/apps/host/views.py b/sysom_api/apps/host/views.py index 9356aee7..b96cc691 100644 --- a/sysom_api/apps/host/views.py +++ b/sysom_api/apps/host/views.py @@ -112,7 +112,10 @@ class HostModelViewSet(CommonModelViewSet, def _validate_and_initialize_host(self, context): context = validate_ssh(context) create_serializer = self.get_serializer(data=context) - create_serializer.is_valid(raise_exception=True) + try: + create_serializer.is_valid(raise_exception=True) + except ValidationError as e: + raise APIException(message=f"{self.get_format_err_msg_for_validation_error(context, e)}。主机添加失败") self.perform_create(create_serializer) instance = create_serializer.instance # 检查输入client部署命令 更新host状态 @@ -120,6 +123,7 @@ class HostModelViewSet(CommonModelViewSet, target=self.client_deploy_cmd_init, args=(instance,)) thread.start() ser = serializer.HostSerializer(instance=instance) + print(type(ser)) return ser def _destroy_host_tasks(self, instance): @@ -185,8 +189,11 @@ class HostModelViewSet(CommonModelViewSet, _create_alarm_message(kwargs) except ValidationError as e: + self.get_format_err_msg_for_validation_error(e) kwargs['message'] = ','.join( [f'{k}: {v[0]}' for k, v in e.detail.items()]) + print(e.detail.items()) + errMsg = kwargs['message'] kwargs['collected_time'] = datetime.now().strftime( '%Y-%m-%d %H:%M:%S') -- Gitee From c1e464584c8773eefe11a70ebe2fcdcb609811f7 Mon Sep 17 00:00:00 2001 From: SunnyQjm Date: Thu, 28 Jul 2022 11:35:22 +0800 Subject: [PATCH 3/4] remove: del some useless print cal --- sysom_api/apps/host/views.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/sysom_api/apps/host/views.py b/sysom_api/apps/host/views.py index b96cc691..abfa51b9 100644 --- a/sysom_api/apps/host/views.py +++ b/sysom_api/apps/host/views.py @@ -123,7 +123,6 @@ class HostModelViewSet(CommonModelViewSet, target=self.client_deploy_cmd_init, args=(instance,)) thread.start() ser = serializer.HostSerializer(instance=instance) - print(type(ser)) return ser def _destroy_host_tasks(self, instance): @@ -192,7 +191,6 @@ class HostModelViewSet(CommonModelViewSet, self.get_format_err_msg_for_validation_error(e) kwargs['message'] = ','.join( [f'{k}: {v[0]}' for k, v in e.detail.items()]) - print(e.detail.items()) errMsg = kwargs['message'] kwargs['collected_time'] = datetime.now().strftime( -- Gitee From 9b9259268da4014d0648bad89b51e252c1df6974 Mon Sep 17 00:00:00 2001 From: SunnyQjm Date: Thu, 28 Jul 2022 11:36:43 +0800 Subject: [PATCH 4/4] remove: del some useless print cal --- sysom_api/apps/host/views.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/sysom_api/apps/host/views.py b/sysom_api/apps/host/views.py index abfa51b9..d51d380e 100644 --- a/sysom_api/apps/host/views.py +++ b/sysom_api/apps/host/views.py @@ -188,10 +188,8 @@ class HostModelViewSet(CommonModelViewSet, _create_alarm_message(kwargs) except ValidationError as e: - self.get_format_err_msg_for_validation_error(e) kwargs['message'] = ','.join( [f'{k}: {v[0]}' for k, v in e.detail.items()]) - errMsg = kwargs['message'] kwargs['collected_time'] = datetime.now().strftime( '%Y-%m-%d %H:%M:%S') -- Gitee