Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 4 additions & 27 deletions dbm-ui/backend/db_services/partition/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

from ...ticket.builders.common.field import DBTimezoneField
from ...ticket.builders.mysql.base import DBTableField
from ...ticket.builders.mysql.mysql_partition import PartitionV2ConfObjectSerializer
from ...ticket.builders.mysql.mysql_partition import PartitionObjectSerializer
from . import mock


Expand Down Expand Up @@ -106,20 +106,6 @@ class PartitionUpdateSerializer(PartitionCreateSerializer):
pass


class PartitionReinitializeSerializer(PartitionCreateSerializer):
cluster_id = serializers.IntegerField(help_text=_("云区域ID"))
dblikes = serializers.ListField(help_text=_("匹配库列表(支持通配)"), child=DBTableField(db_field=True))
tblikes = serializers.ListField(help_text=_("匹配表列表(不支持通配)"), child=DBTableField())
partition_column = serializers.CharField(help_text=_("分区字段"))
partition_column_type = serializers.CharField(help_text=_("分区字段类型"))
expire_time = serializers.IntegerField(help_text=_("过期时间"))
partition_time_interval = serializers.IntegerField(help_text=_("分区间隔"))
extra_partition = serializers.IntegerField(help_text=_("预留分区数"))
need_dry_run = serializers.BooleanField(help_text=_("是否需要获取分区执行数据"), required=False, default=True)
auto_commit = serializers.BooleanField(help_text=_("是否自动创建单据"), required=False, default=False)
force = serializers.BooleanField(help_text=_("否表示是否强制执行,True 表示重新初始化"), required=False, default=False)


class PartitionDisableSerializer(serializers.Serializer):
cluster_type = serializers.ChoiceField(help_text=_("集群类型"), choices=ClusterType.get_choices())
bk_biz_id = serializers.IntegerField(help_text=_("业务ID"))
Expand Down Expand Up @@ -188,9 +174,9 @@ class Meta:


class PartitionRunSerializer(serializers.Serializer):
bk_biz_id = serializers.IntegerField(help_text=_("业务ID"))
partition_infos = serializers.DictField(
help_text=_("分区信息列表"), child=serializers.ListSerializer(child=PartitionV2ConfObjectSerializer())
cluster_id = serializers.IntegerField(help_text=_("集群ID"))
partition_objects = serializers.DictField(
help_text=_("分区执行对象列表"), child=serializers.ListSerializer(child=PartitionObjectSerializer())
)


Expand Down Expand Up @@ -272,12 +258,3 @@ class PartitionExportResponseSerializer(serializers.Serializer):

class Meta:
swagger_schema_fields = {"description": _("分区策略导出结果")}


class PartitionLogDetailSerializer(serializers.Serializer):
"""分区日志详情序列化器"""

config_id = serializers.ListSerializer(child=serializers.IntegerField(), help_text=_("分区策略ID"))

class Meta:
swagger_schema_fields = {"description": _("分区执行失败日志详情")}
32 changes: 4 additions & 28 deletions dbm-ui/backend/db_services/partition/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,8 @@
PartitionImportSerializer,
PartitionListResponseSerializer,
PartitionListSerializer,
PartitionLogDetailSerializer,
PartitionLogResponseSerializer,
PartitionLogSerializer,
PartitionReinitializeSerializer,
PartitionRunSerializer,
PartitionUpdateSerializer,
)
Expand Down Expand Up @@ -204,7 +202,7 @@ def batch_dry_run(self, request, *args, **kwargs):
@action(methods=["POST"], detail=False, serializer_class=PartitionRunSerializer)
def execute_partition(self, request, *args, **kwargs):
validated_data = self.params_validate(PartitionRunSerializer, representation=True)
return Response(DBPartitionApi.execute_partition_v2(validated_data))
return Response(PartitionHandler.execute_partition(user=request.user.username, **validated_data))

@common_swagger_auto_schema(
operation_summary=_("分区策略字段校验"),
Expand All @@ -215,7 +213,9 @@ def execute_partition(self, request, *args, **kwargs):
@action(methods=["POST"], detail=False, serializer_class=PartitionColumnVerifySerializer)
def verify_partition_field(self, request, *args, **kwargs):
validated_data = self.params_validate(PartitionColumnVerifySerializer, representation=True)
return Response(DBPartitionApi.validate_field_type_v2(validated_data))
cluster = Cluster.objects.get(id=validated_data["cluster_id"])
validated_data.update(bk_biz_id=cluster.bk_biz_id)
return Response(PartitionHandler.verify_partition_field(**validated_data))

@common_swagger_auto_schema(
operation_summary=_("Excel导入分区策略"),
Expand Down Expand Up @@ -248,27 +248,3 @@ def export_partitions(self, request, *args, **kwargs):
bk_biz_id = validated_data.get("bk_biz_id")
# 调用导出处理逻辑
return PartitionHandler.export_partitions(export_type, bk_biz_id, selected_ids, cluster_type)

@common_swagger_auto_schema(
operation_summary=_("保存并执行(重新初始化)分区策略"),
request_body=PartitionReinitializeSerializer(),
tags=[SWAGGER_TAG],
)
@action(methods=["POST"], detail=False, serializer_class=PartitionReinitializeSerializer)
def reinitialize(self, request, *args, **kwargs):
"""重新初始化分区策略接口"""
validated_data = self.params_validate(PartitionReinitializeSerializer, representation=True)
return Response(DBPartitionApi.save_and_execute_v2(validated_data))

@common_swagger_auto_schema(
operation_summary=_("查看失败日志详情"),
request_body=PartitionLogDetailSerializer(),
responses={status.HTTP_200_OK: PartitionImportResultSerializer()},
tags=[SWAGGER_TAG],
)
@action(methods=["POST"], detail=False, serializer_class=PartitionLogDetailSerializer)
def fail_log_detail(self, request, *args, **kwargs):
"""查看失败日志详情"""
validated_data = self.params_validate(PartitionLogDetailSerializer)
# 调用查询失败日志详情处理逻辑
return Response(DBPartitionApi.query_log_v2(validated_data))