Skip to content

Commit 4ef3718

Browse files
committed
refactor(sqle): update get instance API to use dmsV2
- Replace dmsV1 with dmsV2 in import statements - Update function calls and struct references to use dmsV2 - Modify ListDBServiceReq usage across multiple files - Adjust error handling and permissions checks for new API
1 parent 3486aa9 commit 4ef3718

File tree

3 files changed

+43
-41
lines changed

3 files changed

+43
-41
lines changed

sqle/api/controller/v1/project_permission.go

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
"strconv"
77

88
dmsV1 "github.com/actiontech/dms/pkg/dms-common/api/dms/v1"
9-
v1 "github.com/actiontech/dms/pkg/dms-common/api/dms/v1"
9+
dmsV2 "github.com/actiontech/dms/pkg/dms-common/api/dms/v2"
1010
"github.com/actiontech/dms/pkg/dms-common/dmsobject"
1111
"github.com/actiontech/sqle/sqle/api/controller"
1212
"github.com/actiontech/sqle/sqle/dms"
@@ -203,7 +203,7 @@ func checkCurrentUserCanOpTask(c echo.Context, task *model.Task, ops []dmsV1.OpP
203203
return errors.NewTaskNoExistOrNoAccessErr()
204204
}
205205

206-
func GetAuditPlanIfCurrentUserCanView(c echo.Context, projectId, auditPlanName string, opType v1.OpPermissionType) (*model.AuditPlan, bool, error) {
206+
func GetAuditPlanIfCurrentUserCanView(c echo.Context, projectId, auditPlanName string, opType dmsV1.OpPermissionType) (*model.AuditPlan, bool, error) {
207207
storage := model.GetStorage()
208208

209209
ap, exist, err := dms.GetAuditPlanWithInstanceFromProjectByName(projectId, auditPlanName, storage.GetAuditPlanFromProjectByName)
@@ -235,7 +235,7 @@ func GetAuditPlanIfCurrentUserCanView(c echo.Context, projectId, auditPlanName s
235235
}
236236

237237
if opType != "" {
238-
dbServiceReq := &dmsV1.ListDBServiceReq{
238+
dbServiceReq := &dmsV2.ListDBServiceReq{
239239
ProjectUid: projectId,
240240
}
241241
instances, err := GetCanOperationInstances(c.Request().Context(), user, dbServiceReq, opType)
@@ -248,10 +248,10 @@ func GetAuditPlanIfCurrentUserCanView(c echo.Context, projectId, auditPlanName s
248248
}
249249
}
250250
}
251-
return ap, false, errors.NewUserNotPermissionError(v1.GetOperationTypeDesc(opType))
251+
return ap, false, errors.NewUserNotPermissionError(dmsV1.GetOperationTypeDesc(opType))
252252
}
253253

254-
func GetAuditPlanIfCurrentUserCanOp(c echo.Context, projectId, auditPlanName string, opType v1.OpPermissionType) (*model.AuditPlan, bool, error) {
254+
func GetAuditPlanIfCurrentUserCanOp(c echo.Context, projectId, auditPlanName string, opType dmsV1.OpPermissionType) (*model.AuditPlan, bool, error) {
255255
storage := model.GetStorage()
256256

257257
ap, exist, err := dms.GetAuditPlanWithInstanceFromProjectByName(projectId, auditPlanName, storage.GetAuditPlanFromProjectByName)
@@ -283,7 +283,7 @@ func GetAuditPlanIfCurrentUserCanOp(c echo.Context, projectId, auditPlanName str
283283
}
284284

285285
if opType != "" {
286-
dbServiceReq := &dmsV1.ListDBServiceReq{
286+
dbServiceReq := &dmsV2.ListDBServiceReq{
287287
ProjectUid: projectId,
288288
}
289289
instances, err := GetCanOperationInstances(c.Request().Context(), user, dbServiceReq, opType)
@@ -296,10 +296,10 @@ func GetAuditPlanIfCurrentUserCanOp(c echo.Context, projectId, auditPlanName str
296296
}
297297
}
298298
}
299-
return ap, false, errors.NewUserNotPermissionError(v1.GetOperationTypeDesc(opType))
299+
return ap, false, errors.NewUserNotPermissionError(dmsV1.GetOperationTypeDesc(opType))
300300
}
301301

302-
func GetInstanceAuditPlanIfCurrentUserCanView(c echo.Context, projectId, instanceAuditPlanID string, opType v1.OpPermissionType) (*model.InstanceAuditPlan, bool, error) {
302+
func GetInstanceAuditPlanIfCurrentUserCanView(c echo.Context, projectId, instanceAuditPlanID string, opType dmsV1.OpPermissionType) (*model.InstanceAuditPlan, bool, error) {
303303
storage := model.GetStorage()
304304

305305
ap, exist, err := storage.GetInstanceAuditPlanDetail(instanceAuditPlanID)
@@ -331,7 +331,7 @@ func GetInstanceAuditPlanIfCurrentUserCanView(c echo.Context, projectId, instanc
331331
}
332332

333333
if opType != "" {
334-
dbServiceReq := &dmsV1.ListDBServiceReq{
334+
dbServiceReq := &dmsV2.ListDBServiceReq{
335335
ProjectUid: projectId,
336336
}
337337
instances, err := GetCanOperationInstances(c.Request().Context(), user, dbServiceReq, opType)
@@ -344,10 +344,10 @@ func GetInstanceAuditPlanIfCurrentUserCanView(c echo.Context, projectId, instanc
344344
}
345345
}
346346
}
347-
return ap, false, errors.NewUserNotPermissionError(v1.GetOperationTypeDesc(opType))
347+
return ap, false, errors.NewUserNotPermissionError(dmsV1.GetOperationTypeDesc(opType))
348348
}
349349

350-
func GetInstanceAuditPlanIfCurrentUserCanOp(c echo.Context, projectId, instanceAuditPlanID string, opType v1.OpPermissionType) (*model.InstanceAuditPlan, bool, error) {
350+
func GetInstanceAuditPlanIfCurrentUserCanOp(c echo.Context, projectId, instanceAuditPlanID string, opType dmsV1.OpPermissionType) (*model.InstanceAuditPlan, bool, error) {
351351
storage := model.GetStorage()
352352

353353
ap, exist, err := storage.GetInstanceAuditPlanDetail(instanceAuditPlanID)
@@ -379,7 +379,7 @@ func GetInstanceAuditPlanIfCurrentUserCanOp(c echo.Context, projectId, instanceA
379379
}
380380

381381
if opType != "" {
382-
dbServiceReq := &dmsV1.ListDBServiceReq{
382+
dbServiceReq := &dmsV2.ListDBServiceReq{
383383
ProjectUid: projectId,
384384
}
385385
instances, err := GetCanOperationInstances(c.Request().Context(), user, dbServiceReq, opType)
@@ -392,14 +392,14 @@ func GetInstanceAuditPlanIfCurrentUserCanOp(c echo.Context, projectId, instanceA
392392
}
393393
}
394394
}
395-
return ap, false, errors.NewUserNotPermissionError(v1.GetOperationTypeDesc(opType))
395+
return ap, false, errors.NewUserNotPermissionError(dmsV1.GetOperationTypeDesc(opType))
396396
}
397397

398398
func GetAuditPlantReportAndInstanceIfCurrentUserCanView(c echo.Context, projectId, auditPlanName string, reportID, sqlNumber int) (
399399
auditPlanReport *model.AuditPlanReportV2, auditPlanReportSQLV2 *model.AuditPlanReportSQLV2, instance *model.Instance,
400400
err error) {
401401

402-
ap, exist, err := GetAuditPlanIfCurrentUserCanView(c, projectId, auditPlanName, v1.OpPermissionTypeViewOtherAuditPlan)
402+
ap, exist, err := GetAuditPlanIfCurrentUserCanView(c, projectId, auditPlanName, dmsV1.OpPermissionTypeViewOtherAuditPlan)
403403
if err != nil {
404404
return nil, nil, nil, err
405405
}
@@ -520,9 +520,9 @@ func CheckUserCanCreateOptimization(ctx context.Context, projectUID string, user
520520
}
521521

522522
// 根据用户权限获取能访问/操作的实例列表
523-
func GetCanOperationInstances(ctx context.Context, user *model.User, req *dmsV1.ListDBServiceReq, operationType v1.OpPermissionType) ([]*model.Instance, error) {
523+
func GetCanOperationInstances(ctx context.Context, user *model.User, req *dmsV2.ListDBServiceReq, operationType dmsV1.OpPermissionType) ([]*model.Instance, error) {
524524
// 获取当前项目下指定数据库类型的全部实例
525-
instances, err := dms.GetInstancesInProjectByTypeAndBusiness(ctx, req.ProjectUid, req.FilterByDBType, req.FilterByBusiness)
525+
instances, err := dms.GetInstancesInProjectByTypeAndBusiness(ctx, req.ProjectUid, req.FilterByDBType, req.FilterByEnvironmentTag)
526526
if err != nil {
527527
return nil, err
528528
}
@@ -537,18 +537,18 @@ func GetCanOperationInstances(ctx context.Context, user *model.User, req *dmsV1.
537537
}
538538
canOperationInstance := make([]*model.Instance, 0)
539539
for _, instance := range instances {
540-
if CanOperationInstance(userOpPermissions, []v1.OpPermissionType{operationType}, instance) {
540+
if CanOperationInstance(userOpPermissions, []dmsV1.OpPermissionType{operationType}, instance) {
541541
canOperationInstance = append(canOperationInstance, instance)
542542
}
543543
}
544544
return canOperationInstance, nil
545545
}
546546

547-
func GetCanOpInstanceUsers(memberWithPermissions []*dmsV1.ListMembersForInternalItem, instance *model.Instance, opPermissioins []dmsV1.OpPermissionType) (opUsers []*model.User, err error) {
547+
func GetCanOpInstanceUsers(memberWithPermissions []*dmsV1.ListMembersForInternalItem, instance *model.Instance, opPermissions []dmsV1.OpPermissionType) (opUsers []*model.User, err error) {
548548
opMapUsers := make(map[uint]struct{}, 0)
549549
for _, memberWithPermission := range memberWithPermissions {
550550
for _, memberOpPermission := range memberWithPermission.MemberOpPermissionList {
551-
if CanOperationInstance([]dmsV1.OpPermissionItem{memberOpPermission}, opPermissioins, instance) {
551+
if CanOperationInstance([]dmsV1.OpPermissionItem{memberOpPermission}, opPermissions, instance) {
552552
opUser := new(model.User)
553553
userId, err := strconv.Atoi(memberWithPermission.User.Uid)
554554
if err != nil {

sqle/api/controller/v1/workflow.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"time"
1313

1414
dmsV1 "github.com/actiontech/dms/pkg/dms-common/api/dms/v1"
15+
dmsV2 "github.com/actiontech/dms/pkg/dms-common/api/dms/v2"
1516
"github.com/actiontech/sqle/sqle/api/controller"
1617
"github.com/actiontech/sqle/sqle/config"
1718
"github.com/actiontech/sqle/sqle/dms"
@@ -1099,7 +1100,7 @@ func loadInstanceByWorkflows(ctx context.Context, workflows []*model.WorkflowLis
10991100
func loadInstanceByInstanceIds(ctx context.Context, instanceIds []string) (instanceMap InstanceMap, err error) {
11001101
// get instances from dms
11011102
instanceMap = make(InstanceMap)
1102-
instances, _, err := dmsobject.ListDbServices(ctx, controller.GetDMSServerAddress(), dmsV1.ListDBServiceReq{
1103+
instances, _, err := dmsobject.ListDbServices(ctx, controller.GetDMSServerAddress(), dmsV2.ListDBServiceReq{
11031104
PageSize: uint32(len(instanceIds)),
11041105
PageIndex: 1,
11051106
FilterByDBServiceIds: instanceIds,

sqle/dms/instance.go

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,15 @@ import (
77
"time"
88

99
dmsV1 "github.com/actiontech/dms/pkg/dms-common/api/dms/v1"
10+
dmsV2 "github.com/actiontech/dms/pkg/dms-common/api/dms/v2"
1011
"github.com/actiontech/dms/pkg/dms-common/dmsobject"
1112
dmsCommonAes "github.com/actiontech/dms/pkg/dms-common/pkg/aes"
1213
"github.com/actiontech/sqle/sqle/errors"
1314
"github.com/actiontech/sqle/sqle/model"
1415
"github.com/actiontech/sqle/sqle/pkg/params"
1516
)
1617

17-
func getInstances(ctx context.Context, req dmsV1.ListDBServiceReq) ([]*model.Instance, error) {
18+
func getInstances(ctx context.Context, req dmsV2.ListDBServiceReq) ([]*model.Instance, error) {
1819
var ret = make([]*model.Instance, 0)
1920

2021
var limit, pageIndex uint32 = 20, 1
@@ -55,7 +56,7 @@ func getInstances(ctx context.Context, req dmsV1.ListDBServiceReq) ([]*model.Ins
5556
return ret, nil
5657
}
5758

58-
func getInstance(ctx context.Context, req dmsV1.ListDBServiceReq) (*model.Instance, bool, error) {
59+
func getInstance(ctx context.Context, req dmsV2.ListDBServiceReq) (*model.Instance, bool, error) {
5960
newCtx, cancel := context.WithTimeout(ctx, 10*time.Second)
6061
defer cancel()
6162

@@ -145,21 +146,21 @@ func convertInstance(instance *dmsV1.ListDBService) (*model.Instance, error) {
145146
}
146147

147148
func GetInstancesInProject(ctx context.Context, projectUid string) ([]*model.Instance, error) {
148-
return getInstances(ctx, dmsV1.ListDBServiceReq{
149+
return getInstances(ctx, dmsV2.ListDBServiceReq{
149150
ProjectUid: projectUid,
150151
})
151152
}
152153

153-
func GetInstancesInProjectByTypeAndBusiness(ctx context.Context, projectUid, dbType, business string) ([]*model.Instance, error) {
154-
return getInstances(ctx, dmsV1.ListDBServiceReq{
155-
ProjectUid: projectUid,
156-
FilterByDBType: dbType,
157-
FilterByBusiness: business,
154+
func GetInstancesInProjectByTypeAndBusiness(ctx context.Context, projectUid, dbType, environmentTag string) ([]*model.Instance, error) {
155+
return getInstances(ctx, dmsV2.ListDBServiceReq{
156+
ProjectUid: projectUid,
157+
FilterByDBType: dbType,
158+
FilterByEnvironmentTag: environmentTag,
158159
})
159160
}
160161

161162
func GetInstancesNameInProjectByRuleTemplateName(ctx context.Context, projectUid, ruleTemplateName string) ([]string, error) {
162-
instances, err := getInstances(ctx, dmsV1.ListDBServiceReq{
163+
instances, err := getInstances(ctx, dmsV2.ListDBServiceReq{
163164
ProjectUid: projectUid,
164165
})
165166

@@ -178,7 +179,7 @@ func GetInstancesNameInProjectByRuleTemplateName(ctx context.Context, projectUid
178179
}
179180

180181
func GetInstancesNameByRuleTemplateName(ctx context.Context, ruleTemplateName string) ([]string, error) {
181-
instances, err := getInstances(ctx, dmsV1.ListDBServiceReq{})
182+
instances, err := getInstances(ctx, dmsV2.ListDBServiceReq{})
182183

183184
if err != nil {
184185
return nil, err
@@ -199,7 +200,7 @@ func GetInstanceInProjectByName(ctx context.Context, projectUid, name string) (*
199200
return nil, false, nil
200201
}
201202

202-
return getInstance(ctx, dmsV1.ListDBServiceReq{
203+
return getInstance(ctx, dmsV2.ListDBServiceReq{
203204
PageSize: 1,
204205
FilterByName: name,
205206
ProjectUid: projectUid,
@@ -208,7 +209,7 @@ func GetInstanceInProjectByName(ctx context.Context, projectUid, name string) (*
208209

209210
func GetInstancesInProjectByNames(ctx context.Context, projectUid string, names []string) (instances []*model.Instance, err error) {
210211
for _, name := range names {
211-
instance, isExist, err := getInstance(ctx, dmsV1.ListDBServiceReq{
212+
instance, isExist, err := getInstance(ctx, dmsV2.ListDBServiceReq{
212213
PageSize: 1,
213214
FilterByName: name,
214215
ProjectUid: projectUid,
@@ -229,7 +230,7 @@ func GetInstancesInProjectByNames(ctx context.Context, projectUid string, names
229230
func GetInstanceNamesInProjectByIds(ctx context.Context, projectUid string, instanceIds []string) ([]string, error) {
230231
ret := make([]string, 0)
231232
for _, instanceId := range instanceIds {
232-
instance, exist, err := getInstance(ctx, dmsV1.ListDBServiceReq{
233+
instance, exist, err := getInstance(ctx, dmsV2.ListDBServiceReq{
233234
PageSize: 1,
234235
FilterByUID: instanceId,
235236
ProjectUid: projectUid,
@@ -250,7 +251,7 @@ func GetInstanceNamesInProjectByIds(ctx context.Context, projectUid string, inst
250251
func GetInstanceNamesInProject(ctx context.Context, projectUid string) ([]string, error) {
251252
ret := make([]string, 0)
252253

253-
instances, err := getInstances(ctx, dmsV1.ListDBServiceReq{
254+
instances, err := getInstances(ctx, dmsV2.ListDBServiceReq{
254255
PageSize: 1,
255256
ProjectUid: projectUid,
256257
})
@@ -271,7 +272,7 @@ func GetInstancesByIdWithoutError(instanceId string) (instance model.Instance) {
271272
return
272273
}
273274

274-
inst, exist, err := getInstance(context.TODO(), dmsV1.ListDBServiceReq{
275+
inst, exist, err := getInstance(context.TODO(), dmsV2.ListDBServiceReq{
275276
PageSize: 1,
276277
FilterByUID: instanceId,
277278
})
@@ -286,7 +287,7 @@ func GetInstancesById(ctx context.Context, instanceId string) (*model.Instance,
286287
return nil, false, nil
287288
}
288289

289-
return getInstance(ctx, dmsV1.ListDBServiceReq{
290+
return getInstance(ctx, dmsV2.ListDBServiceReq{
290291
PageSize: 1,
291292
FilterByUID: instanceId,
292293
})
@@ -295,7 +296,7 @@ func GetInstancesById(ctx context.Context, instanceId string) (*model.Instance,
295296
func GetInstancesByIds(ctx context.Context, instanceIds []uint64) ([]*model.Instance, error) {
296297
ret := make([]*model.Instance, 0)
297298
for _, instanceId := range instanceIds {
298-
instance, exist, err := getInstance(ctx, dmsV1.ListDBServiceReq{
299+
instance, exist, err := getInstance(ctx, dmsV2.ListDBServiceReq{
299300
PageSize: 1,
300301
FilterByUID: strconv.FormatUint(instanceId, 10),
301302
})
@@ -316,7 +317,7 @@ func GetInstanceIdNameMapByIds(ctx context.Context, instanceIds []uint64) (map[u
316317
// todo: remove duplicate instance id
317318
ret := make(map[uint64]string)
318319
for _, instanceId := range instanceIds {
319-
instance, exist, err := getInstance(ctx, dmsV1.ListDBServiceReq{
320+
instance, exist, err := getInstance(ctx, dmsV2.ListDBServiceReq{
320321
PageSize: 1,
321322
FilterByUID: strconv.FormatUint(instanceId, 10),
322323
})
@@ -338,7 +339,7 @@ func GetInstanceInProjectById(ctx context.Context, projectUid string, instanceId
338339
return nil, false, nil
339340
}
340341

341-
return getInstance(ctx, dmsV1.ListDBServiceReq{
342+
return getInstance(ctx, dmsV2.ListDBServiceReq{
342343
PageSize: 1,
343344
FilterByUID: strconv.FormatUint(instanceId, 10),
344345
ProjectUid: projectUid,
@@ -348,7 +349,7 @@ func GetInstanceInProjectById(ctx context.Context, projectUid string, instanceId
348349
func GetInstancesInProjectByIds(ctx context.Context, projectUid string, instanceIds []uint64) ([]*model.Instance, error) {
349350
ret := make([]*model.Instance, 0)
350351
for _, instanceId := range instanceIds {
351-
instance, exist, err := getInstance(ctx, dmsV1.ListDBServiceReq{
352+
instance, exist, err := getInstance(ctx, dmsV2.ListDBServiceReq{
352353
PageSize: 1,
353354
FilterByUID: strconv.FormatUint(instanceId, 10),
354355
ProjectUid: projectUid,
@@ -372,7 +373,7 @@ type InstanceTypeCount struct {
372373
}
373374

374375
func GetInstanceCountGroupType(ctx context.Context) ([]InstanceTypeCount, error) {
375-
instances, err := getInstances(ctx, dmsV1.ListDBServiceReq{})
376+
instances, err := getInstances(ctx, dmsV2.ListDBServiceReq{})
376377

377378
if err != nil {
378379
return nil, err

0 commit comments

Comments
 (0)