Skip to content

Commit fa46cba

Browse files
committed
fix(mysql): mysql增加记录集群的指定机房特性 #9937
1 parent 5da9988 commit fa46cba

File tree

14 files changed

+26
-0
lines changed

14 files changed

+26
-0
lines changed

dbm-ui/backend/db_meta/api/cluster/sqlserverha/create_cluster.py

+2
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ def create(
7777
slave_domain: Optional[str] = None,
7878
storages: Optional[List] = None,
7979
creator: str = "",
80+
zone_list: list = None,
8081
) -> Cluster:
8182
"""
8283
注册 sqlserver-HA 集群
@@ -113,6 +114,7 @@ def create(
113114
major_version=major_version,
114115
region=region,
115116
disaster_tolerance_level=disaster_tolerance_level,
117+
zone_list=zone_list if zone_list else [],
116118
)
117119
cluster.storageinstance_set.add(*storage_objs)
118120

dbm-ui/backend/db_meta/api/cluster/sqlserverha/handler.py

+2
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ def create(
4949
region: str,
5050
sync_type: str,
5151
disaster_tolerance_level: str,
52+
zone_list: list,
5253
is_increment: bool = False,
5354
):
5455
"""
@@ -118,6 +119,7 @@ def create(
118119
region=region,
119120
sync_type=sync_type,
120121
disaster_tolerance_level=disaster_tolerance_level,
122+
zone_list=zone_list,
121123
)
122124
)
123125

dbm-ui/backend/db_meta/api/cluster/sqlserversingle/create_cluster.py

+2
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ def create(
5151
bk_cloud_id: int,
5252
region: str,
5353
creator: str = "",
54+
zone_list: list = None,
5455
) -> Cluster:
5556
bk_biz_id = request_validator.validated_integer(bk_biz_id)
5657
immute_domain = request_validator.validated_domain(immute_domain)
@@ -76,6 +77,7 @@ def create(
7677
time_zone=get_instance_time_zone(storage_objs[0]),
7778
major_version=major_version,
7879
region=region,
80+
zone_list=zone_list if zone_list else [],
7981
)
8082
cluster.storageinstance_set.add(*storage_objs)
8183

dbm-ui/backend/db_meta/api/cluster/sqlserversingle/handler.py

+2
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ def create(
3434
bk_cloud_id: int,
3535
resource_spec: dict,
3636
region: str,
37+
zone_list: list,
3738
is_increment: bool = False,
3839
):
3940
"""
@@ -87,6 +88,7 @@ def create(
8788
creator=creator,
8889
bk_cloud_id=bk_cloud_id,
8990
region=region,
91+
zone_list=zone_list,
9092
)
9193
)
9294

dbm-ui/backend/db_meta/api/cluster/tendbcluster/create_cluster.py

+2
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ def create(
8888
disaster_tolerance_level: str = AffinityEnum.NONE.value,
8989
creator: str = "",
9090
region: str = "",
91+
zone_list: Optional[List] = None,
9192
) -> Cluster:
9293
"""
9394
注册 TenDBCluster 集群
@@ -123,6 +124,7 @@ def create(
123124
major_version=major_version, # 这里存储集群的主版本信息,主要是为展示,存储mysql版本
124125
region=region, # 这里保存申请资源的地域信息
125126
disaster_tolerance_level=disaster_tolerance_level,
127+
zone_list=zone_list if zone_list else [],
126128
)
127129

128130
# 添加 cluster 与所有spider实例和storage实例的映射关系

dbm-ui/backend/db_meta/api/cluster/tendbcluster/handler.py

+2
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ def create(
6262
resource_spec: dict,
6363
region: str,
6464
disaster_tolerance_level: str,
65+
zone_list: list,
6566
):
6667
"""「必须」创建spider集群"""
6768

@@ -148,6 +149,7 @@ def create(
148149
creator=creator,
149150
region=region,
150151
disaster_tolerance_level=disaster_tolerance_level,
152+
zone_list=zone_list,
151153
)
152154

153155
cc_topo_operator = MysqlCCTopoOperator(cluster)

dbm-ui/backend/db_meta/api/cluster/tendbha/create_cluster.py

+2
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ def create(
7878
proxies: Optional[List] = None,
7979
storages: Optional[List] = None,
8080
creator: str = "",
81+
zone_list: Optional[List] = None,
8182
) -> Cluster:
8283
"""
8384
注册 TenDBHA 集群
@@ -112,6 +113,7 @@ def create(
112113
major_version=major_version,
113114
region=region,
114115
disaster_tolerance_level=disaster_tolerance_level,
116+
zone_list=zone_list if zone_list else [],
115117
)
116118
cluster.proxyinstance_set.add(*proxy_objs)
117119
cluster.storageinstance_set.add(*storage_objs)

dbm-ui/backend/db_meta/api/cluster/tendbha/handler.py

+2
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ def create(
5050
resource_spec: dict,
5151
region: str,
5252
disaster_tolerance_level: str,
53+
zone_list: list,
5354
):
5455
"""「必须」创建集群,多实例录入方式"""
5556

@@ -145,6 +146,7 @@ def create(
145146
major_version=major_version,
146147
region=region,
147148
disaster_tolerance_level=disaster_tolerance_level,
149+
zone_list=zone_list,
148150
)
149151
)
150152

dbm-ui/backend/db_meta/api/cluster/tendbsingle/create_cluster.py

+2
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ def create(
5151
time_zone: str,
5252
region: str,
5353
creator: str = "",
54+
zone_list: list = None,
5455
) -> Cluster:
5556
bk_biz_id = request_validator.validated_integer(bk_biz_id)
5657
immute_domain = request_validator.validated_domain(immute_domain)
@@ -72,6 +73,7 @@ def create(
7273
time_zone=time_zone,
7374
major_version=major_version,
7475
region=region,
76+
zone_list=zone_list if zone_list else [],
7577
)
7678
cluster.storageinstance_set.add(*storage_objs)
7779

dbm-ui/backend/db_meta/api/cluster/tendbsingle/handler.py

+2
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ def create(
4040
bk_cloud_id: int,
4141
resource_spec: dict,
4242
region: str,
43+
zone_list: list,
4344
):
4445
"""「必须」创建集群"""
4546
api.machine.create(
@@ -92,6 +93,7 @@ def create(
9293
bk_cloud_id=bk_cloud_id,
9394
time_zone=time_zone,
9495
region=region,
96+
zone_list=zone_list,
9597
)
9698
)
9799

dbm-ui/backend/db_meta/models/cluster.py

+1
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ class Cluster(AuditedModel):
7171
)
7272
time_zone = models.CharField(max_length=16, default=DEFAULT_TIME_ZONE, help_text=_("集群所在的时区"))
7373
tags = models.ManyToManyField(Tag, blank=True, help_text=_("标签(外键)"))
74+
zone_list = models.JSONField(default=list, help_text=_("指定机房列表,空列表代表随机"))
7475

7576
class Meta:
7677
unique_together = [("bk_biz_id", "immute_domain", "cluster_type", "db_module_id"), ("immute_domain",)]

dbm-ui/backend/flow/utils/mysql/mysql_db_meta.py

+2
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ def mysql_single_apply(self) -> bool:
7272
bk_cloud_id=int(self.ticket_data["bk_cloud_id"]),
7373
resource_spec=self.ticket_data.get("resource_spec", def_resource_spec),
7474
region=self.ticket_data["city"],
75+
zone_list=self.ticket_data.get("zone_list", []),
7576
)
7677
return True
7778

@@ -97,6 +98,7 @@ def mysql_ha_apply(self) -> bool:
9798
"resource_spec": self.ticket_data.get("resource_spec", def_resource_spec),
9899
"region": self.ticket_data["city"],
99100
"disaster_tolerance_level": self.ticket_data["disaster_tolerance_level"],
101+
"zone_list": self.ticket_data.get("zone_list", []),
100102
}
101103
TenDBHAClusterHandler.create(**kwargs)
102104
return True

dbm-ui/backend/flow/utils/spider/spider_db_meta.py

+1
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ def tendb_cluster_apply(self):
6868
"shard_infos": shard_infos,
6969
"region": self.global_data["city"],
7070
"disaster_tolerance_level": self.global_data["disaster_tolerance_level"],
71+
"zone_list": self.global_data.get("zone_list", []),
7172
}
7273
TenDBClusterClusterHandler.create(**kwargs)
7374
return True

dbm-ui/backend/flow/utils/sqlserver/sqlserver_db_meta.py

+2
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ def sqlserver_single_apply(self):
5151
resource_spec=self.global_data.get("resource_spec", def_resource_spec),
5252
region=self.global_data["region"],
5353
is_increment=self.global_data.get("is_increment", False),
54+
zone_list=self.global_data.get("zone_list", []),
5455
)
5556
return True
5657

@@ -74,6 +75,7 @@ def sqlserver_ha_apply(self):
7475
sync_type=self.global_data["sync_type"],
7576
disaster_tolerance_level=self.global_data["disaster_tolerance_level"],
7677
is_increment=self.global_data.get("is_increment", False),
78+
zone_list=self.global_data.get("zone_list", []),
7779
)
7880
return True
7981

0 commit comments

Comments
 (0)