@@ -50,7 +50,9 @@ class FixPointRollbackViewSet(viewsets.SystemViewSet):
5050 default_permission_class = [DBManagePermission ()]
5151
5252 @common_swagger_auto_schema (
53- operation_summary = _ ("通过日志平台获取集群备份记录" ),
53+ operation_summary = _ (
54+ "通过日志平台获取集群备份记录 # TODO: 当前api已废弃,替换为query_backup_log_from_handler接口(backup_source传remote)"
55+ ),
5456 query_serializer = BackupLogSerializer (),
5557 responses = {
5658 status .HTTP_200_OK : BackupLogTendbResponseSerializer (),
@@ -70,7 +72,7 @@ def query_backup_log_from_bklog(self, requests, *args, **kwargs):
7072 return Response (logs )
7173
7274 @common_swagger_auto_schema (
73- operation_summary = _ ("查询集群的本地备份记录" ),
75+ operation_summary = _ ("查询集群的本地备份记录 # TODO: 当前api已废弃,替换为query_backup_log_from_handler接口(backup_source传local) " ),
7476 query_serializer = BackupLogSerializer (),
7577 responses = {status .HTTP_200_OK : BackupLocalLogMySQLResponseSerializer ()},
7678 tags = [SWAGGER_TAG ],
@@ -82,7 +84,7 @@ def query_backup_log_from_local(self, requests, *args, **kwargs):
8284 return Response (logs )
8385
8486 @common_swagger_auto_schema (
85- operation_summary = _ ("查询小于回档时间点最近的备份记录" ),
87+ operation_summary = _ ("查询小于回档时间点最近的备份记录 # TODO: 部分接口还在使用, 新需求替换为latest_time_backup_log接口 " ),
8688 query_serializer = BackupLogRollbackTimeSerializer (),
8789 responses = {
8890 status .HTTP_200_OK : BackupLogRollbackTimeTendbResponseSerializer (),
@@ -101,6 +103,33 @@ def query_latest_backup_log(self, requests, *args, **kwargs):
101103 )
102104 )
103105
106+ @common_swagger_auto_schema (
107+ operation_summary = _ ("通过handler获取集群备份记录" ),
108+ query_serializer = FilterBackupLogSerializer (),
109+ responses = {
110+ status .HTTP_200_OK : BackupLogTendbResponseSerializer (),
111+ status .HTTP_202_ACCEPTED : BackupLogMySQLResponseSerializer (),
112+ },
113+ tags = [SWAGGER_TAG ],
114+ )
115+ @action (methods = ["GET" ], detail = False , serializer_class = FilterBackupLogSerializer )
116+ def query_backup_log_from_handler (self , requests , * args , ** kwargs ):
117+ validated_data = self .params_validate (self .get_serializer_class ())
118+ cluster_id = validated_data ["cluster_id" ]
119+ cluster = Cluster .objects .get (id = cluster_id )
120+ db_type = ClusterType .cluster_type_to_db_type (cluster .cluster_type )
121+ latest_time = validated_data .pop ("latest_time" , None )
122+ # 初始化备份文件对象
123+ handler = MySQLBackupHandler (** validated_data )
124+
125+ # 获取备份结果
126+ result = {}
127+ if db_type == DBType .MySQL .value :
128+ result = handler .get_tendbha_rollback_backup_info (latest_time )
129+ elif db_type == DBType .TenDBCluster .value :
130+ result = handler .get_spider_rollback_backup_info (latest_time )
131+ return Response (result )
132+
104133 @common_swagger_auto_schema (
105134 operation_summary = _ ("通过获取集群最迟时间的最新一条备份记录" ),
106135 query_serializer = FilterBackupLogSerializer (),
0 commit comments