Skip to content

Commit f7eb9b8

Browse files
iSecloudzhangzhw8
authored andcommitted
feat(backend): 全局查询域名信息接口 TencentBlueKing#8837
1 parent 43b0f15 commit f7eb9b8

File tree

3 files changed

+28
-1
lines changed

3 files changed

+28
-1
lines changed

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

+3
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ def get_host_info_from_cmdb(cls, bk_host_id: int) -> dict:
149149
"bk_os_name",
150150
"bk_host_innerip",
151151
"idc_city_name",
152+
"idc_city_id",
152153
"sub_zone",
153154
"rack",
154155
"bk_svr_device_cls_name",
@@ -176,6 +177,8 @@ def get_host_info_from_cmdb(cls, bk_host_id: int) -> dict:
176177
# 格式化idc信息
177178
exact_host_info["bk_idc_name"] = exact_host_info.pop("idc_name", "")
178179
exact_host_info["bk_idc_id"] = exact_host_info.pop("idc_id", "")
180+
exact_host_info["bk_idc_city_name"] = exact_host_info.pop("idc_city_name", "")
181+
exact_host_info["bk_idc_city_id"] = exact_host_info.pop("idc_city_id", "")
179182
return exact_host_info
180183
except IndexError:
181184
raise HostDoseNotExistInCmdbException(bk_host_id=bk_host_id)

dbm-ui/backend/db_services/dbbase/serializers.py

+8-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
from backend.db_dirty.models import DirtyMachine
1919
from backend.db_meta.enums import ClusterPhase, ClusterType
2020
from backend.db_services.dbbase.constants import ResourceType
21-
from backend.db_services.dbbase.resources.serializers import ListResourceSLZ
21+
from backend.db_services.dbbase.resources.serializers import ListClusterEntriesSLZ, ListResourceSLZ
2222
from backend.db_services.ipchooser.query.resource import ResourceQueryHelper
2323
from backend.db_services.redis.resources.redis_cluster.query import RedisListRetrieveResource
2424
from backend.dbm_init.constants import CC_APP_ABBR_ATTR
@@ -96,6 +96,13 @@ def validate(self, attrs):
9696
return attrs
9797

9898

99+
class ClusterEntryFilterSerializer(ListClusterEntriesSLZ):
100+
bk_biz_id = serializers.IntegerField(help_text=_("业务ID"))
101+
cluster_type = serializers.CharField(help_text=_("集群类型"))
102+
limit = serializers.IntegerField(help_text=_("分页限制"), required=False, default=10)
103+
offset = serializers.IntegerField(help_text=_("分页起始"), required=False, default=0)
104+
105+
99106
class QueryBizClusterAttrsSerializer(serializers.Serializer):
100107
bk_biz_id = serializers.IntegerField(help_text=_("业务ID"))
101108
cluster_type = serializers.CharField(help_text=_("集群类型"))

dbm-ui/backend/db_services/dbbase/views.py

+17
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
from backend.db_services.dbbase.resources.query import ListRetrieveResource, ResourceList
3232
from backend.db_services.dbbase.serializers import (
3333
ClusterDbTypeSerializer,
34+
ClusterEntryFilterSerializer,
3435
ClusterFilterSerializer,
3536
CommonQueryClusterResponseSerializer,
3637
CommonQueryClusterSerializer,
@@ -139,6 +140,22 @@ def filter_clusters(self, request, *args, **kwargs):
139140

140141
return Response(clusters_data)
141142

143+
@common_swagger_auto_schema(
144+
operation_summary=_("根据过滤条件查询业务下域名信息"),
145+
auto_schema=ResponseSwaggerAutoSchema,
146+
query_serializer=ClusterEntryFilterSerializer(),
147+
tags=[SWAGGER_TAG],
148+
)
149+
@action(methods=["GET"], detail=False, serializer_class=ClusterEntryFilterSerializer, pagination_class=None)
150+
def filter_cluster_entries(self, request, *args, **kwargs):
151+
data = self.params_validate(self.get_serializer_class())
152+
limit, offset = data.pop("limit"), data.pop("offset")
153+
resource_class = register.cluster_type__resource_class[data.pop("cluster_type")]
154+
entry_resource_data: ResourceList = resource_class.list_cluster_entries(
155+
bk_biz_id=data.pop("bk_biz_id"), query_params=data, limit=limit, offset=offset
156+
)
157+
return Response({"results": entry_resource_data.data, "count": entry_resource_data.count})
158+
142159
@common_swagger_auto_schema(
143160
operation_summary=_("根据用户手动输入的ip[:port]查询真实的实例"),
144161
request_body=CheckInstancesSLZ(),

0 commit comments

Comments
 (0)