|
|
|
@@ -79,7 +79,7 @@ func (l *CompareResourceSpecLogic) CompareResourceSpec(req *types.FetchResourceS |
|
|
|
} |
|
|
|
|
|
|
|
// 同步资源到数据库 |
|
|
|
if err := l.syncResourcesToDB(apiResources); err != nil { |
|
|
|
if err := l.syncResourcesToDB(apiResources, req.UserId); err != nil { |
|
|
|
return nil, fmt.Errorf("failed to sync resources: %w", err) |
|
|
|
} |
|
|
|
|
|
|
|
@@ -135,10 +135,10 @@ func decodeAPIResponse(input interface{}, output *[]APIResponse) error { |
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
|
|
func (l *CompareResourceSpecLogic) syncResourcesToDB(apiResponses []APIResponse) error { |
|
|
|
func (l *CompareResourceSpecLogic) syncResourcesToDB(apiResponses []APIResponse, userId int64) error { |
|
|
|
for _, response := range apiResponses { |
|
|
|
// 转换API响应到数据库模型 |
|
|
|
dbSpecs, apiSpecs, err := l.processAPIResponse(response) |
|
|
|
dbSpecs, apiSpecs, err := l.processAPIResponse(response, userId) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
@@ -151,7 +151,7 @@ func (l *CompareResourceSpecLogic) syncResourcesToDB(apiResponses []APIResponse) |
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
|
|
func (l *CompareResourceSpecLogic) processAPIResponse(response APIResponse) ([]models.TResourceSpec, []models.TResourceSpec, error) { |
|
|
|
func (l *CompareResourceSpecLogic) processAPIResponse(response APIResponse, userId int64) ([]models.TResourceSpec, []models.TResourceSpec, error) { |
|
|
|
ClusterId := utils.StringToInt64(response.ClusterId) |
|
|
|
var dbSpecs []models.TResourceSpec |
|
|
|
if err := l.svcCtx.DbEngin.Model(models.TResourceSpec{}).Preload("BaseResourceSpecs"). |
|
|
|
@@ -167,7 +167,7 @@ func (l *CompareResourceSpecLogic) processAPIResponse(response APIResponse) ([]m |
|
|
|
if res.Resource.Name == "" || res.Resource.Type == "" { |
|
|
|
continue |
|
|
|
} |
|
|
|
spec := l.convertToResourceSpec(ClusterId, res, response.Tag) |
|
|
|
spec := l.convertToResourceSpec(ClusterId, res, response.Tag, userId) |
|
|
|
apiSpecs = append(apiSpecs, spec) |
|
|
|
} |
|
|
|
|
|
|
|
@@ -333,7 +333,7 @@ func (l *CompareResourceSpecLogic) isSpecChanged(old, new models.TResourceSpec) |
|
|
|
return len(oldBaseMap) > 0 |
|
|
|
} |
|
|
|
|
|
|
|
func (l *CompareResourceSpecLogic) convertToResourceSpec(ClusterId int64, res Resource, tag string) models.TResourceSpec { |
|
|
|
func (l *CompareResourceSpecLogic) convertToResourceSpec(ClusterId int64, res Resource, tag string, userId int64) models.TResourceSpec { |
|
|
|
spec := models.TResourceSpec{ |
|
|
|
SourceKey: resourceKey(res.Resource.Type, res.Resource.Name, tag), |
|
|
|
Type: res.Resource.Type, |
|
|
|
@@ -344,6 +344,7 @@ func (l *CompareResourceSpecLogic) convertToResourceSpec(ClusterId int64, res Re |
|
|
|
ClusterId: ClusterId, |
|
|
|
CreateTime: time.Now(), |
|
|
|
UpdateTime: time.Now(), |
|
|
|
UserId: userId, |
|
|
|
ChangeType: ChangeTypeNormal, |
|
|
|
} |
|
|
|
|
|
|
|
@@ -355,6 +356,7 @@ func (l *CompareResourceSpecLogic) convertToResourceSpec(ClusterId int64, res Re |
|
|
|
TotalUnit: br.Total.Unit, |
|
|
|
AvailableValue: br.Available.Value, |
|
|
|
AvailableUnit: br.Available.Unit, |
|
|
|
UserId: userId, |
|
|
|
CreateTime: time.Now(), |
|
|
|
UpdateTime: time.Now(), |
|
|
|
}) |
|
|
|
|