Skip to content

Commit ee23143

Browse files
committed
fix(backend): 补充部署类单据详情信息 #10195
# Reviewed, transaction id: 39725
1 parent 0188e8f commit ee23143

File tree

8 files changed

+55
-11
lines changed

8 files changed

+55
-11
lines changed

dbm-ui/backend/ticket/builders/common/bigdata.py

+13
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from backend.db_meta.models.cluster import Cluster
2222
from backend.db_meta.models.instance import StorageInstance
2323
from backend.db_services.dbbase.constants import IpSource
24+
from backend.db_services.ipchooser.query.resource import ResourceQueryHelper
2425
from backend.ticket.builders import BuilderFactory, TicketFlowBuilder
2526
from backend.ticket.builders.common.base import (
2627
BaseOperateResourceParamBuilder,
@@ -126,6 +127,18 @@ class BigDataApplyDetailsSerializer(BigDataDetailsSerializer):
126127
bk_cloud_id = serializers.IntegerField(help_text=_("云区域ID"))
127128
resource_spec = serializers.JSONField(help_text=_("资源申请规格"), required=False)
128129

130+
# display fields
131+
bk_cloud_name = serializers.SerializerMethodField(help_text=_("云区域"), read_only=True)
132+
city_name = serializers.SerializerMethodField(help_text=_("城市名"), read_only=True)
133+
134+
def get_bk_cloud_name(self, obj):
135+
clouds = ResourceQueryHelper.search_cc_cloud(get_cache=True)
136+
return clouds[str(obj["bk_cloud_id"])]["bk_cloud_name"]
137+
138+
def get_city_name(self, obj):
139+
city_code = obj["city_code"]
140+
return self.context["ticket_ctx"].city_map.get(city_code, city_code)
141+
129142
def get_node_count(self, attrs, role):
130143
if attrs["ip_source"] == IpSource.MANUAL_INPUT:
131144
return len(attrs["nodes"].get(role) or [])

dbm-ui/backend/ticket/builders/mysql/mysql_ha_apply.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from django.utils.translation import ugettext_lazy as _
1515
from rest_framework import serializers
1616

17-
from backend.configuration.constants import MASTER_DOMAIN_INITIAL_VALUE, SLAVE_DOMAIN_INITIAL_VALUE, AffinityEnum
17+
from backend.configuration.constants import MASTER_DOMAIN_INITIAL_VALUE, SLAVE_DOMAIN_INITIAL_VALUE
1818
from backend.db_meta.enums import ClusterType
1919
from backend.db_meta.models import AppCache, DBModule
2020
from backend.db_services.dbbase.constants import IpSource
@@ -33,9 +33,6 @@
3333

3434

3535
class MysqlHAApplyDetailSerializer(MysqlSingleApplyDetailSerializer):
36-
disaster_tolerance_level = serializers.ChoiceField(
37-
help_text=_("容灾级别"), choices=AffinityEnum.get_choices(), required=False, default=AffinityEnum.NONE.value
38-
)
3936
start_proxy_port = serializers.IntegerField(
4037
help_text=_("Proxy起始端口"),
4138
required=False,

dbm-ui/backend/ticket/builders/mysql/mysql_single_apply.py

+10-1
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,11 @@
1818
from backend.bk_web.constants import LEN_MIDDLE, SMALLEST_POSITIVE_INTEGER
1919
from backend.components import DBConfigApi
2020
from backend.components.dbconfig import constants as dbconf_const
21-
from backend.configuration.constants import MASTER_DOMAIN_INITIAL_VALUE
21+
from backend.configuration.constants import MASTER_DOMAIN_INITIAL_VALUE, AffinityEnum
2222
from backend.db_meta.enums import ClusterType
2323
from backend.db_meta.models import AppCache, DBModule
2424
from backend.db_services.dbbase.constants import IpSource
25+
from backend.db_services.ipchooser.query.resource import ResourceQueryHelper
2526
from backend.db_services.mysql.constants import DEFAULT_ORIGIN_MYSQL_PORT, SERVER_PORT_LIMIT_MAX, SERVER_PORT_LIMIT_MIN
2627
from backend.exceptions import ValidationError
2728
from backend.flow.engine.controller.mysql import MySQLController
@@ -66,6 +67,7 @@ class MysqlSingleApplyDetailSerializer(serializers.Serializer):
6667
db_module_name = serializers.SerializerMethodField(help_text=_("DB模块名"))
6768
city_name = serializers.SerializerMethodField(help_text=_("城市名"))
6869
spec_display = serializers.SerializerMethodField(help_text=_("机器规格展示名"))
70+
bk_cloud_name = serializers.SerializerMethodField(help_text=_("云区域"), read_only=True)
6971

7072
start_mysql_port = serializers.IntegerField(
7173
help_text=_("MySQL起始端口"),
@@ -74,6 +76,9 @@ class MysqlSingleApplyDetailSerializer(serializers.Serializer):
7476
max_value=SERVER_PORT_LIMIT_MAX,
7577
default=DEFAULT_ORIGIN_MYSQL_PORT,
7678
)
79+
disaster_tolerance_level = serializers.ChoiceField(
80+
help_text=_("容灾级别"), choices=AffinityEnum.get_choices(), required=False, default=AffinityEnum.NONE.value
81+
)
7782

7883
def to_representation(self, instance):
7984
representation = super().to_representation(instance)
@@ -107,6 +112,10 @@ def validate(self, attrs):
107112

108113
return attrs
109114

115+
def get_bk_cloud_name(self, obj):
116+
clouds = ResourceQueryHelper.search_cc_cloud(get_cache=True)
117+
return clouds[str(obj["bk_cloud_id"])]["bk_cloud_name"]
118+
110119
def get_db_module_name(self, obj):
111120
db_module_id = obj["db_module_id"]
112121
return self.context["ticket_ctx"].db_module_map.get(db_module_id) or f"db-module-{db_module_id}"

dbm-ui/backend/ticket/builders/redis/redis_cluster_apply.py

+8
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from backend.configuration.handlers.password import DBPasswordHandler
1616
from backend.db_meta.enums import ClusterType
1717
from backend.db_services.dbbase.constants import IpSource
18+
from backend.db_services.ipchooser.query.resource import ResourceQueryHelper
1819
from backend.flow.engine.controller.redis import RedisController
1920
from backend.ticket import builders
2021
from backend.ticket.builders.common.base import CommonValidate, SkipToRepresentationMixin
@@ -48,6 +49,13 @@ class RedisClusterApplyDetailSerializer(SkipToRepresentationMixin, serializers.S
4849
resource_spec = serializers.JSONField(help_text=_("proxy部署方案"), required=False)
4950
cluster_shard_num = serializers.IntegerField(help_text=_("集群分片数"), required=False)
5051

52+
# display fields
53+
bk_cloud_name = serializers.SerializerMethodField(help_text=_("云区域"), read_only=True)
54+
55+
def get_bk_cloud_name(self, obj):
56+
clouds = ResourceQueryHelper.search_cc_cloud(get_cache=True)
57+
return clouds[str(obj["bk_cloud_id"])]["bk_cloud_name"]
58+
5159
def get_city_name(self, obj):
5260
city_code = obj["city_code"]
5361
return self.context["ticket_ctx"].city_map.get(city_code, city_code)

dbm-ui/backend/ticket/builders/redis/redis_instance_apply.py

+8
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
from backend.configuration.handlers.password import DBPasswordHandler
1818
from backend.db_meta.models import Cluster, Machine, StorageInstance
1919
from backend.db_services.dbbase.constants import IpSource
20+
from backend.db_services.ipchooser.query.resource import ResourceQueryHelper
2021
from backend.flow.engine.controller.redis import RedisController
2122
from backend.iam_app.dataclass.actions import ActionEnum
2223
from backend.ticket import builders
@@ -50,6 +51,13 @@ class InstanceInfoSerializer(serializers.Serializer):
5051

5152
city_name = serializers.SerializerMethodField(help_text=_("城市名"))
5253

54+
# display fields
55+
bk_cloud_name = serializers.SerializerMethodField(help_text=_("云区域"), read_only=True)
56+
57+
def get_bk_cloud_name(self, obj):
58+
clouds = ResourceQueryHelper.search_cc_cloud(get_cache=True)
59+
return clouds[str(obj["bk_cloud_id"])]["bk_cloud_name"]
60+
5361
def get_city_name(self, obj):
5462
city_code = obj["city_code"]
5563
return self.context["ticket_ctx"].city_map.get(city_code, city_code)

dbm-ui/backend/ticket/builders/sqlserver/sqlserver_ha_apply.py

+1-5
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from django.utils.translation import ugettext_lazy as _
1414
from rest_framework import serializers
1515

16-
from backend.configuration.constants import MASTER_DOMAIN_INITIAL_VALUE, SLAVE_DOMAIN_INITIAL_VALUE, AffinityEnum
16+
from backend.configuration.constants import MASTER_DOMAIN_INITIAL_VALUE, SLAVE_DOMAIN_INITIAL_VALUE
1717
from backend.db_meta.enums import ClusterType
1818
from backend.db_meta.models import AppCache, DBModule
1919
from backend.db_services.dbbase.constants import IpSource
@@ -30,10 +30,6 @@
3030

3131

3232
class SQLServerHAApplyDetailSerializer(SQLServerSingleApplyDetailSerializer):
33-
disaster_tolerance_level = serializers.ChoiceField(
34-
help_text=_("容灾级别"), choices=AffinityEnum.get_choices(), required=False, default=AffinityEnum.NONE.value
35-
)
36-
3733
def validate(self, attrs):
3834
super().validate(attrs)
3935

dbm-ui/backend/ticket/builders/sqlserver/sqlserver_single_apply.py

+13-1
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,12 @@
1616
from rest_framework import serializers
1717

1818
from backend.bk_web.constants import LEN_MIDDLE, SMALLEST_POSITIVE_INTEGER
19-
from backend.configuration.constants import MASTER_DOMAIN_INITIAL_VALUE
19+
from backend.configuration.constants import MASTER_DOMAIN_INITIAL_VALUE, AffinityEnum
2020
from backend.db_meta.enums import ClusterType
2121
from backend.db_meta.models import AppCache, DBModule
2222
from backend.db_services.dbbase.constants import IpSource
2323
from backend.db_services.ipchooser.constants import BkOsType
24+
from backend.db_services.ipchooser.query.resource import ResourceQueryHelper
2425
from backend.exceptions import ValidationError
2526
from backend.flow.consts import DEFAULT_SQLSERVER_PORT
2627
from backend.flow.engine.controller.sqlserver import SqlserverController
@@ -70,6 +71,17 @@ class DomainSerializer(serializers.Serializer):
7071
help_text=_("SQLServer起始端口"), required=False, default=DEFAULT_SQLSERVER_PORT
7172
)
7273

74+
disaster_tolerance_level = serializers.ChoiceField(
75+
help_text=_("容灾级别"), choices=AffinityEnum.get_choices(), required=False, default=AffinityEnum.NONE.value
76+
)
77+
78+
# display fields
79+
bk_cloud_name = serializers.SerializerMethodField(help_text=_("云区域"), read_only=True)
80+
81+
def get_bk_cloud_name(self, obj):
82+
clouds = ResourceQueryHelper.search_cc_cloud(get_cache=True)
83+
return clouds[str(obj["bk_cloud_id"])]["bk_cloud_name"]
84+
7385
def to_representation(self, instance):
7486
representation = super().to_representation(instance)
7587
self._format_domains(representation["domains"], instance)

dbm-ui/backend/ticket/builders/tendbcluster/tendb_apply.py

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ class TenDBClusterApplyDetailSerializer(serializers.Serializer):
3030
bk_cloud_id = serializers.IntegerField(help_text=_("云区域ID"))
3131
db_app_abbr = serializers.CharField(help_text=_("业务英文缩写"))
3232
cluster_name = serializers.CharField(help_text=_("集群名"))
33+
cluster_alias = serializers.CharField(help_text=_("集群别名(一般为中文别名)"), required=False, allow_blank=True)
3334
city_code = serializers.CharField(
3435
help_text=_("城市代码"), required=False, allow_blank=True, allow_null=True, default=""
3536
)

0 commit comments

Comments
 (0)